Post by acekrystal on Sept 29, 2016 16:33:45 GMT
During my stability test I'm running multiple Odroids with piGateway, directly attached to the RFM69-433MHz chip.
The Odroid with the most modules registered (6 registered, from which 5 are online and each module pushing 4 payloads every ~3 seconds).
This Odroid is the only one that seems to crash at random times.
I think it has to do with incorrect handling of faulty payloads. (caused by bad signal, or collision of 2 or more payloads).
This might also be somewhat related to my other threat " homeautomation.proboards.com/thread/185/pigateway-returns-stack-smashing-detected ".
At an other Odroid I'm watching the interrupt function, there I also noticed that it is triggered a lot. So I'm kinda hoping this whole problem is caused by a not correctly working interrupt pin. It might be the interrupt pin is also floating and also needs a pull down resistor to keep it from randomly triggering.
This is the second time this happened to this odroid, first time was within 3 hour. I will first try the pull down technique with a 1K resistor
Will post my updates!
The Odroid with the most modules registered (6 registered, from which 5 are online and each module pushing 4 payloads every ~3 seconds).
This Odroid is the only one that seems to crash at random times.
[33] to [1] Received Node ID = 33 Device ID = 4 Time = 376423012 RSSI = -57 var2 = 0.000000 var3 = 0.000000
Pinging node 34 - ACK - nothing![34] to [1] Received Node ID = 34 Device ID = 4 Time = 376935555 RSSI = -62 var2 = 0.000000 var3 = 0.000000
[31] to [1] Received Node ID = 31 Device ID = 4 Time = 171386087 RSSI = -60 var2 = 0.000000 var3 = 0.000000
[32] to [1] Received Node ID = 32 Device ID = 4 Time = 171949873 RSSI = -55 var2 = 0.000000 var3 = 0.000000
Pinging node 35 - ACK - nothing![35] to [1] Received Node ID = 35 Device ID = 4 Time = 360081860 RSSI = -62 var2 = 0.000000 var3 = 0.000000
[33] to [1] Received Node ID = 33 Device ID = 6 Time = 376424445 RSSI = -56 var2 = 21.296257 var3 = 55.461967
[34] to [1] Received Node ID = 34 Device ID = 6 Time = 376936986 RSSI = -62 var2 = 21.189438 var3 = 56.055542
Pinging node 31 - ACK - nothing![31] to [1] Received Node ID = 31 Device ID = 6 Time = 171387521 RSSI = -58 var2 = 21.322960 var3 = 55.428398
[32] to [1] Received Node ID = 32 Device ID = 6 Time = 171951310 RSSI = -55 var2 = 21.288246 var3 = 57.035172
[35] to [1] Received Node ID = 35 Device ID = 6 Time = 360083290 RSSI = -61 var2 = 21.293587 var3 = 55.187305
Pinging node 33 - ACK - nothing![33] to [1] Received Node ID = 33 Device ID = 4 Time = 376425562 RSSI = -57 var2 = 0.000000 var3 = 0.000000
[34] to [1] Received Node ID = 34 Device ID = 4 Time = 376938106 RSSI = -63 var2 = 0.000000 var3 = 0.000000
[31] to [1] Received Node ID = 31 Device ID = 4 Time = 171388641 RSSI = -57 var2 = 0.000000 var3 = 0.000000
[0] to [0] Invalid payload received, not matching Payload struct! 189 - 16
0000 f3 de 20 4b f0 8a 3b ea 2e 1a b3 c9 de c3 6d 72 ...K..;.......mr
0010 91 8c ec 2a c8 e6 7f a2 d7 d5 4f 37 cf 6d 49 49 ...*......O7.mII
0020 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49 IIIIIIIIIIIIIIII
0030 49 49 49 49 49 49 49 49 49 49 49 49 49 01 49 00 IIIIIIIIIIIII.I.
0040 c7 ff 09 00 02 00 00 bd b6 00 00 00 f6 5f 61 62 ............._ab
0050 00 f0 eb b6 90 a3 01 00 50 ee ff be 75 90 00 00 ........P...u...
0060 00 00 00 00 71 62 fe b6 44 f0 ff be 01 00 00 00 ....qb..D.......
0070 00 00 00 00 52 46 4d 2f 31 30 30 2f 23 00 00 00 ....RFM/100/#...
0080 01 00 00 00 78 a8 ff b6 f0 8b de b6 a4 7b de b6 ....x........{..
0090 b0 ee ff be 00 00 00 00 00 00 00 00 30 aa ff b6 ............0...
00a0 b9 a6 63 94 78 a8 ff b6 ff ff ff ff 98 ed ff b6 ..c.x...........
00b0 b4 f3 fd b6 68 f5 ff b6 14 45 ff b6 bc ....h....E...
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb6bd7450 (LWP 8408)]
0x0000accc in RFM69::isr0() ()
(gdb) bt full
#0 0x0000accc in RFM69::isr0() ()
No symbol table info available.
#1 0xb6fb6aaa in interruptHandler () from /usr/local/lib/libwiringPi.so
No symbol table info available.
#2 0xb6c76fa0 in start_thread (arg=0xb6bd7450) at pthread_create.c:314
pd = 0xb6bd7450
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1229097368, -1229097904,
1, -1229099440, -1229099120, -1228361316, -1229097340,
-1090523864, -221028936, -223781739, 0 <repeats 54 times>},
mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},
data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = 0
pagesize_m1 = <optimized out>
sp = <optimized out>
freesize = <optimized out>
__PRETTY_FUNCTION__ = "start_thread"
#3 0xb6e77d9c in ?? ()
at ../ports/sysdeps/unix/sysv/linux/arm/nptl/../clone.S:92
from /lib/arm-linux-gnueabihf/libc.so.6
No locals.
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb)
I think it has to do with incorrect handling of faulty payloads. (caused by bad signal, or collision of 2 or more payloads).
This might also be somewhat related to my other threat " homeautomation.proboards.com/thread/185/pigateway-returns-stack-smashing-detected ".
At an other Odroid I'm watching the interrupt function, there I also noticed that it is triggered a lot. So I'm kinda hoping this whole problem is caused by a not correctly working interrupt pin. It might be the interrupt pin is also floating and also needs a pull down resistor to keep it from randomly triggering.
This is the second time this happened to this odroid, first time was within 3 hour. I will first try the pull down technique with a 1K resistor
Will post my updates!