On Friday 16 January 2009 01:34:55 Paul Pocock wrote: > Thanks Heaps! > > I get the segfault on exit. Due maybe to not exiting osgViewer cleanly? > I was thinking maybe if we override Pipe::initEventHandlers and gave the > Application the ability to handle events itself may solve this?
The viewer should automatically be released when the Pipe is destroyed. I'm not sure how event handling is related to this. Anyway, I found out it is actually the eqServer which is crashing, and managed to get a backtrace. It crashes because _data of the SpinLock in eq::base::SpinLock::unset is 0. Uncommenting the releaseConfig() call in Application.cpp helps, but I'm wondering what the real problem is. Regards, Thomas Thread 3 (Thread 0xb6ef1b90 (LWP 5105)): #0 0xffffe410 in __kernel_vsyscall () #1 0xb781d566 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #2 0xb7aa5b5d in pthread_cond_wait () from /lib/libc.so.6 #3 0xb7d3b0d9 in eq::base::MTQueue<eq::net::Command*>::pop (this=0x8051e40) at .././build/Linux/include/eq/base/mtQueue.h:122 #4 0xb7d3969b in eq::net::CommandQueue::pop (this=0x8051e34) at net/commandQueue.cpp:75 #5 0xb7d5b6c8 in eq::net::Node::_runCommandThread (this=0x8051d28) at net/node.cpp:836 #6 0xb7d6f6fd in eq::net::Node::CommandThread::run (this=0x8052f10) at net/node.h:579 #7 0xb7d2cf8a in eq::base::Thread::_runChild (this=0x8052f10) at base/thread.cpp:126 #8 0xb7d2d0cb in eq::base::Thread::runChild (arg=0x8052f10) at base/thread.cpp:99 #9 0xb7819192 in start_thread () from /lib/libpthread.so.0 #10 0xb7a9a02e in clone () from /lib/libc.so.6 Thread 2 (Thread 0xb66f0b90 (LWP 5106)): #0 0xffffe410 in __kernel_vsyscall () #1 0xb7a90817 in poll () from /lib/libc.so.6 #2 0xb7d412d8 in eq::net::ConnectionSet::select (this=0x8051dac, timeout=-1) at net/connectionSet.cpp:141 #3 0xb7d5d13f in eq::net::Node::_runReceiverThread (this=0x8051d28) at net/node.cpp:583 #4 0xb7d6f817 in eq::net::Node::ReceiverThread::run (this=0x8052640) at net/node.h:564 #5 0xb7d2cf8a in eq::base::Thread::_runChild (this=0x8052640) at base/thread.cpp:126 #6 0xb7d2d0cb in eq::base::Thread::runChild (arg=0x8052640) at base/thread.cpp:99 #7 0xb7819192 in start_thread () from /lib/libpthread.so.0 #8 0xb7a9a02e in clone () from /lib/libc.so.6 Thread 1 (Thread 0xb6f56b10 (LWP 5102)): #0 0xb781c794 in __pthread_mutex_unlock_usercnt () from /lib/libpthread.so.0 #1 0xb7aa5d66 in pthread_mutex_unlock () from /lib/libc.so.6 #2 0xb7d2b7a6 in eq::base::SpinLock::unset (this=0x804d47c) at base/spinLock.cpp:86 #3 0xb7d2d9c7 in ~ScopedMutex (this=0xbfddaa78) at .././build/Linux/include/eq/base/scopedMutex.h:36 #4 0xb7d3c0bb in eq::net::Connection::send (this=0x804d468, buffer=0xbfddab44, bytes=20, isLocked=false) at net/connection.cpp:278 #5 0xb7d34c72 in eq::net::Connection::send (this=0x804d468, pack...@0xbfddab44) at .././build/Linux/include/eq/net/connection.h:181 #6 0xb7d34cbe in eq::net::Node::send (this=0x8059350, pack...@0xbfddab44) at .././build/Linux/include/eq/net/node.h:292 #7 0xb7c7550b in eq::server::Server::_cmdReleaseConfig (this=0x8051d28, comma...@0xb5d00478) at server.cpp:287 #8 0xb7d35a03 in eq::net::CommandFunc<eq::net::Base>::operator() (this=0x8053768, comma...@0xb5d00478) at .././build/Linux/include/eq/net/commandFunc.h:31 #9 0xb7d3529e in eq::net::Base::invokeCommand (this=0x8051d28, comma...@0xb5d00478) at net/base.cpp:100 #10 0xb7c75961 in eq::server::Server::invokeCommand (this=0x8051d28, comma...@0xb5d00478) at server.cpp:121 #11 0xb7c755f5 in eq::server::Server::_handleCommands (this=0x8051d28) at server.cpp:135 #12 0xb7c75920 in eq::server::Server::run (this=0x8051d28) at server.cpp:79 #13 0x08048691 in main (argc=2, argv=0xbfddad34) at eqServer.cpp:47 ^done _______________________________________________ eq-dev mailing list [email protected] http://www.equalizergraphics.com/cgi-bin/mailman/listinfo/eq-dev http://www.equalizergraphics.com

