Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

node-usb (via node-co2-monitor) crasht javascript adapter #710

Closed
realwax opened this issue Nov 11, 2020 · 6 comments
Closed

node-usb (via node-co2-monitor) crasht javascript adapter #710

realwax opened this issue Nov 11, 2020 · 6 comments

Comments

@realwax
Copy link

realwax commented Nov 11, 2020

Am raspberry gibt es einen hotplug issue anscheinend mit der node-usb.
Vorheriges detach funktioniert anscheinend nicht, so dass wenn man absteckt die node-usb letztendlich die node-co2-monitor crasht und die dann den javascript adapter mitreißen.

Ich habe dazu ein ticket bei node-usb aufgemacht, anfangs auch bei node-co2-monitor. Jay-cee hat auch versucht zu helfen.

Könnt ihr auf Eurer Seite etwas abfangen, damit es den nicht dauernd runterreißt bei einem disconnect, oder einem device, dass man von alleine disconnected?

Hier ist der issue und meine logs:

node-usb/node-usb#390
node-usb/node-usb#392

Danke & VG

@realwax
Copy link
Author

realwax commented Nov 11, 2020

Log vom javascript adapter install
`

javascript.2 2020-11-11 19:51:46.722 info (13357) script.js.garden.CO2_Monitor_Gästezimmer: CO2 Monitor connected.
javascript.2 2020-11-11 19:51:46.697 info (13357) script.js.garden.CO2_Monitor_Gästezimmer: registered 0 subscriptions and 0 schedules
javascript.2 2020-11-11 19:51:46.547 info (13357) Start javascript script.js.garden.CO2_Monitor_Gästezimmer
javascript.2 2020-11-11 19:51:44.747 info (13357) received all states
javascript.2 2020-11-11 19:51:41.958 info (13357) received all objects
javascript.2 2020-11-11 19:51:38.426 info (13357) requesting all objects
javascript.2 2020-11-11 19:51:38.423 info (13357) requesting all states
javascript.2 2020-11-11 19:51:38.269 info (13357) found 0 vulnerabilities
javascript.2 2020-11-11 19:51:38.265 info run npm fund for details
javascript.2 2020-11-11 19:51:38.265 info 5 packages are looking for funding
javascript.2 2020-11-11 19:51:38.265 info (13357)
javascript.2 2020-11-11 19:51:38.051 info added 64 packages from 47 contributors and audited 66 packages in 47.985s
javascript.2 2020-11-11 19:51:38.051 info (13357) + node-co2-monitor@0.3.1
javascript.2 2020-11-11 19:51:37.629 info (13357) make: Verzeichnis „/opt/iobroker/node_modules/iobroker.javascript/node_modules/usb/build“ wird verlassen
javascript.2 2020-11-11 19:51:37.608 info (13357) COPY Release/usb_bindings.node
javascript.2 2020-11-11 19:51:37.154 info (13357) SOLINK_MODULE(target) Release/obj.target/usb_bindings.node
javascript.2 2020-11-11 19:51:35.393 error /home/iobroker/.cache/node-gyp/12.19.0/include/node/v8.h:10226:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfoNan::ObjectWrap::Callback’ {aka ‘void (*)(const v8::Wea
javascript.2 2020-11-11 19:51:35.393 error ../../nan/nan_object_wrap.h:65:61: required from here
javascript.2 2020-11-11 19:51:35.393 error (13357) /home/iobroker/.cache/node-gyp/12.19.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase::SetWeak(P*, typename v8::WeakCallbackInfo

::Callback, v8::WeakCallbackType) [with

javascript.2 2020-11-11 19:51:35.351 error ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
javascript.2 2020-11-11 19:51:35.351 error reinterpret_cast(callback), type);
javascript.2 2020-11-11 19:51:35.351 error /home/iobroker/.cache/node-gyp/12.19.0/include/node/v8.h:10226:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfonode::ObjectWrap::Callback’ {aka ‘void (*)(const v8::We
javascript.2 2020-11-11 19:51:35.351 error /home/iobroker/.cache/node-gyp/12.19.0/include/node/node_object_wrap.h:85:78: required from here
javascript.2 2020-11-11 19:51:35.351 error /home/iobroker/.cache/node-gyp/12.19.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase::SetWeak(P*, typename v8::WeakCallbackInfo

::Callback, v8::WeakCallbackType) [with P = node:

javascript.2 2020-11-11 19:51:35.351 error from ../src/transfer.cc:1:
javascript.2 2020-11-11 19:51:35.351 error (13357) In file included from ../src/node_usb.h:12,
javascript.2 2020-11-11 19:51:35.261 error ^~~~~~~~~~~~
javascript.2 2020-11-11 19:51:35.261 error NAN_DEPRECATED inline v8::Localv8::Value MakeCallback(
javascript.2 2020-11-11 19:51:35.261 error ../../nan/nan.h:959:46: note: declared here
javascript.2 2020-11-11 19:51:35.261 error from ../src/transfer.cc:1:
javascript.2 2020-11-11 19:51:35.261 error from ../src/node_usb.h:21,
javascript.2 2020-11-11 19:51:35.261 error In file included from ../src/helpers.h:3,
javascript.2 2020-11-11 19:51:35.261 error ^
javascript.2 2020-11-11 19:51:35.261 error Nan::MakeCallback(self->handle(), Nan::New(self->v8callback), 3, argv);
javascript.2 2020-11-11 19:51:35.261 error (13357) ../src/transfer.cc:126:72: warning: ‘v8::Localv8::Value Nan::MakeCallback(v8::Localv8::Object, v8::Localv8::Function, int, v8::Localv8::Value*)’ is deprecated [-Wdeprecated-declaratio
javascript.2 2020-11-11 19:51:35.257 error ^~~~~~~~~~~~
javascript.2 2020-11-11 19:51:35.257 error NAN_DEPRECATED inline v8::Localv8::Value MakeCallback(
javascript.2 2020-11-11 19:51:35.257 error ../../nan/nan.h:959:46: note: declared here
javascript.2 2020-11-11 19:51:35.257 error from ../src/transfer.cc:1:
javascript.2 2020-11-11 19:51:35.257 error from ../src/node_usb.h:21,
javascript.2 2020-11-11 19:51:35.257 error In file included from ../src/helpers.h:3,
javascript.2 2020-11-11 19:51:35.257 error ^
javascript.2 2020-11-11 19:51:35.257 error Nan::MakeCallback(self->handle(), Nan::New(self->v8callback), 3, argv);
javascript.2 2020-11-11 19:51:35.257 error ../src/transfer.cc:126:72: warning: ‘v8::Localv8::Value Nan::MakeCallback(v8::Localv8::Object, v8::Localv8::Function, int, v8::Localv8::Value*)’ is deprecated [-Wdeprecated-declarations]
javascript.2 2020-11-11 19:51:35.257 error (13357) ../src/transfer.cc: In function ‘void handleCompletion(Transfer*)’:
javascript.2 2020-11-11 19:51:35.143 error ^
javascript.2 2020-11-11 19:51:35.143 error , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
javascript.2 2020-11-11 19:51:35.143 error ../../nan/nan.h:2232:62: warning: cast between incompatible function types from ‘void ()(uv_work_t)’ {aka ‘void ()(uv_work_s)’} to ‘uv_after_work_cb’ {aka ‘void ()(uv_work_s, int)’} [-Wcast-func
javascript.2 2020-11-11 19:51:35.143 error ../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
javascript.2 2020-11-11 19:51:35.143 error from ../src/transfer.cc:1:
javascript.2 2020-11-11 19:51:35.143 error from ../src/node_usb.h:21,
javascript.2 2020-11-11 19:51:35.143 error (13357) In file included from ../src/helpers.h:3,
javascript.2 2020-11-11 19:51:32.873 info (13357) CXX(target) Release/obj.target/usb_bindings/src/transfer.o
javascript.2 2020-11-11 19:51:25.039 error /home/iobroker/.cache/node-gyp/12.19.0/include/node/v8.h:10226:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfoNan::ObjectWrap::Callback’ {aka ‘void (*)(const v8::Wea
javascript.2 2020-11-11 19:51:25.039 error ../../nan/nan_object_wrap.h:65:61: required from here
javascript.2 2020-11-11 19:51:25.039 error (13357) /home/iobroker/.cache/node-gyp/12.19.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase::SetWeak(P*, typename v8::WeakCallbackInfo

::Callback, v8::WeakCallbackType) [with

javascript.2 2020-11-11 19:51:24.999 error ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
javascript.2 2020-11-11 19:51:24.999 error reinterpret_cast(callback), type);
javascript.2 2020-11-11 19:51:24.999 error /home/iobroker/.cache/node-gyp/12.19.0/include/node/v8.h:10226:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfonode::ObjectWrap::Callback’ {aka ‘void (*)(const v8::We
javascript.2 2020-11-11 19:51:24.999 error /home/iobroker/.cache/node-gyp/12.19.0/include/node/node_object_wrap.h:85:78: required from here
javascript.2 2020-11-11 19:51:24.999 error /home/iobroker/.cache/node-gyp/12.19.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase::SetWeak(P*, typename v8::WeakCallbackInfo

::Callback, v8::WeakCallbackType) [with P = node:

javascript.2 2020-11-11 19:51:24.999 error from ../src/device.cc:1:
javascript.2 2020-11-11 19:51:24.999 error (13357) In file included from ../src/node_usb.h:12,
javascript.2 2020-11-11 19:51:24.875 error ^~~~~~~~~~~~
javascript.2 2020-11-11 19:51:24.875 error NAN_DEPRECATED inline v8::Localv8::Value MakeCallback(
javascript.2 2020-11-11 19:51:24.875 error ../../nan/nan.h:959:46: note: declared here
javascript.2 2020-11-11 19:51:24.875 error from ../src/device.cc:1:
javascript.2 2020-11-11 19:51:24.875 error from ../src/node_usb.h:21,
javascript.2 2020-11-11 19:51:24.875 error In file included from ../src/helpers.h:3,
javascript.2 2020-11-11 19:51:24.875 error ^
javascript.2 2020-11-11 19:51:24.875 error Nan::MakeCallback(device, Nan::New(baton->callback), 1, argv);
javascript.2 2020-11-11 19:51:24.875 error (13357) ../src/device.cc:237:64: warning: ‘v8::Localv8::Value Nan::MakeCallback(v8::Localv8::Object, v8::Localv8::Function, int, v8::Localv8::Value*)’ is deprecated [-Wdeprecated-declarations
javascript.2 2020-11-11 19:51:24.872 error ^~~~~~~~~~~~
javascript.2 2020-11-11 19:51:24.872 error NAN_DEPRECATED inline v8::Localv8::Value MakeCallback(
javascript.2 2020-11-11 19:51:24.872 error ../../nan/nan.h:959:46: note: declared here
javascript.2 2020-11-11 19:51:24.872 error from ../src/device.cc:1:
javascript.2 2020-11-11 19:51:24.872 error from ../src/node_usb.h:21,
javascript.2 2020-11-11 19:51:24.872 error In file included from ../src/helpers.h:3,
javascript.2 2020-11-11 19:51:24.872 error ^
javascript.2 2020-11-11 19:51:24.872 error Nan::MakeCallback(device, Nan::New(baton->callback), 1, argv);
javascript.2 2020-11-11 19:51:24.872 error ../src/device.cc:237:64: warning: ‘v8::Localv8::Value Nan::MakeCallback(v8::Localv8::Object, v8::Localv8::Function, int, v8::Localv8::Value*)’ is deprecated [-Wdeprecated-declarations]
javascript.2 2020-11-11 19:51:24.872 error (13357) ../src/device.cc: In static member function ‘static void Req::default_after(uv_work_t*)’:
javascript.2 2020-11-11 19:51:24.868 error ^~~~~
javascript.2 2020-11-11 19:51:24.868 error uv_queue_work(uv_default_loop(), &req, backend, (uv_after_work_cb) after);
javascript.2 2020-11-11 19:51:24.868 error ../src/device.cc:220:70: warning: cast between incompatible function types from ‘uv_work_cb’ {aka ‘void ()(uv_work_s)’} to ‘uv_after_work_cb’ {aka ‘void ()(uv_work_s, int)’} [-Wcast-function-type]
javascript.2 2020-11-11 19:51:24.868 error (13357) ../src/device.cc: In member function ‘void Req::submit(Device*, v8::Localv8::Function, uv_work_cb, uv_work_cb)’:
javascript.2 2020-11-11 19:51:24.641 error ^
javascript.2 2020-11-11 19:51:24.641 error , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
javascript.2 2020-11-11 19:51:24.641 error ../../nan/nan.h:2232:62: warning: cast between incompatible function types from ‘void ()(uv_work_t)’ {aka ‘void ()(uv_work_s)’} to ‘uv_after_work_cb’ {aka ‘void ()(uv_work_s, int)’} [-Wcast-func
javascript.2 2020-11-11 19:51:24.641 error ../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
javascript.2 2020-11-11 19:51:24.641 error from ../src/device.cc:1:
javascript.2 2020-11-11 19:51:24.641 error from ../src/node_usb.h:21,
javascript.2 2020-11-11 19:51:24.641 error (13357) In file included from ../src/helpers.h:3,
javascript.2 2020-11-11 19:51:22.397 info (13357) CXX(target) Release/obj.target/usb_bindings/src/device.o
javascript.2 2020-11-11 19:51:19.368 error /home/iobroker/.cache/node-gyp/12.19.0/include/node/v8.h:10226:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfoNan::ObjectWrap::Callback’ {aka ‘void (*)(const v8::Wea
javascript.2 2020-11-11 19:51:19.368 error ../../nan/nan_object_wrap.h:65:61: required from here
javascript.2 2020-11-11 19:51:19.368 error (13357) /home/iobroker/.cache/node-gyp/12.19.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase::SetWeak(P*, typename v8::WeakCallbackInfo

::Callback, v8::WeakCallbackType) [with

javascript.2 2020-11-11 19:51:19.326 error ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
javascript.2 2020-11-11 19:51:19.326 error reinterpret_cast(callback), type);
javascript.2 2020-11-11 19:51:19.326 error /home/iobroker/.cache/node-gyp/12.19.0/include/node/v8.h:10226:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfonode::ObjectWrap::Callback’ {aka ‘void (*)(const v8::We
javascript.2 2020-11-11 19:51:19.326 error /home/iobroker/.cache/node-gyp/12.19.0/include/node/node_object_wrap.h:85:78: required from here
javascript.2 2020-11-11 19:51:19.326 error /home/iobroker/.cache/node-gyp/12.19.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase::SetWeak(P*, typename v8::WeakCallbackInfo

::Callback, v8::WeakCallbackType) [with P = node:

javascript.2 2020-11-11 19:51:19.326 error from ../src/node_usb.cc:1:
javascript.2 2020-11-11 19:51:19.326 error (13357) In file included from ../src/node_usb.h:12,
javascript.2 2020-11-11 19:51:19.101 error ^~~~~~~~~~~~
javascript.2 2020-11-11 19:51:19.101 error NAN_DEPRECATED inline v8::Localv8::Value MakeCallback(
javascript.2 2020-11-11 19:51:19.101 error ../../nan/nan.h:1001:46: note: declared here
javascript.2 2020-11-11 19:51:19.101 error from ../src/node_usb.cc:1:
javascript.2 2020-11-11 19:51:19.101 error from ../src/node_usb.h:21,
javascript.2 2020-11-11 19:51:19.101 error In file included from ../src/helpers.h:3,
javascript.2 2020-11-11 19:51:19.101 error ^
javascript.2 2020-11-11 19:51:19.101 error Nan::MakeCallback(Nan::New(hotplugThis), "emit", 2, argv);
javascript.2 2020-11-11 19:51:19.101 error (13357) ../src/node_usb.cc:151:58: warning: ‘v8::Localv8::Value Nan::MakeCallback(v8::Localv8::Object, const char*, int, v8::Localv8::Value*)’ is deprecated [-Wdeprecated-declarations]
javascript.2 2020-11-11 19:51:19.098 error ^~~~~~~~~~~~
javascript.2 2020-11-11 19:51:19.098 error NAN_DEPRECATED inline v8::Localv8::Value MakeCallback(
javascript.2 2020-11-11 19:51:19.098 error ../../nan/nan.h:1001:46: note: declared here
javascript.2 2020-11-11 19:51:19.098 error from ../src/node_usb.cc:1:
javascript.2 2020-11-11 19:51:19.098 error from ../src/node_usb.h:21,
javascript.2 2020-11-11 19:51:19.098 error In file included from ../src/helpers.h:3,
javascript.2 2020-11-11 19:51:19.098 error ^
javascript.2 2020-11-11 19:51:19.098 error Nan::MakeCallback(Nan::New(hotplugThis), "emit", 2, argv);
javascript.2 2020-11-11 19:51:19.098 error ../src/node_usb.cc:151:58: warning: ‘v8::Localv8::Value Nan::MakeCallback(v8::Localv8::Object, const char*, int, v8::Localv8::Value*)’ is deprecated [-Wdeprecated-declarations]
javascript.2 2020-11-11 19:51:19.098 error (13357) ../src/node_usb.cc: In function ‘void handleHotplug(std::pair<libusb_device*, libusb_hotplug_event>)’:
javascript.2 2020-11-11 19:51:19.076 error ^~~~~~~~~~~
javascript.2 2020-11-11 19:51:19.076 error NODE_MODULE(usb_bindings, Initialize)
javascript.2 2020-11-11 19:51:19.076 error ../src/node_usb.cc:95:1: note: in expansion of macro ‘NODE_MODULE’
javascript.2 2020-11-11 19:51:19.076 error ^~~~~~~~~~~~~
javascript.2 2020-11-11 19:51:19.076 error NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage)
javascript.2 2020-11-11 19:51:19.076 error /home/iobroker/.cache/node-gyp/12.19.0/include/node/node.h:761:3: note: in expansion of macro ‘NODE_MODULE_X’
javascript.2 2020-11-11 19:51:19.076 error ^
javascript.2 2020-11-11 19:51:19.076 error (node::addon_register_func) (regfunc), \
javascript.2 2020-11-11 19:51:19.076 error /home/iobroker/.cache/node-gyp/12.19.0/include/node/node.h:727:43: warning: cast between incompatible function types from ‘void ()(v8::Localv8::Object)’ to ‘node::addon_register_func’ {aka ‘void (
javascript.2 2020-11-11 19:51:19.076 error ../src/node_usb.cc: At global scope:
javascript.2 2020-11-11 19:51:19.076 error from ../src/node_usb.cc:1:
javascript.2 2020-11-11 19:51:19.076 error (13357) In file included from ../src/node_usb.h:14,
javascript.2 2020-11-11 19:51:18.987 error ^
javascript.2 2020-11-11 19:51:18.987 error , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
javascript.2 2020-11-11 19:51:18.987 error ../../nan/nan.h:2232:62: warning: cast between incompatible function types from ‘void ()(uv_work_t)’ {aka ‘void ()(uv_work_s)’} to ‘uv_after_work_cb’ {aka ‘void ()(uv_work_s, int)’} [-Wcast-func
javascript.2 2020-11-11 19:51:18.987 error ../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
javascript.2 2020-11-11 19:51:18.987 error from ../src/node_usb.cc:1:
javascript.2 2020-11-11 19:51:18.987 error from ../src/node_usb.h:21,
javascript.2 2020-11-11 19:51:18.987 error (13357) In file included from ../src/helpers.h:3,
javascript.2 2020-11-11 19:51:15.807 info (13357) CXX(target) Release/obj.target/usb_bindings/src/node_usb.o
javascript.2 2020-11-11 19:51:15.782 info (13357) COPY Release/usb.a
javascript.2 2020-11-11 19:51:15.741 info (13357) AR(target) Release/obj.target/usb.a
javascript.2 2020-11-11 19:51:15.196 info (13357) CC(target) Release/obj.target/libusb/libusb/libusb/os/linux_udev.o
javascript.2 2020-11-11 19:51:12.244 info (13357) CC(target) Release/obj.target/libusb/libusb/libusb/os/linux_usbfs.o
javascript.2 2020-11-11 19:51:12.020 info (13357) CC(target) Release/obj.target/libusb/libusb/libusb/os/threads_posix.o
javascript.2 2020-11-11 19:51:11.703 info (13357) CC(target) Release/obj.target/libusb/libusb/libusb/os/poll_posix.o
javascript.2 2020-11-11 19:51:11.301 info (13357) CC(target) Release/obj.target/libusb/libusb/libusb/sync.o
javascript.2 2020-11-11 19:51:11.008 info (13357) CC(target) Release/obj.target/libusb/libusb/libusb/strerror.o
javascript.2 2020-11-11 19:51:09.612 info (13357) CC(target) Release/obj.target/libusb/libusb/libusb/io.o
javascript.2 2020-11-11 19:51:09.169 info (13357) CC(target) Release/obj.target/libusb/libusb/libusb/hotplug.o
javascript.2 2020-11-11 19:51:07.893 info (13357) CC(target) Release/obj.target/libusb/libusb/libusb/descriptor.o
javascript.2 2020-11-11 19:51:04.697 info (13357) CC(target) Release/obj.target/libusb/libusb/libusb/core.o
javascript.2 2020-11-11 19:51:04.691 info (13357) make: Verzeichnis „/opt/iobroker/node_modules/iobroker.javascript/node_modules/usb/build“ wird betreten
javascript.2 2020-11-11 19:51:01.949 error (13357) WARN install No prebuilt binaries found (target=12.19.0 runtime=node arch=arm libc= platform=linux)
javascript.2 2020-11-11 19:51:01.945 error (13357) prebuild-install
javascript.2 2020-11-11 19:51:01.932 error (13357) http 404 https://github.com/tessel/node-usb/releases/download/v1.6.3/usb-v1.6.3-node-v72-linux-arm.tar.gz
javascript.2 2020-11-11 19:51:01.929 error (13357) prebuild-install
javascript.2 2020-11-11 19:51:01.487 error prebuild-install http request GET https://github.com/tessel/node-usb/releases/download/v1.6.3/usb-v1.6.3-node-v72-linux-arm.tar.gz
javascript.2 2020-11-11 19:51:01.487 error (13357) info looking for cached prebuild @ /home/iobroker/.npm/_prebuilds/470134-usb-v1.6.3-node-v72-linux-arm.tar.gz
javascript.2 2020-11-11 19:51:01.484 error (13357) prebuild-install
javascript.2 2020-11-11 19:51:01.472 error (13357) info begin Prebuild-install version 5.3.6
javascript.2 2020-11-11 19:51:01.468 error (13357) prebuild-install
javascript.2 2020-11-11 19:51:00.681 info > prebuild-install --verbose || node-gyp rebuild
javascript.2 2020-11-11 19:51:00.681 info > usb@1.6.3 install /opt/iobroker/node_modules/iobroker.javascript/node_modules/usb
javascript.2 2020-11-11 19:51:00.681 info (13357)

`

