I noted the following error in piaware.out for an eight hour period, then apparently dump1090 crashed. Any ideas why this happened? Could it have anything to do with forwarding data from another Pi to this one?
01/03/2015 01:58:27 error uploading ADS-B message: list must have an even number of elements
01/03/2015 09:57:07 error uploading ADS-B message: list must have an even number of elements
01/03/2015 09:58:34 lost connection to faup1090, reconnecting...
01/03/2015 09:58:34 no ADS-B data program is serving on port 30005, next check in 60s
I can answer my own question. The error is caused by forwarding data from another Pi to the one that’s reporting the error. I just did a test and found that the error messages began to show up in /tmp/piaware.out as soon as I started "netcat’ing’ the data from one Pi to the other. Well, back to the drawing board.
Which makes it all the more puzzling because faup1090 (which is what’s generating the FATSV output) only has one data connection in this case, regardless of whether your second receiver is feeding into the mix or not.
I’d be interested in seeing sample output from port 10001 while the problem is occuring (“nc -q60 pihostname 10001 </dev/null >output.txt”, and wait 60 seconds) if you don’t mind collecting that.
(The exact format of the output, e.g. location of tab characters, is important so if you can put it on dropbox or similar, verbatim, rather than cut+pasting it, that would be perfect)
A possible workaround is to start dump1090 with “–net-fatsv-port 0”.
This disables FATSV support in dump1090 itself and so piaware will run a separate faup1090 which will probably (maybe!) work OK.
The underlying problem is related to uninitialized memory when allocating a new inbound network connection.
faup1090 only creates an inbound data connection once, early during execution, so (through luck) it will probably allocate a zeroed block of memory for that connection and work OK.
dump1090, in contrast, might accept a new inbound connection at any time so it’s more likely to get a reused block of memory and run into problems.