Hi!

> > fakegps segfaults on many nmea logs I could find. It does so even
> > without all the debugging options.
> 
> please provide the nmea files.

The file I can reproduce it is rather big (7MB). I tried shorter
sections, but no luck. I can send it to you, but would prefer it not
be redistributed; would that be feasible?

> Also please checkout the gpsd git repository or use apt-get to retrieve the
> source and check if they files from the regression tests fail on your 
> machine, too.
> 
> In case they also fail...
> 
> > Kernel: Linux 3.6.0-rc6+ (SMP w/2 CPU cores)
> 
> please try the same with a kernel shipped with Debian and

Sorry, that is not easy to do.

> > Locale: LANG=C, LC_CTYPE=cs_CZ (charmap=)
> 
> please also try it with en_US.UTF-8 or C as LC_TYPE.

Does not seem to help.

pavel@amd:~/misc/gpx$ LC_CTYPE=C gpsfake test.nmea
Processing test.nmea
gpsd:ERROR: can't bind to IPv4 port 2947, Address already in use
gpsd:ERROR: maybe gpsd is already running!
gpsd:ERROR: can't create IPv6 socket
Segmentation fault (core dumped)
pavel@amd:~/misc/gpx$ 

> Also please try to get a core file, see which process segfaulted and provide a
> backtrace.

root@amd:/home/pavel/misc/gpx# file core
core: ELF 32-bit LSB core file Intel 80386, version 1 (SYSV),
SVR4-style, from '/usr/bin/python /usr/bin/gpsfake test.nmea'

It looks like gpsd does not have to be involved.

pavel@amd:~/misc/gpx$ cat zlutak_klepec_toris_dolanka.nmea > test.nmea
pavel@amd:~/misc/gpx$ ls -al test.nmea
-rw-r--r-- 1 pavel pavel 7172096 Sep 30 20:22 test.nmea
pavel@amd:~/misc/gpx$ gpsfake test.nmea
Processing test.nmea
gpsd:ERROR: can't bind to IPv4 port 2947, Address already in use
gpsd:ERROR: maybe gpsd is already running!
gpsd:ERROR: can't create IPv6 socket
Segmentation fault (core dumped)
pavel@amd:~/misc/gpx$ 

pavel@amd:~/misc/gpx$ gdb /usr/bin/python core 
GNU gdb (GDB) 7.4.1-debian
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show
copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/python...(no debugging symbols
found)...done.

warning: core file may not match specified executable file.
[New LWP 11904]

warning: Can't read pathname for load map: Input/output error.
[Thread debugging using libthread_db enabled]
Using host libthread_db library
"/lib/i386-linux-gnu/i686/cmov/libthread_db.so.1".
Failed to read a valid object file image from memory.
Core was generated by `/usr/bin/python /usr/bin/gpsfake
zlutak_klepec_toris_dolanka.nmea'.
Program terminated with signal 11, Segmentation fault.
#0  __memmove_ia32 () at
../sysdeps/i386/i686/multiarch/../memmove.S:77
77      ../sysdeps/i386/i686/multiarch/../memmove.S: No such file or
directory.
(gdb) 
(gdb) quit
pavel@amd:~/misc/gpx$ python --version
Python 2.7.3rc2
pavel@amd:~/misc/gpx$ 

dmesg says:

gpsfake[11746]: segfault at 8c1a000 ip b741f6a3 sp bfba3818 error 4 in
libc-2.13.so[b73a8000+156000]

Aha, I can gdb it to get better backtrace:

Program received signal SIGSEGV, Segmentation fault.
__memmove_ia32 () at ../sysdeps/i386/i686/multiarch/../memmove.S:77
77             ../sysdeps/i386/i686/multiarch/../memmove.S: No such
file or directory.
(gdb) bt
#0  __memmove_ia32 () at
../sysdeps/i386/i686/multiarch/../memmove.S:77
#1  0xb7a74c89 in ?? () from
/usr/lib/python2.7/dist-packages/gps/packet.so
#2  0xb7a78f1f in packet_get () from
/usr/lib/python2.7/dist-packages/gps/packet.so
#3  0xb7a746a3 in ?? () from
/usr/lib/python2.7/dist-packages/gps/packet.so
#4  0x0813b279 in PyEval_EvalFrameEx ()
#5  0x081417f0 in PyEval_EvalCodeEx ()
#6  0x0819bf62 in ?? ()
#7  0x080bfe6f in PyObject_Call ()
#8  0x0809be57 in ?? ()
#9  0x080bfe6f in PyObject_Call ()
#10 0x080c03f9 in PyEval_CallObjectWithKeywords ()
#11 0x080e346c in PyInstance_New ()
#12 0x080bfe6f in PyObject_Call ()
#13 0x0813ba96 in PyEval_EvalFrameEx ()
#14 0x081417f0 in PyEval_EvalCodeEx ()
#15 0x0813b6ac in PyEval_EvalFrameEx ()
#16 0x081417f0 in PyEval_EvalCodeEx ()
#17 0x0819ad51 in PyRun_FileExFlags ()
#18 0x0819c61a in PyRun_SimpleFileExFlags ()
#19 0x0819d6a8 in Py_Main ()
#20 0x0806109b in main ()
(gdb) 

Is there some easy way to dump the offending sentence.
                                                                        Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) 
http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to