Comments (5)
We are going to need more information about your setup, code, etc. in order to help.
from bree.
Operating System: Debian GNU/Linux 11 (bullseye)
Kernel: Linux 5.15.32-v8+
Architecture: arm64
I am running this file:
index.ts
import Graceful from '@ladjs/graceful'
import Bree from 'bree'
import * as path from 'node:path'
const SegfaultHandler = require('segfault-handler')
SegfaultHandler.registerHandler('crash.log')
Bree.extend(require('@breejs/ts-worker'))
const standardInterval = 'every 40 seconds'
const bree = new Bree({
/**
* Always set the root option when doing any type of
* compiling with bree. This just makes it clearer where
* bree should resolve the jobs folder from. By default it
* resolves to the jobs folder relative to where the program
* is executed.
*/
root: path.join(__dirname, 'jobs'),
/**
* We only need the default extension to be "ts"
* when we are running the app with ts-node - otherwise
* the compiled-to-js code still needs to use JS
*/
defaultExtension: 'ts',
jobs: [
// {
// name: 'temperature',
// interval: standardInterval,
// },
// {
// name: 'pi-stats',
// interval: standardInterval,
// },
{
name: 'fans',
interval: standardInterval,
},
],
})
const graceful = new Graceful({ brees: [bree] })
graceful.listen()
;(async () => {
await bree.start()
console.log('Bree started')
})()
and this job:
jobs/fans.ts
import GPIOFlat from 'rpi-gpio'
import { sleep } from '../../utils'
const GPIO = GPIOFlat.promise
const relais1 = 7
;(async () => {
try {
await GPIO.setup(relais1, GPIO.DIR_OUT)
await GPIO.write(relais1, true)
await sleep(5)
await GPIO.write(relais1, false)
await GPIO.destroy()
} catch (error) {
console.log('error', error)
}
})()
with ts-node index.ts
Edit: I just commented out everything rpi-gpio
related and the error disappears, so it's somewhat related to that. If I run the jobs/fans.ts
file on its own it works fine though
from bree.
the segmentation fault would make me think that it is running out of memory. I don't know if the rpi-gpio bundle is too large for the system or if there is something else causing the memory to run out.
from bree.
I have seen the segmentation fault when compiling a typescript project in a docker container that has too little RAM before.
from bree.
This is not a problem with Bree. It would be a problem with Node.js worker threads, CPU or memory limitations, or some other dependency. Please check https://github.com/nodejs/node for similar issues.
from bree.
Related Issues (20)
- [fix] Error [ERR_UNSUPPORTED_ESM_URL_SCHEME] HOT 3
- [fix] Cron last day of the month incorrect behaviour
- [fix] script works in main thread but fails in worker thread with FATAL ERROR or silent crash HOT 2
- Bree applied to data ingest HOT 1
- [fix] Missing await on 'start' function.
- [feat] Please Allow us to see what jobs are in the Que
- [fix] Types aren't making timeout and interval optional HOT 2
- cron job starts after timeout not after definition HOT 2
- [fix] Bree not working with Later HOT 1
- Bree Workers Won't Follow closeWorkerAfterMs rule
- Using, name + path + cron starts job on start HOT 1
- [fix] cannot extends types HOT 5
- Bree Job not able to resolve the dependencies
- TypeError: Bree is not a constructor HOT 3
- Job sometimes reports as "already running" when it isn't, and then runs anyway
- [fix] Bree doesn't gracefully exit HOT 4
- [feat] Need to be able to remove job after # of runs HOT 5
- [fix] Job using class function throws syntax error when run HOT 1
- [fix] Attempting to access worker data within a function job throws `worker_threads_1 is not defined`
- [fix] Passing a discord.js client through workerdata throws an error
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bree.