Tue 01 Feb 2011 11:57:33 AM UTC, original submission:
I discovered this on my buildbot slave for Debian Squeeze. The buildbot hang in the 'make check' stage and got two processes using a lot of CPU. These are the processes in question:
buildbot@gnashbuild0:~$ pstree -p|grep lt
|-astests-v5-Runn(14530)---lt-gprocessor(14531)
|-astests-v7-Runn(16992)---lt-gprocessor(16993)---{lt-gprocessor}(17013)
buildbot@gnashbuild0:~$
A GDB backtrace of the first look like this:
(gdb) bt
#0 memmove () at ../sysdeps/i386/i686/memmove.S:100
#1 0x409b5b7a in std::string::_M_mutate(unsigned int, unsigned int, unsigned int) ()
from /usr/lib/libstdc++.so.6
#2 0x409b5c3a in std::string::_M_replace_safe(unsigned int, unsigned int, char const*, unsigned int) () from /usr/lib/libstdc++.so.6
#3 0x409b639d in std::string::insert(unsigned int, char const*, unsigned int) ()
from /usr/lib/libstdc++.so.6
#4 0x406e4594 in std::string::insert (input=...)
at /usr/include/c++/4.4/bits/basic_string.h:1097
#5 std::string::insert (input=...) at /usr/include/c++/4.4/bits/basic_string.h:1072
#6 gnash::URL::encode (input=...) at URL.cpp:390
#7 0x406e47f1 in gnash::URL::encode (str=...) at URL.cpp:401
#8 0x4008fef2 in gnash::getURLEncodedVars (o=...) at as_object.cpp:964
#9 0x4010137d in gnash::MovieClip::loadVariables (this=0x8a501a0, urlstr=...,
sendVarsMethod=gnash::MovieClip::METHOD_GET) at MovieClip.cpp:1817
#10 0x401bc315 in movieclip_loadVariables (fn=...) at asobj/MovieClip_as.cpp:959
#11 0x40196cfa in gnash::builtin_function::call(gnash::fn_call const&) ()
from /var/lib/buildbot/gnash/build/squeeze-linux-x86/build/libcore/.libs/libgnashcore-0.8.9dev.so
#12 0x40299f7c in ActionCallMethod (thread=...) at ASHandlers.cpp:2799
#13 0x40287f92 in gnash::SWF::ActionHandler::execute (this=0x8af63d8, thread=...)
at ASHandlers.cpp:240
#14 0x40290e77 in gnash::SWF::SWFHandlers::execute (this=0x40678e00,
type=gnash::SWF::ACTION_CALLMETHOD, thread=...) at ASHandlers.cpp:433
#15 0x402a5d9d in gnash::ActionExec::operator() (this=0xbf8d81c0) at ActionExec.cpp:252
#16 0x400f349e in gnash::GlobalCode::execute() ()
from /var/lib/buildbot/gnash/build/squeeze-linux-x86/build/libcore/.libs/libgnashcore-0.8.9dev.so
#17 0x400de45e in gnash::movie_root::processActionQueue (this=0xbf8d8360, lvl=2)
at movie_root.cpp:1330
#18 0x400de5b4 in gnash::movie_root::processActionQueue (this=0xbf8d8360)
at movie_root.cpp:1411
#19 0x400e55d0 in gnash::movie_root::advanceMovie (this=0xbf8d8360) at movie_root.cpp:898
#20 0x400ed43d in gnash::movie_root::advance (this=0xbf8d8360) at movie_root.cpp:832
#21 0x08050a8e in play_movie (filename=<value optimized out>,
runResources=<value optimized out>) at processor.cpp:474
#22 0x08052a46 in main (argc=6, argv=0xbf8d9994) at processor.cpp:371
Current language: auto
The current source language is "auto; currently asm".
(gdb)
The backtrace of the second look like this (pid 17013):
(gdb) bt
#0 0x4001d424 in __kernel_vsyscall ()
#1 0x4090cf7f in __pthread_cond_wait (cond=0xbf844ae4, mutex=0xbf844acc)
at pthread_cond_wait.c:153
#2 0x4015cef2 in wait<boost::unique_lock<boost::mutex> > (this=0xbf844a90)
at /usr/include/boost/thread/pthread/condition_variable.hpp:84
#3 gnash::MovieLoader::processRequests (this=0xbf844a90) at MovieLoader.cpp:98
#4 0x40160237 in boost::_mfi::mf0<void, gnash::MovieLoader>::operator() (this=0x8e7f640)
at /usr/include/boost/bind/mem_fn_template.hpp:49
#5 operator()<boost::_mfi::mf0<void, gnash::MovieLoader>, boost::_bi::list0> (
this=0x8e7f640) at /usr/include/boost/bind/bind.hpp:253
#6 boost::_bi::bind_t<void, boost::_mfi::mf0<void, gnash::MovieLoader>, boost::_bi::list1<boost::_bi::value<gnash::MovieLoader*> > >::operator() (this=0x8e7f640)
at /usr/include/boost/bind/bind_template.hpp:20
#7 boost::detail::thread_data<boost::_bi::bind_t<void, boost::_mfi::mf0<void, gnash::MovieLoader>, boost::_bi::list1<boost::_bi::value<gnash::MovieLoader*> > > >::run (this=0x8e7f640)
at /usr/include/boost/thread/detail/thread.hpp:56
#8 0x40d040d5 in thread_proxy () from /usr/lib/libboost_thread.so.1.42.0
#9 0x40908955 in start_thread (arg=0x42d7fb70) at pthread_create.c:300
#10 0x40adce7e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
(gdb)
And pid 16993:
(gdb) bt
#0 memmove () at ../sysdeps/i386/i686/memmove.S:100
#1 0x409b5b7a in std::string::_M_mutate(unsigned int, unsigned int, unsigned int) ()
from /usr/lib/libstdc++.so.6
#2 0x409b5c3a in std::string::_M_replace_safe(unsigned int, unsigned int, char const*, unsigned int) () from /usr/lib/libstdc++.so.6
#3 0x409b639d in std::string::insert(unsigned int, char const*, unsigned int) ()
from /usr/lib/libstdc++.so.6
#4 0x406e4594 in std::string::insert (input=...)
at /usr/include/c++/4.4/bits/basic_string.h:1097
#5 std::string::insert (input=...) at /usr/include/c++/4.4/bits/basic_string.h:1072
#6 gnash::URL::encode (input=...) at URL.cpp:390
#7 0x406e47f1 in gnash::URL::encode (str=...) at URL.cpp:401
#8 0x4008fef2 in gnash::getURLEncodedVars (o=...) at as_object.cpp:964
#9 0x4010137d in gnash::MovieClip::loadVariables (this=0x8e501a0, urlstr=...,
sendVarsMethod=gnash::MovieClip::METHOD_GET) at MovieClip.cpp:1817
#10 0x401bc315 in movieclip_loadVariables (fn=...) at asobj/MovieClip_as.cpp:959
#11 0x40196cfa in gnash::builtin_function::call(gnash::fn_call const&) ()
from /var/lib/buildbot/gnash/build/squeeze-linux-x86/build/libcore/.libs/libgnashcore-0.8.9dev.so
#12 0x40299f7c in ActionCallMethod (thread=...) at ASHandlers.cpp:2799
#13 0x40287f92 in gnash::SWF::ActionHandler::execute (this=0x8ee53d8, thread=...)
at ASHandlers.cpp:240
#14 0x40290e77 in gnash::SWF::SWFHandlers::execute (this=0x40678e00,
type=gnash::SWF::ACTION_CALLMETHOD, thread=...) at ASHandlers.cpp:433
#15 0x402a5d9d in gnash::ActionExec::operator() (this=0xbf843b20) at ActionExec.cpp:252
#16 0x400f349e in gnash::GlobalCode::execute() ()
from /var/lib/buildbot/gnash/build/squeeze-linux-x86/build/libcore/.libs/libgnashcore-0.8.9dev.so
#17 0x400de45e in gnash::movie_root::processActionQueue (this=0xbf843cc0, lvl=2)
at movie_root.cpp:1330
#18 0x400de5b4 in gnash::movie_root::processActionQueue (this=0xbf843cc0)
at movie_root.cpp:1411
#19 0x400e55d0 in gnash::movie_root::advanceMovie (this=0xbf843cc0) at movie_root.cpp:898
#20 0x400ed43d in gnash::movie_root::advance (this=0xbf843cc0) at movie_root.cpp:832
#21 0x08050a8e in play_movie (filename=<value optimized out>,
runResources=<value optimized out>) at processor.cpp:474
#22 0x08052a46 in main (argc=6, argv=0xbf8452f4) at processor.cpp:371
Current language: auto
The current source language is "auto; currently asm".
(gdb)
|