Y.A.L.C.B.

Yet Another Linux Crash Bug:

[code][Thread 0xb3d02b70 (LWP 27437) exited]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb2affb70 (LWP 27439)]
0x08053f6a in CString::text (this=0x45d) at …/…/server/include/CString.h:216
216 return buffer;
(gdb) bt
#0 0x08053f6a in CString::text (this=0x45d) at …/…/server/include/CString.h:216
#1 0x080548e4 in CUPNP::discover (this=0x8b9ad94) at …/…/server/src/CUPNP.cpp:54
#2 0x080a2b47 in CUPNP::operator() (this=0x8b9ad94) at …/…/server/include/CUPNP.h:23
#3 0x080a9473 in boost::detail::thread_data<boost::reference_wrapper >::run (this=0x8dd1788) at /usr/include/boost/thread/detail/thread.hpp:81
#4 0xb7fd00d5 in thread_proxy () from /usr/lib/libboost_thread.so.1.42.0
#5 0xb7d32955 in start_thread () from /lib/i686/cmov/libpthread.so.0
#6 0xb7e1210e in clone () from /lib/i686/cmov/libc.so.6[/code]

Onos. Linux doesn’t like the UPNP!

Okay, I think the issue was that a server was failing to initialize properly and being deleted. The UPnP thread hadn’t finished yet so it tried to reference a deleted server, which caused the crash. I added some code to hold up the server deletion until the UPnP thread finishes.