DennisOSRM / hms-mqtt-publisher

HMS-XXXXW-2T MQTT publisher and Home Assistant addon
BSD 2-Clause "Simplified" License
111 stars 16 forks source link

Issue running in container on Raspi3 #108

Open Osto-git opened 6 months ago

Osto-git commented 6 months ago

Hi,

I've got an issue running the has-mqtt-publisher container (from repo) on Raspi3 (armv7l). It starts properly but doesn't deliver all values:

[2024-03-15T15:12:55Z INFO hms_mqtt_publish] Running revision: b3759dadd318c48b8f84b04a2b94ff0c230008f1 [2024-03-15T15:12:55Z INFO hms_mqtt_publish] loading configuration from /config.toml [2024-03-15T15:12:55Z INFO hms_mqtt_publish] using non-default update interval of 300.00s [2024-03-15T15:12:55Z INFO hms_mqtt_publish] inverter host: 192.168.0.124 [2024-03-15T15:12:55Z INFO hms_mqtt_publish] Publishing to simple MQTT broker [2024-03-15T15:12:55Z INFO hms2mqtt::inverter] Inverter is Online thread 'main' panicked at library/std/src/sys/unix/thread.rs:245:21: assertion left == right failed  1  4 Would really appreciate if this can be fixed.

DennisOSRM commented 6 months ago

Is this reproducible? Does it print a stack trace? This looks like it is failing at some very low level code.

Osto-git commented 6 months ago

yes this is reproducible. With -e RUST_BACKTRACE=1 -e LOG_LEVEL=trace, the following output is delivered:

thread 'main' panicked at library/std/src/sys/unix/thread.rs:245:21: assertionleft == rightfailed left: 1 right: 4 stack backtrace: 0: rust_begin_unwind at ./rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:645:5 1: core::panicking::panic_fmt at ./rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panicking.rs:72:14 2: core::panicking::assert_failed_inner 3: core::panicking::assert_failed at ./rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panicking.rs:279:5 4: std::sys::unix::thread::Thread::sleep at ./rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys/unix/thread.rs:245:21 5: std::thread::sleep at ./rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/thread/mod.rs:874:5 6: hms_mqtt_publish::main with -e RUST_BACKTRACE=full -e LOG_LEVEL=trace :

stack backtrace: 0: 0x71f020 - std::backtrace_rs::backtrace::libunwind::trace::he4e615f71770cf25 at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5 1: 0x71f020 - std::backtrace_rs::backtrace::trace_unsynchronized::h31d65151e5225f60 at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 2: 0x71f020 - std::sys_common::backtrace::_print_fmt::h544a8cfd35e51b33 at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:67:5 3: 0x71f020 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h210f42c56c4a2cab at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:44:22 4: 0x749ec8 - core::fmt::rt::Argument::fmt::h9b311bdb1e1b1643 at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/fmt/rt.rs:142:9 5: 0x749ec8 - core::fmt::write::hcb81fd5659a34864 at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/fmt/mod.rs:1120:17 6: 0x71b814 - std::io::Write::write_fmt::h57cfb37e4f38c293 at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/io/mod.rs:1762:15 7: 0x71ee30 - std::sys_common::backtrace::_print::h42352ca567e395de at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:47:5 8: 0x71ee30 - std::sys_common::backtrace::print::hda5dc97763a74c30 at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:34:9 9: 0x72078c - std::panicking::default_hook::{{closure}}::hb308c414ae0a8a2f at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:272:22 10: 0x7203b4 - std::panicking::default_hook::h7d7103de5bd05496 at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:292:9 11: 0x720e9c - std::panicking::rust_panic_with_hook::hfa3e2b8933e1b74b at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:779:13 12: 0x720ba0 - std::panicking::begin_panic_handler::{{closure}}::h42d9d6ef5abb38b1 at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:657:13 13: 0x71f584 - std::sys_common::backtrace::__rust_end_short_backtrace::h9e8549b304b72c91 at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:170:18 14: 0x72095c - rust_begin_unwind at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:645:5 15: 0x4950d4 - core::panicking::panic_fmt::h8911d7f11480f1bd at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panicking.rs:72:14 16: 0x495434 - core::panicking::assert_failed_inner::h9128a587e6efb4a4 17: 0x492adc - core::panicking::assert_failed::h0f4d6b0962f054d3 at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panicking.rs:279:5 18: 0x7150a0 - std::sys::unix::thread::Thread::sleep::hd870246764e27038 at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys/unix/thread.rs:245:21 19: 0x7150a0 - std::thread::sleep::h06f8640b43b10681 at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/thread/mod.rs:874:5 20: 0x4a2b34 - hms_mqtt_publish::main::hedd830ed5a2e5062 21: 0x4a3134 - std::sys_common::backtrace::__rust_begin_short_backtrace::he22971d66103af91 22: 0x4ae1d4 - std::rt::lang_start::{{closure}}::hac9afaf3111c6643 23: 0x714af4 - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::h657be3faba29cab7 at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/ops/function.rs:284:13 24: 0x714af4 - std::panicking::try::do_call::h388ed9d25fd2d57c at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:552:40 25: 0x714af4 - std::panicking::try::h1a6cd16733c2b4b0 at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:516:19 26: 0x714af4 - std::panic::catch_unwind::h239e48dd9b3dd769 at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panic.rs:142:14 27: 0x714af4 - std::rt::lang_start_internal::{{closure}}::h9bf2f804d69992b3 at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/rt.rs:148:48 28: 0x714af4 - std::panicking::try::do_call::h64acaf134d4b2df1 at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:552:40 29: 0x714af4 - std::panicking::try::h9e118a4f1feb46a9 at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:516:19 30: 0x714af4 - std::panic::catch_unwind::h1e3e218ac4383e6a at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panic.rs:142:14 31: 0x714af4 - std::rt::lang_start_internal::h8954346b2a078d6d at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/rt.rs:148:20 32: 0x4ae1bc - std::rt::lang_start::hd40e99451fbab378 33: 0x76d5e5a0 - __libc_start_main DEBU[0002] [hijack] End of stdout

DennisOSRM commented 6 months ago

Thanks for the update. This will be an interesting issue to debug since the stack trace points only to code outside of the application.

Is there anything special about your Raspi configuration?

Osto-git commented 6 months ago

hm, don't think there is anything special about it. After first research my assumption was the special architecture (arm7l) and that some libraries are not properly supporting this. But this is just the "feeling" :)

Just for the sake of completeness, here is the cat /proc/cpuinfo info: processor : 0 model name : ARMv7 Processor rev 4 (v7l) BogoMIPS : 76.80 Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xd03 CPU revision : 4

processor : 1 model name : ARMv7 Processor rev 4 (v7l) BogoMIPS : 76.80 Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xd03 CPU revision : 4

processor : 2 model name : ARMv7 Processor rev 4 (v7l) BogoMIPS : 76.80 Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xd03 CPU revision : 4

processor : 3 model name : ARMv7 Processor rev 4 (v7l) BogoMIPS : 76.80 Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xd03 CPU revision : 4

Hardware : BCM2835 Revision : a02082 Model : Raspberry Pi 3 Model B Rev 1.2

DennisOSRM commented 6 months ago

The Rpi itself is more than capable. Might be something with the docker setup, but that's just a hunch.