@realwax
Copy link
Author

realwax commented Nov 11, 2020

Hier so ein typischer crash loop (Die Ursache ist ein instabiler CO2 Dostmann sensor, der USB Husten hat. ;) ) Sollte aber auf Grund von Hotplug eben nichts machen und schon gar nicht den adapter umhauen. Ich habe zwei Sensoren - einer davon hat diesen Fehler, alle paar Stunden. Nichtsdestotrotz kannst den Fehler mit Abstecken und Anstecken reproduzieren. Kann man den Adaptercrash verhindern?

crash.txt

Das script selbst ist simpel und angeblich ist im node-co2-monitor auch alles richtig. Auch ein detach drinnen - bringt aber nix.

`'use strict';
const CO2Monitor = require('node-co2-monitor');

const monitor = new CO2Monitor();

var logOn = false; // Ausgabe der Messwerte im Log

var pfad = "co2sensor" + "."; // Pfad Systeminfos zur innovaphone

var idCo2 = pfad + "co2";
var idTemp = pfad + "temperatur";

// Datenpunkte anlegen
// -----------------------------------------------------------------------------
createState(idCo2, {
name: 'CO2',
desc: 'CO2',
type: 'number',
unit: 'ppm',
role: 'value'
});

createState(idTemp, {
name: 'Temperatur',
desc: 'Temperatur',
type: 'number',
unit: '°C',
role: 'value'
});

// Connect device.
monitor.connect((err) => {
if (err) {
return console.error(err.stack);
}
log('CO2 Monitor connected.');

// Read data from CO2 monitor.
monitor.transfer();

});

// Get results.
try{
monitor.on('temp', (temperature) => {
// log(temp: ${ temperature });
setState(idTemp,parseFloat(temperature));
});
} catch (e) {
log (e);
log("CO2 Monitor: USB Fehler");
}

try{
monitor.on('co2', (co2) => {
// log(co2: ${ co2 });
setState(idCo2,parseInt(co2));
});
} catch (e) {
log (e);
log("CO2 Monitor: USB Fehler");
}

// Error handler
monitor.on('error', (err) => {
console.error(err.stack);
// Disconnect device
monitor.disconnect(() => {
log('CO2 Monitor disconnected.');
process.exit(0);
});
});

function stopCo2Monitor() {
try{
monitor._endpoint.stopPoll(function(){
log("CO2 Monitor: Polling gestoppt");
monitor._interface.release(true, (error) => {
if(error) {
monitor.emit('CO2 Monitor error', error);
}
else {
log("CO2 Monitor: Interface released");
monitor._device.close();
log("CO2 Monitor: Device geschlossen");
cb(true);
}
});
});
} catch (e) {
log(e);
// hat nicht geklappt
log("CO2 Monitor: Fehler beim Beenden des Skripts");
}
log("CO2 Monitor: Skript wurde gestoppt");
}

// Wird ausgeführt, wenn das Skript gestoppt wird:
// close connection if script stopped
onStop(function skriptStop () {
stopCo2Monitor(); // Kommunikation zum CO2 Monitor beenden
}, 100 /ms/);`

@Apollon77
Copy link
Contributor

In fact your "disconnect" call in the on(error) is the reason for the exception and in fact it is the co2 lib which cases the error because there is no error handled registered for "this._interface" in https://github.com/huhamhire/node-co2-monitor/blob/master/co2_monitor.js#L55 ... but even if there would be one no error would be emitted there ... so I commented one of the node-usb issues ... I think your error is gone if you remove the disconnect in the error handler, but I have no idea what would be the side effects

@realwax
Copy link
Author

realwax commented Nov 11, 2020

@Apollon77 Danke - das habe ich gleich getestet und den Sensor nach remove vom error handler abgezogen. Das Ergebnis:

`

host.ioBrokerPIB3 2020-11-12 00:12:38.992 info Restart adapter system.adapter.javascript.1 because enabled
host.ioBrokerPIB3 2020-11-12 00:12:38.992 error instance system.adapter.javascript.1 terminated with code 1 (JS_CONTROLLER_STOPPED)
host.ioBrokerPIB3 2020-11-12 00:12:38.991 error Caught by controller[7]: Error: LIBUSB_TRANSFER_STALL
host.ioBrokerPIB3 2020-11-12 00:12:38.990 error Caught by controller[6]: Error: LIBUSB_TRANSFER_STALL
host.ioBrokerPIB3 2020-11-12 00:12:38.989 error Caught by controller[5]: Error: LIBUSB_TRANSFER_STALL
host.ioBrokerPIB3 2020-11-12 00:12:38.989 error Caught by controller[4]: Error: LIBUSB_TRANSFER_STALL
host.ioBrokerPIB3 2020-11-12 00:12:38.988 error Caught by controller[3]: Error: LIBUSB_TRANSFER_STALL
host.ioBrokerPIB3 2020-11-12 00:12:38.987 error Caught by controller[2]: Error: LIBUSB_TRANSFER_STALL
host.ioBrokerPIB3 2020-11-12 00:12:38.986 error Caught by controller[1]: Error: LIBUSB_TRANSFER_STALL
host.ioBrokerPIB3 2020-11-12 00:12:38.963 error Caught by controller[0]: Error: LIBUSB_TRANSFER_STALL
javascript.1 2020-11-12 00:12:38.375 error (19028) Error: LIBUSB_TRANSFER_STALL
javascript.1 2020-11-12 00:12:38.374 error (19028) Error: LIBUSB_TRANSFER_STALL
javascript.1 2020-11-12 00:12:38.374 error (19028) An error happened which is most likely from one of your scripts, but the originating script could not be detected.
javascript.1 2020-11-12 00:12:38.372 error (19028) Error: LIBUSB_TRANSFER_STALL
javascript.1 2020-11-12 00:12:38.371 error (19028) Error: LIBUSB_TRANSFER_STALL
javascript.1 2020-11-12 00:12:38.370 error (19028) An error happened which is most likely from one of your scripts, but the originating script could not be detected.
javascript.1 2020-11-12 00:12:38.368 error (19028) Error: LIBUSB_TRANSFER_STALL
javascript.1 2020-11-12 00:12:38.368 error (19028) Error: LIBUSB_TRANSFER_STALL
javascript.1 2020-11-12 00:12:38.367 error (19028) An error happened which is most likely from one of your scripts, but the originating script could not be detected.
javascript.1 2020-11-12 00:12:38.365 error (19028) Error: LIBUSB_TRANSFER_STALL
javascript.1 2020-11-12 00:12:38.364 error (19028) Error: LIBUSB_TRANSFER_STALL
javascript.1 2020-11-12 00:12:38.364 error (19028) An error happened which is most likely from one of your scripts, but the originating script could not be detected.
javascript.1 2020-11-12 00:12:38.362 error (19028) Error: LIBUSB_TRANSFER_STALL
javascript.1 2020-11-12 00:12:38.361 error (19028) Error: LIBUSB_TRANSFER_STALL
javascript.1 2020-11-12 00:12:38.360 error (19028) An error happened which is most likely from one of your scripts, but the originating script could not be detected.
javascript.1 2020-11-12 00:12:38.359 error (19028) Error: LIBUSB_TRANSFER_STALL
javascript.1 2020-11-12 00:12:38.358 error (19028) Error: LIBUSB_TRANSFER_STALL
javascript.1 2020-11-12 00:12:38.357 error (19028) An error happened which is most likely from one of your scripts, but the originating script could not be detected.
javascript.1 2020-11-12 00:12:38.354 error (19028) Error: LIBUSB_TRANSFER_STALL
javascript.1 2020-11-12 00:12:38.354 error (19028) Error: LIBUSB_TRANSFER_STALL
javascript.1 2020-11-12 00:12:38.352 error (19028) An error happened which is most likely from one of your scripts, but the originating script could not be detected.
javascript.1 2020-11-12 00:12:38.306 error (19028) Error: LIBUSB_TRANSFER_STALL
javascript.1 2020-11-12 00:12:38.304 error (19028) Error: LIBUSB_TRANSFER_STALL
javascript.1 2020-11-12 00:12:38.303 error (19028) An error happened which is most likely from one of your scripts, but the originating script could not be detected.

`

