#41 2.10svn2517 crashes on debian squeeze with SIGSEGV

gpsdrive-svn
open
nobody
6
2009-10-08
2009-09-22
No

Any hints and pointers appreciated.
Installed todays osm package updates but that doesn't seem to have helped.
The hopefully relevant part of strace follows:

open("/usr/share/icons/map-icons/classic.small/rendering/cliff.png", O_RDONLY) = 8
fstat64(8, {st_mode=S_IFREG|0644, st_size=26196, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xaf4c5000
read(8, "\211PNG\r\n\32\n\0\0\0\rIHDR\0\0\0\17\0\0\0\4\10\6\0\0\0Q\21e\211"..., 4096) = 4096
read(8, "\272\"\371\377@\17\372\0:\322\247\336\353\221\2418\347\275\370\20\256?\201\226a\37\271\370\10-tFH"..., 4096) = 4096
read(8, "B]\327a\0b\343zn\273s\244\335D\25D5~\337\17r(|\326\216N\250\264\3\215j\341@"..., 4096) = 4096
read(8, "n\3620H\32\246\336\30]\212\372_\v_\177\206&k\260\307\10d\260x\221\343\353\375\2573{G\220"..., 4096) = 4096
read(8, "\204\361%8\261yF\37c`\214\363}{\25C\10;+@03Ft\257\251\314\213\20\7g\367\202"..., 4096) = 4096
read(8, "\7s\314\354\336j\217\335\352\272\357%Z\215[~_\313\257d\351\326\256\267\244\361\262+\235\234\326\361\364"..., 4096) = 4096
read(8, "M\256Y\327q\246~\341\350[\273\34{\217y\213\274\243\256\362\315y\32\tc\5\310zA\277\247\336\364"..., 4096) = 1620
close(8) = 0
munmap(0xaf4c5000, 4096) = 0
open(".shp", O_RDONLY) = -1 ENOENT (No such file or directory)
close(-1) = -1 EBADF (Bad file descriptor)
futex(0xb7609788, FUTEX_WAKE_PRIVATE, 2147483647) = 0
write(2, " got exception ... \n"..., 20 got exception ...
) = 20
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
poll([{fd=4, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=4, revents=POLLOUT}])
writev(4, [{"\33\30\2\0\0\0\0\0"..., 8}, {NULL, 0}, {""..., 0}], 3) = 8
read(4, 0x9eb9e08, 4096) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=4, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=4, revents=POLLOUT}])
writev(4, [{" \30\2\0\0\0\0\0"..., 8}, {NULL, 0}, {""..., 0}], 3) = 8
read(4, 0x9eb9e08, 4096) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=4, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=4, revents=POLLOUT}])
writev(4, [{"%\30\1\0+\0\1\0"..., 8}, {NULL, 0}, {""..., 0}], 3) = 8
poll([{fd=4, events=POLLIN}], 1, -1) = 1 ([{fd=4, revents=POLLIN}])
read(4, "\1\2\343\0\0\0\0\0\7\1\0\1\0\0\0\0\4\0\0\0`\240\4\20`\240\4\20\0\0\0\0"..., 4096) = 32
read(4, 0x9eb9e08, 4096) = -1 EAGAIN (Resource temporarily unavailable)
access("/usr/local/bin/gdb", X_OK) = -1 ENOENT (No such file or directory)
access("/usr/bin/gdb", X_OK) = 0
getuid32() = 1000
stat64("/usr/bin/gdb", {st_mode=S_IFREG|0755, st_size=3301728, ...}) = 0
readlink("/proc/self/exe", "/usr/bin/gpsdrive"..., 256) = 17
open("/usr/bin/gpsdrive", O_RDONLY) = 8
lseek(8, 0, SEEK_END) = 514880
mmap2(NULL, 514880, PROT_READ|PROT_WRITE, MAP_PRIVATE, 8, 0) = 0xaf448000
munmap(0xaf448000, 514880) = 0
exit_group(1) = ?

