On Sat, 2010-09-25 at 22:33 -0700, NopMap wrote: > borrow 0x18d56e0 > return 0x18d56e0 > > The end layer message for "tracks" never comes. The layer renders > properly > for 99% of tiles, only in some areas there's a problem. > > What sort of dynamic data could cause this?
I'm afraid you can not really answer that until you identify the issue. What has probably happened is that the data has tricked one of the iterative algorithms inside Mapnik to go into an infinite loop. > How can I continue debugging from here? The first thing which helps is to try to figure out how to reproduce the problem quickly. The next is to compile Mapnik with debug enabled and then run it until you hit the issue and then get a backtrace from all the running threads at the time it hangs. $ gdb ./renderd GNU gdb (GDB) Fedora (7.1-34.fc13) ... (gdb) run -f Starting program: /home/jburgess/osm/svn.openstreetmap.org/applications/utils/mod_tile/renderd -f [Thread debugging using libthread_db enabled] renderd[10267]: Rendering daemon started ... Then when it hangs, press ctrl-c and enter ask for a backtrace from all threads and send us the output: ^C Program received signal SIGINT, Interrupt. 0x0000003defeda043 in select () at ../sysdeps/unix/syscall-template.S:82 ... (gdb) thread apply all bt Thread 6 (Thread 0x7ffff15b7710 (LWP 10274)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162 #1 0x0000000000409747 in fetch_request () at daemon.c:57 #2 0x000000000040ad45 in render_thread (arg=0x7ffff1585fb0) at gen_tile.cpp:531 #3 0x0000003df0607761 in start_thread (arg=0x7ffff15b7710) at pthread_create.c:301 #4 0x0000003defee14ed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 5 (Thread 0x7ffff1fb8710 (LWP 10273)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162 #1 0x0000000000409747 in fetch_request () at daemon.c:57 #2 0x000000000040ad45 in render_thread (arg=0x7ffff1f86fb0) at gen_tile.cpp:531 #3 0x0000003df0607761 in start_thread (arg=0x7ffff1fb8710) at pthread_create.c:301 #4 0x0000003defee14ed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 ... Alternatively, if you already have mapnik running and it has stuck in a loop then you can attach gdb by specifying the process ID: $ ps -ef | grep renderd jburgess 10319 21562 3 10:49 pts/6 00:00:02 ./renderd -f $ gdb ./renderd 10319 Then again run the "thread apply all bt" command once gdb starts. If you are using something other than renderd then replace this with the name of the program. If it is a script, like a python program then you may need to specify the interpreter (/usr/bin/python), as the executable name when starting gdb. $ gdb /usr/bin/python ... (gdb) run generate_image.py or "gdb /usr/bin/python PROCESS_ID" Jon _______________________________________________ Mapnik-users mailing list [email protected] https://lists.berlios.de/mailman/listinfo/mapnik-users

