MLAT startup error

I’m having issues with fa-mlat-client not wanting to start.
I did a manual installation, getting the source from git (using the sensible-build.sh script)
I have a mode-s beast and beast-splitter running which is feeding PiAware and other clients just fine.
It’s the flightaware mlat client that is causing me a headache…

Running debian Jessie on an Odroid C2 (Linux Odroid 3.14.65+ #1 SMP PREEMPT Thu Jul 14 07:59:44 CEST 2016 aarch64 GNU/Linux)

Error message:
Jul 21 16:39:26 Odroid piaware[10463]: mlat-client(11088): fa-mlat-client 0.2.5~dev starting up
Jul 21 16:39:26 Odroid piaware[10463]: mlat-client(11088): Using UDP transport to 70.42.6.198 port 9453
Jul 21 16:39:26 Odroid piaware[10463]: mlat-client(11088): Input connected to localhost:30005
Jul 21 16:39:26 Odroid piaware[10463]: mlat-client(11088): Input format changed to BEAST, 12MHz clock
Jul 21 16:39:26 Odroid piaware[10463]: got EOF from multilateration client
Jul 21 16:39:26 Odroid piaware[10463]: fa-mlat-client exited with SIG SIGSEGV

Google is no help with this and i’m kinda lost…
Any help would be appreciated!!

Forgot to mention; the piaware version is 3.0.1

I would need a gdb backtrace from fa-mlat-client at the point it crashes to debug this, as I don’t have an equivalent environment to what you’re using.

How would I do a gdb backtrace?

I’ve been trying to work with gdb.
Not sure if this is helpful…

fa-mlat-client 0.2.5~dev starting up
Using UDP transport to 70.42.6.198 port 8533
event ready mlat_client_version 0.2.5~dev type mlat_event
Input connected to localhost:30005
Input format changed to BEAST, 12MHz clock
event connected type mlat_event
event clock_reset mode BEAST reason Decoder mode changed to BEAST epoch none frequency 12000000 type mlat_event

Program received signal SIGSEGV, Segmentation fault.
0x0000007fb7d49ee8 in PyArg_ParseTupleAndKeywords () from /usr/lib/piaware/helpers/libpython3.4m.so.1.0

Yep that is almost exactly what I need. Can you run a “bt” command in gdb at that point to show the full stack?

when I issue the bt command I get a shed load of lines that all say:

#5606 0x0000007fb7d361f0 in PyEval_EvalCode () from /usr/lib/piaware/helpers/libpython3.4m.so.1.0

The first figure (#5606) is incremental and seems to keep going, I just stopped it at 5606.

Would you need any other info?

Sounds like a recursive loop.

Can you try “bt -50” which should show the last 50 frames?

I’ve issued the bt -50 command about 10 minutes ago and it’s still going…
One of the 4 processor cores is at 100% steady for gdb.

Should I just wait until it gives some output or is there no point in waiting?

About an hour in now and still no output…

Weird. Not sure what is going on there. Do you have a Pi you can try the standard sdcard image on?

Yes, I have a Pi.
I’ve installed beast-splitter on it and then used the sensible-build.sh script to get the source code.
Compiled it all and is working without any problems.
MLAT is running fine as well…

I’ve tried to rebuild everything on the Odroid C2, but the result is the same.

Ah, after the rebuild on the Odroid it seems that gdb has some output after using the bt command.

This is what I get:

fa-mlat-client 0.2.5~dev starting up
Using UDP transport to 70.42.6.198 port 8533
type mlat_event mlat_client_version 0.2.5~dev event ready
Input connected to localhost:30005
Input format changed to BEAST, 12MHz clock
type mlat_event event connected
mode BEAST frequency 12000000 reason Decoder mode changed to BEAST epoch none event clock_reset type mlat_event

Program received signal SIGSEGV, Segmentation fault.
0x0000007fb7d49ee8 in PyArg_ParseTupleAndKeywords () from /usr/lib/piaware/helpers/libpython3.4m.so.1.0
(gdb) bt
#0 0x0000007fb7d49ee8 in PyArg_ParseTupleAndKeywords () from /usr/lib/piaware/helpers/libpython3.4m.so.1.0
#1 0x0000007fb765377c in ?? () from /usr/lib/piaware/helpers/_modes.cpython-34m.so
#2 0x000000000054a660 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

I’m not sure if my last gdb backtrace was of any help, but I’m hoping it was.
If there’s anything I can do to help, then please let me know.
It would be really great to get the mlat client to work.

Any help is greatly appreciated, thanks!!

I eyeballed the code and it’s nothing immediately obvious; it might be a build issue specific to your odroid environment.

Can you provide remote access to the odroid? (Send me a PM)

Just to let you know that I am run OK on an odroid XU4 with:-
Linux odroidxu4 3.10.102-odroidxu4 #6 SMP PREEMPT Tue Jul 5 17:40:44 CEST 2016 armv7l GNU/Linux
Welcome to ARMBIAN Debian GNU/Linux 8 (jessie) 3.10.102-odroidxu4

Someone posted in the forums that Armbian seemed to work better with piaware stuff.

I have a feeling it may have something to do with the fact that the C2 has an arm64 processor.
Hopefully obj can find the issue, otherwise I’ll look into armbian.

Thanks!

This was a “how did this ever work before?” bug that must have only been working OK on the Pi / x86 builds through sheer luck! Should be fixed now.

Huge thanks obj!!

Hi guys

I have exactley the same problem on an i386 system , i have tried moth latest Ubuntu and Debian 8.5 and same result , version 2.5 of piaware was fine , i just rebulit a new system and have 3.0.1 as it now seems the latest … what is the fix ?

Thanks

~$ sudo systemctl status piaware
● piaware.service - FlightAware ADS-B uploader
Loaded: loaded (/lib/systemd/system/piaware.service; enabled)
Active: active (running) since Fri 2016-07-29 13:06:18 NZST; 5min ago
Docs: flightaware.com/adsb/piaware/
Main PID: 19125 (piaware)
CGroup: /system.slice/piaware.service
├─19125 /usr/bin/piaware -plainlog -statusfile /run/piaware/status.js
└─19169 /usr/lib/piaware/helpers/faup1090 --net-bo-ipaddr localhost -

Jul 29 13:11:25 piawarejb piaware[19125]: mlat-client(19234): fa-mlat-client 0.2
Jul 29 13:11:25 piawarejb piaware[19125]: mlat-client(19234): Using UDP transpor
Jul 29 13:11:25 piawarejb piaware[19125]: mlat-client(19234): Listening for Exte
Jul 29 13:11:25 piawarejb piaware[19125]: mlat-client(19234): Input connected to
Jul 29 13:11:25 piawarejb piaware[19125]: mlat-client(19234): Input format chang
Jul 29 13:11:26 piawarejb piaware[19125]: mlat-client(19234): Accepted Extended
Jul 29 13:11:26 piawarejb piaware[19125]: mlat-client(19234): Beast-format resul
Jul 29 13:11:52 piawarejb piaware[19125]: got EOF from multilateration client
Jul 29 13:11:52 piawarejb piaware[19125]: fa-mlat-client exited with SIG SIGSEGV
Jul 29 13:11:52 piawarejb piaware[19125]: 33 msgs recv’d from dump1090-muta (29
piawarejb@piawarejb:~$ fa-mlat-client exited with SIG SIGSEGV