Discussion

  • Hamish B

    Hamish B - 2009-09-22

    open(".shp", O_RDONLY) = -1 ENOENT (No such file or directory)

    the shapefile name seems to have lost all but its extension. Anything obvious which looks like that near the end of ~/.gpsdrive/osm.xml?

    is the 300mb world coastline .deb installed?

    Hamish

     
  • Thomas B. Rücker

    If you mean the openstreetmap-mapnik-world-boundaries, yes version 16662 is installed.

    $ grep shp ~/.gpsdrive/osm.xml ## returns nothing
    $ grep mapnik ~/.gpsdrive/osm.xml ##returns various hits

    $ mv ~/.gpsdrive/osm.xml ~/.gpsdrive/osm.xml.bak
    $ strace gpsdrive
    [...]
    munmap(0xaf421000, 4096) = 0
    open(".shp", O_RDONLY) = -1 ENOENT (No such file or directory)
    close(-1) = -1 EBADF (Bad file descriptor)
    futex(0xb7565788, FUTEX_WAKE_PRIVATE, 2147483647) = 0
    write(2, " got exception ... \n"..., 20 got exception ...
    ) = 20
    --- SIGSEGV (Segmentation fault) @ 0 (0) ---

     
  • Thomas B. Rücker

    • priority: 5 --> 6
     
  • Thomas B. Rücker

    OK, after being p*ssed of that it didn't magically fix itself... ;-)
    I remembered that I only straced it and didn't gdb it.
    I did and was surprised. I found the following:

    Program received signal SIGSEGV, Segmentation fault.
    0xb765cb5a in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&) ()
    from /usr/lib/libstdc++.so.6
    (gdb) bt
    #0 0xb765cb5a in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&) ()
    from /usr/lib/libstdc++.so.6
    #1 0xb3136669 in shape_datasource::shape_datasource(mapnik::parameters const&) () from /usr/lib/mapnik/0.5/input/shape.input
    #2 0xb3137517 in create () from /usr/lib/mapnik/0.5/input/shape.input
    #3 0xb775890c in mapnik::datasource_cache::create(mapnik::parameters const&) () from /usr/lib/libmapnik.so.0.6
    #4 0xb77bd2a2 in mapnik::map_parser::parse_layer(mapnik::Map&, boost::property_tree::basic_ptree<boost::property_tree::ptree_traits<char> > const&) () from /usr/lib/libmapnik.so.0.6
    #5 0xb77be75d in mapnik::map_parser::parse_map(mapnik::Map&, boost::property_tree::basic_ptree<boost::property_tree::ptree_traits<char> > const&) () from /usr/lib/libmapnik.so.0.6
    #6 0xb77c01cb in mapnik::load_map(mapnik::Map&, std::string const&, bool) () from /usr/lib/libmapnik.so.0.6
    #7 0x080ad8a4 in init_mapnik ()
    #8 0x0807514b in gui_init ()
    #9 0x0806d6a6 in main ()

    Please notice that after using libmapnik0.6 all the time suddenly in #2 it uses a file from 0.5.

    Long story short:
    dpkg --force-depends -r libmapnik0.5
    fixes that and gpsdrive starts and works just fine. Just apt-get complains about broken dependencies and wants to reinstall it.

    I'm not sure, but I suspect that the dependency rule for libmapnik needs some loving.
    Anyone knowledgeable about this? As I don't know this well enough.

    Kicking prio up a notch as this is a showstopper.

     
  • Hamish B

    Hamish B - 2009-10-08

    nice detective work.

    the problem is that 0.5 is hardcoded:

    src/gpsdrive_config.c
    889: g_snprintf(local_config.mapnik_input_path, sizeof(local_config.mapnik_input_path),
    890: "%s", "/usr/lib/mapnik/0.5/input/");

    Hamish

     
  • Thomas B. Rücker

    libmapnik0.5 0.5.1-3
    gpsdrive 2.10svn2524
    (the latter came through an upgrade today)
    Issue still exists. any ideas?

     
  • Thomas B. Rücker

    just at the off chance that someone would go as far as reading this ticket...

    It still doesn't work, but the message has changed:
    dm8tbr@fortinbras:~$ gpsdrive
    Speech Dispatcher not available, disabling speech output!
    Connection to GPS Daemon on 127.0.0.1:2947 established.
    DB: Using waypoints from local user file.
    DB: Using street data from Mapnik database.
    Read 528 POI-Types from geoinfo.db
    got exception ...
    got exception ...
    got exception ...
    got exception ...
    gpsdrive: symbol lookup error: /usr/lib/mapnik/0.5/input/postgis.input: undefined symbol: _ZN5boost5mutex7do_lockEv

     

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks