Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#4651 closed defect (fixed)

UPnP mutex crash

Reported by: Nigel Owned by: dblain
Priority: minor Milestone: unknown
Component: upnp Version: head
Severity: medium Keywords:
Cc: Ticket locked: no

Description

While OS X mythfrontend is waiting in a database schema popup:

Date/Time:      2008-02-13 16:14:11.820 +1100
OS Version:     10.4.11 (Build 8S2167)
Report Version: 4

Command: MythFrontend
Path:    MythFrontend.app/Contents/MacOS/MythFrontend
Parent:  sh [23541]

Version: 1.0 (1.0)

PID:    28060
Thread: 2

Exception:  EXC_BAD_ACCESS (0x0001)
Codes:      KERN_PROTECTION_FAILURE (0x0002) at 0x00000007

Thread 0:
0   libSystem.B.dylib            	0x90009cd7 mach_msg_trap + 7
1   com.apple.CoreFoundation     	0x9082d23b CFRunLoopRunSpecific + 2014
2   com.apple.CoreFoundation     	0x9082ca56 CFRunLoopRunInMode + 61
3   qt-mt                        	0xb202b0df QEventLoop::processEvents(unsigned) + 607
4   qt-mt                        	0xb204795b QEventLoop::enterLoop() + 67
5   myth                         	0xc607b331 MythDialog::exec() + 139 (mythdialogs.cpp:192)
6   myth                         	0xc6083988 MythPopupBox::ExecPopup(QObject*, char const*) + 84 (mythdialogs.cpp:554)
7   myth                         	0xc6086445 MythPopupBox::ShowButtonPopup(MythMainWindow*, QString const&, QString const&, QStringList const&, DialogCode) + 521 (mythdialogs.cpp:762)
8   myth                         	0xc606c3df MythContext::PromptForSchemaUpgrade(QString const&, QString const&, QString const&) + 4783 (mythcontext.cpp:3614)
9   mythtv                       	0xc9079c32 UpgradeTVDatabaseSchema() + 2466

Thread 1:
0   libSystem.B.dylib            	0x90047dd7 semaphore_timedwait_signal_trap + 7
1   qt-mt                        	0xb22a98a4 QWaitCondition::wait(QMutex*, unsigned long) + 242
2   mythupnp                     	0x0243ea09 CEvent::WaitForEvent(unsigned long) + 85 (threadpool.cpp:96)
3   mythupnp                     	0x0244044f WorkerThread::run() + 181 (threadpool.cpp:202)
4   qt-mt                        	0xb203110f QThreadInstance::start(void*) + 111
5   libSystem.B.dylib            	0x90024227 _pthread_body + 84

Thread 2 Crashed:
0   qt-mt                        	0xb22a86a9 QMutex::lock() + 9
1   mythupnp                     	0x02475bb4 RefCounted::AddRef() + 20 (refcounted.h:50)
2   mythupnp                     	0x024688ab SSDPCacheEntries::RemoveStale(timeval const&) + 99 (ssdpcache.cpp:160)
3   mythupnp                     	0x02468a87 SSDPCache::RemoveStale() + 135 (ssdpcache.cpp:395)
4   mythupnp                     	0x024755ab SSDPCacheTask::Execute(TaskQueue*) + 45 (upnptaskcache.h:53)
5   mythupnp                     	0x02434487 TaskQueue::run() + 109 (taskqueue.cpp:104)
6   qt-mt                        	0xb203110f QThreadInstance::start(void*) + 111
7   libSystem.B.dylib            	0x90024227 _pthread_body + 84

Thread 3:
0   libSystem.B.dylib            	0x9001a1cc select + 12
1   qt-mt                        	0xb203110f QThreadInstance::start(void*) + 111
2   libSystem.B.dylib            	0x90024227 _pthread_body + 84

Thread 4:
0   libSystem.B.dylib            	0x90009cd7 mach_msg_trap + 7
1   com.apple.CoreFoundation     	0x9082d23b CFRunLoopRunSpecific + 2014
2   com.apple.CoreFoundation     	0x9083e118 CFRunLoopRun + 60
3   mythui                       	0x029f9afb SpawnAppleRemote(void*) + 159 (mythmainwindow.cpp:97)
4   libSystem.B.dylib            	0x90024227 _pthread_body + 84

Thread 5:
0   libSystem.B.dylib            	0x900248c7 semaphore_wait_signal_trap + 7
1   qt-mt                        	0xb22a98be QWaitCondition::wait(QMutex*, unsigned long) + 268
2   myth                         	0xc604fbf6 MythContext::waitPrivRequest() const + 70 (mythcontext.cpp:3892)
3   org.osx-bundler.MythFrontend 	0x0000b190 run_priv_thread(void*) + 756 (main.cpp:857)
4   libSystem.B.dylib            	0x90024227 _pthread_body + 84

Suspect something not threadsafe in UPnP

Change History (3)

comment:1 Changed 12 years ago by anonymous

Added some debug in SSDPCacheEntries::RemoveStale?() to print pEntry and its m_sURI:

RemoveStale() - locking
2008-02-25 17:43:26.855 RemoveStale() - looking at 62820816  - upnp:rootdevice
RemoveStale() - Back from AddRef()
is not stale
2008-02-25 17:43:26.855 RemoveStale() - looking at 64153248  - upnp:rootdevice
RemoveStale() - Back from AddRef()
is not stale
RemoveStale() - locking
2008-02-25 17:43:26.855 RemoveStale() - looking at 64263072  - urn:microsoft.com:service:X_MS_MediaReceiverRegistrar:1
RemoveStale() - Back from AddRef()
is not stale
RemoveStale() - locking
2008-02-25 17:43:26.855 RemoveStale() - looking at 64075984  - urn:schemas
RemoveStale() - Back from AddRef()
is not stale
2008-02-25 17:43:26.855 RemoveStale() - looking at 64076752  - urn:schemas
RemoveStale() - Back from AddRef()
is not stale
RemoveStale() - locking
2008-02-25 17:43:26.855 RemoveStale() - looking at 62831856  - thistle3
./feBuildRun.sh: line 7: 15012 Bus error               MythFrontend.app/Contents/MacOS/MythFrontend -v none,upnp,network

It appears to be an offending cache entry. Am about to snoop all the network traffic to see what I am getting.

comment:2 Changed 12 years ago by Nigel

Resolution: fixed
Status: newclosed

(In [16444]) RefCounted? bug in BackendSelect::FillListBox?() discovered by Paul Harrison. Closes #4651, #4816 and #4873 (I hope).

comment:3 Changed 12 years ago by Nigel

(In [16445]) RefCounted? bug in BackendSelect::FillListBox?() discovered by Paul Harrison. Closes #4651, #4816 and #4873 (I hope).

Note: See TracTickets for help on using tickets.