@realwax
Copy link
Author

realwax commented Nov 11, 2020

Ich muss den error handler schon drinnen lassen, aber den disconnect raus.

// Error handler
monitor.on('error', (err) => {
console.error(err.stack);
// Disconnect device

// monitor.disconnect(() => {
// log('CO2 Monitor disconnected.');
// process.exit(0);
// });
});

Dann erhalte ich nur ein:

       
javascript.1 2020-11-12 00:22:49.576 error (31550) script.js.climate.CO2_Monitor_Wohnzimmer: Error: LIBUSB_TRANSFER_STALL

Der Adapter fliegt nicht!

Ich versuche dadurch, dass das Script mit einem transfer stall steht und ein disconnect ja alles zum crashen bringt jetzt einfach nach 10 Minuten keiner Wertänderung einen neustart aus dem script heraus. Wenn das klappt - hast du mein Problem gelöst bzw. mir dabei geholfen. Ich wusste nicht, dass der disconnect alles crasht.

Mit dem part sollte es klappen:

schedule("1,11,21,31,41,51 * * * *", async function () { if (parseFloat((new Date().getTime())) - parseFloat(getDateObject(getState("javascript.1.co2sensor.co2").ts).getTime()) > 600000) { setStateDelayed("javascript.1.scriptEnabled.climate.CO2_Monitor_Wohnzimmer"/*scriptEnabled.climate.CO2_Monitor_Wohnzimmer*/, false, 5000, false); setStateDelayed("javascript.1.scriptEnabled.climate.CO2_Monitor_Wohnzimmer"/*scriptEnabled.climate.CO2_Monitor_Wohnzimmer*/, true, 8000, false); } });

@realwax
Copy link
Author

realwax commented Nov 11, 2020

Funktioniert - danke @Apollon77 :)

@realwax realwax closed this as completed Nov 11, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants