Closed Bug 125156 Opened 23 years ago Closed 15 years ago

Segment violation in ProxyRelease when viewing Flash

Categories

(Core :: Networking, defect, P3)

Other
BeOS
defect

Tracking

()

RESOLVED WONTFIX

People

(Reporter: beos, Assigned: bugs)

References

Details

(Keywords: crash, helpwanted, qawanted)

When viewing a page with Flash under BeOS, the plugin loads, and the Flash starts to display, then mozilla crashes with a segment violation. In the destructor for nsRequestObserverProxy, ProxyRelease is called with a null mEventQ. segment violation occurred ProxyRelease(nsIEventQueue *, nsIRequestObserver *): ProxyRelease__FP13nsIEventQueueP18nsIRequestObserver: +0075 ece1edf1: * 308b movl (%eax), %esi Timer thread:sc frame retaddr fd381678 ece1f0a4 nsRequestObserverProxy::~nsRequestObserverProxy(void) + 00000088 fd38169c ece1f21d nsRequestObserverProxy::Release(void) + 000000a9 fd3816c0 ece33305 nsStreamListenerProxy::~nsStreamListenerProxy(void) + 00000069 fd3816dc ece339ad nsStreamListenerProxy::Release(void) + 000000a9 fd381700 eceacaa4 .LSM1493 + 00000034 fd381720 eceac685 .LSM1421 + 0000001d fd381768 ece722e7 nsHttpChannel::SetupTransaction(void) + 00000097 fd3817cc ece71a46 nsHttpChannel::Connect(int) + 000001a2 fd3817e8 ece798ee nsHttpChannel::AsyncOpen(nsIStreamListener *, nsISupports *) + 0000027e fd381834 ee89fef3 nsPluginHostImpl::NewPluginURLStream(nsString const &, nsIPluginInstance *, nsIPluginStreamListener *, char const *, int, unsigned int, char const *, unsigned int) + 00000d97 fd381a18 ee895de0 nsPluginHostImpl::GetURLWithHeaders(nsISupports *, char const *, char const *, nsIPluginStreamListener *, char const *, char const *, int, unsigned int, char const *) + 00000338 fd381b28 ee895a93 nsPluginHostImpl::GetURL(nsISupports *, char const *, char const *, nsIPluginStreamListener *, char const *, char const *, int) + 0000004f fd381b68 ee888a41 _geturl + 000001cd fd381bc0 ea3c5fa0 NPN_GetURL + 00000024 fd381bd8 ea3c4827 NativePlayerWnd::StreamGetURLNotify(char const *, char const *, void *) + 000003ff fd381e28 ea3f44e2 SPlayer::NetscapeDoURL(char *, char *, char *, LoadInfo *) + 00000312 fd381e68 ea3f47b8 SPlayer::LoadLayer(char *, int, char *, char *, int) + 0000029c fd381e98 ea3f4887 SPlayer::GetURL(char *, char *, char *, int) + 000000b7 fd381ec4 ea3f1d98 SPlayer::DoActions(void) + 00002468 fd382250 ea3f1fa6 SPlayer::DoPlay(int) + 0000014e fd382288 ea3c4e34 playtimer_thread(void *) + 00000074 fd3822a0 ec0851ed thread_start + 00000039 Timer thread:regs eax 00000000 ebp fd381678 cs 001b edx 8075bb48 esi 8059d178 ss 0023 ecx 00000000 edi ecf64bb0 ds 0023 ebx ed0316c0 esp fd381664 es 0023 fs 627b eflags 00010282 eip ece1edf1 trap_no 0000000e error_code 00000004 Timer thread:ps PID DEBUG NAME STATUS 4be9 mozilla-bin semaphore 4bec BApplication semaphore 4c05 moz-thread semaphore 4c06 moz-thread semaphore 4c07 moz-thread semaphore 4c26 w>Star Wars Galaxies - Official semaphore 4c2a moz-thread semaphore 4c2f w> semaphore 4c30 w> semaphore 4c40 curr Timer thread semaphore 4c41 Cursor thread semaphore 4c43 team 4682 debugtask semaphore
BTW, this is with cvs update as of 2/9/02
I just tried loading a local flash file, without a problem. This at least tells me that the plugin code is still working, and this is definitely a network bug. My internet connection is a little flaky right now (damn comcast), but when it gets back to normal, I'll try debugging this some more. I will also try the RealPlayer plugin, if I can find a sight with an old RealPlayer format file for viewing.
+qawanted - need BeOS help!
Keywords: qawanted
How do you setup plugins on BeOS? The BeOS flash package I downloaded from bebits has a 'plugin server' but that appears to only be used by netpositive.
I'm not at my BeBox at the moment, but you should be able to make a symlink to the executable from the plugins dir, possilby naming the link to "flashplugin.so" (in case the plugin loader is only looking for .so files, like under *nix. If the symlink does not work, you need to either copy the file, using tracker, or the copyattr command. The BeOS plugin loader requirest that the attributes for the file be in tact, and if you use the plain cp command from the cmd line, attributes are not copied with it. If you still have problems, send me an email, and I'll look at my system when I get home from work.
I just received word that this works with the latest nightly builds, now. So, I downloaded the nightly build, and sure enough, I was able to view flash! Marking Works for Me!
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → WORKSFORME
Status: RESOLVED → REOPENED
Depends on: 154267
Priority: -- → P3
Resolution: WORKSFORME → ---
Well, this is still happenning. Not all flash animations crash though. http://www.joecartoon.com works, but, the Flash animation at http://www.danger.com produced the following debug information and stack crawl: Document http://www.danger.com/hiptop_demo/flash.html loaded successfully For application/x-shockwave-flash found plugin /boot/apps/Macromedia Flash Player for BeOS/Flash Player LoadPlugin() /boot/apps/Macromedia Flash Player for BeOS/Flash Player returned 807259f0 WARNING: empty damage rect: update caller to avoid fcn call overhead, file nsFrame.cpp, line 2287 Document http://www.danger.com/hiptop_demo/load_movies.html loaded successfully For application/x-shockwave-flash found plugin /boot/apps/Macromedia Flash Player for BeOS/Flash Player LoadPlugin() /boot/apps/Macromedia Flash Player for BeOS/Flash Player returned 80726390 WARNING: empty damage rect: update caller to avoid fcn call overhead, file nsFrame.cpp, line 2287 --------------------------------------------------------------- !!!!! XPConnect wrapper thread use error... XPConnect WrappedNative is being accessed on multiple threads but the underlying native xpcom object does not have a nsIClassInfo with the 'THREADSAFE' flag set wrapper: [xpconnect wrapped nsIWebProgress @ 0x805f4d58] JS call stack... JavaScript stack is empty --------------------------------------------------------------- --------------------------------------------------------------- !!!!! XPConnect wrapper thread use error... XPConnect WrappedNative is being accessed on multiple threads but the underlying native xpcom object does not have a nsIClassInfo with the 'THREADSAFE' flag set wrapper: [object nsXPCComponents @ 0x8072b4a0] JS call stack... 0 [native frame] 1 anonymous(aWebProgress = [xpconnect wrapped nsIWebProgress @ 0x805f4d58], aRequest = [xpconnect wrapped nsIRequest @ 0x805eb008], aStateFlags = 65537, aStatus = 0) ["chrome://navigator/content/nsBrowserStatusHandler.js":216] nsIWebProgressListener = undefined nsIChannel = undefined ctype = undefined location = undefined msg = undefined kErrorBindingAborted = undefined kErrorNetTimeout = undefined elapsed = undefined this = [object Object] this.jsDefaultStatus = "" this.jsStatus = "" this.hideAboutBlank = false this.overLink = "" this.statusTimeoutInEffect = true this.status = "Sending request to www.danger.com..." this.finishedRequests = 4 this.totalRequests = 6 this.useRealProgressFlag = false this.startTime = 1025234839252 this.securityButton = [object XULElement @ 0x808d1fd8] this.isImage = [object XULElement @ 0x808e53c8] this.statusTextField = [object XULElement @ 0x808cf588] this.stopContext = [object XULElement @ 0x808e4f38] this.stopMenu = [object XULElement @ 0x808c8118] this.stopButton = [object XULElement @ 0x8079b1f8] this.statusMeter = [object XULElement @ 0x808d0110] this.throbberElement = [object XULElement @ 0x808bbf78] this.urlBar = [object XULElement @ 0x8079e310] this.defaultStatus = "Document: Done (0.528 secs)" 2 [native frame] --------------------------------------------------------------- --------------------------------------------------------------- !!!!! XPConnect wrapper thread use error... XPConnect WrappedNative is being accessed on multiple threads but the underlying native xpcom object does not have a nsIClassInfo with the 'THREADSAFE' flag set wrapper: [object nsXPCComponents_Interfaces @ 0x8075d798] JS call stack... 0 [native frame] 1 anonymous(aWebProgress = [xpconnect wrapped nsIWebProgress @ 0x805f4d58], aRequest = [xpconnect wrapped nsIRequest @ 0x805eb008], aStateFlags = 65537, aStatus = 0) ["chrome://navigator/content/nsBrowserStatusHandler.js":216] nsIWebProgressListener = undefined nsIChannel = undefined ctype = undefined location = undefined msg = undefined kErrorBindingAborted = undefined kErrorNetTimeout = undefined elapsed = undefined this = [object Object] this.jsDefaultStatus = "" this.jsStatus = "" this.hideAboutBlank = false this.overLink = "" this.statusTimeoutInEffect = true this.status = "Sending request to www.danger.com..." this.finishedRequests = 4 this.totalRequests = 6 this.useRealProgressFlag = false this.startTime = 1025234839252 this.securityButton = [object XULElement @ 0x808d1fd8] this.isImage = [object XULElement @ 0x808e53c8] this.statusTextField = [object XULElement @ 0x808cf588] this.stopContext = [object XULElement @ 0x808e4f38] this.stopMenu = [object XULElement @ 0x808c8118] this.stopButton = [object XULElement @ 0x8079b1f8] this.statusMeter = [object XULElement @ 0x808d0110] this.throbberElement = [object XULElement @ 0x808bbf78] this.urlBar = [object XULElement @ 0x8079e310] this.defaultStatus = "Document: Done (0.528 secs)" 2 [native frame] --------------------------------------------------------------- --------------------------------------------------------------- !!!!! XPConnect wrapper thread use error... XPConnect WrappedNative is being accessed on multiple threads but the underlying native xpcom object does not have a nsIClassInfo with the 'THREADSAFE' flag set wrapper: [object nsXPCComponents @ 0x8072b4a0] JS call stack... 0 [native frame] 1 anonymous(aWebProgress = [xpconnect wrapped nsIWebProgress @ 0x805f4d58], aRequest = [xpconnect wrapped nsIRequest @ 0x805eb008], aStateFlags = 65537, aStatus = 0) ["chrome://navigator/content/nsBrowserStatusHandler.js":217] nsIWebProgressListener = nsIWebProgressListener nsIChannel = undefined ctype = undefined location = undefined msg = undefined kErrorBindingAborted = undefined kErrorNetTimeout = undefined elapsed = undefined this = [object Object] this.jsDefaultStatus = "" this.jsStatus = "" this.hideAboutBlank = false this.overLink = "" this.statusTimeoutInEffect = true this.status = "Sending request to www.danger.com..." this.finishedRequests = 4 this.totalRequests = 6 this.useRealProgressFlag = false this.startTime = 1025234839252 this.securityButton = [object XULElement @ 0x808d1fd8] this.isImage = [object XULElement @ 0x808e53c8] this.statusTextField = [object XULElement @ 0x808cf588] this.stopContext = [object XULElement @ 0x808e4f38] this.stopMenu = [object XULElement @ 0x808c8118] this.stopButton = [object XULElement @ 0x8079b1f8] this.statusMeter = [object XULElement @ 0x808d0110] this.throbberElement = [object XULElement @ 0x808bbf78] this.urlBar = [object XULElement @ 0x8079e310] this.defaultStatus = "Document: Done (0.528 secs)" 2 [native frame] --------------------------------------------------------------- --------------------------------------------------------------- !!!!! XPConnect wrapper thread use error... XPConnect WrappedNative is being accessed on multiple threads but the underlying native xpcom object does not have a nsIClassInfo with the 'THREADSAFE' flag set wrapper: [object nsXPCComponents_Interfaces @ 0x8075d798] JS call stack... 0 [native frame] 1 anonymous(aWebProgress = [xpconnect wrapped nsIWebProgress @ 0x805f4d58], aRequest = [xpconnect wrapped nsIRequest @ 0x805eb008], aStateFlags = 65537, aStatus = 0) ["chrome://navigator/content/nsBrowserStatusHandler.js":217] nsIWebProgressListener = nsIWebProgressListener nsIChannel = undefined ctype = undefined location = undefined msg = undefined kErrorBindingAborted = undefined kErrorNetTimeout = undefined elapsed = undefined this = [object Object] this.jsDefaultStatus = "" this.jsStatus = "" this.hideAboutBlank = false this.overLink = "" this.statusTimeoutInEffect = true this.status = "Sending request to www.danger.com..." this.finishedRequests = 4 this.totalRequests = 6 this.useRealProgressFlag = false this.startTime = 1025234839252 this.securityButton = [object XULElement @ 0x808d1fd8] this.isImage = [object XULElement @ 0x808e53c8] this.statusTextField = [object XULElement @ 0x808cf588] this.stopContext = [object XULElement @ 0x808e4f38] this.stopMenu = [object XULElement @ 0x808c8118] this.stopButton = [object XULElement @ 0x8079b1f8] this.statusMeter = [object XULElement @ 0x808d0110] this.throbberElement = [object XULElement @ 0x808bbf78] this.urlBar = [object XULElement @ 0x8079e310] this.defaultStatus = "Document: Done (0.528 secs)" 2 [native frame] --------------------------------------------------------------- Stack Crawl: loading symbols segment violation occurred ProxyRelease(nsIEventQueue *, nsIRequestObserver *): ProxyRelease__FP13nsIEventQueueP18nsIRequestObserver: +0075 ed10ab61: * 308b movl (%eax), %esi Timer thread:sc frame retaddr fd3014f4 ed10ae14 nsRequestObserverProxy::~nsRequestObserverProxy(void) + 00000088 fd301518 ed10af8d nsRequestObserverProxy::Release(void) + 000000a9 fd30153c ed122d05 nsStreamListenerProxy::~nsStreamListenerProxy(void) + 00000069 fd301558 ed1233ad nsStreamListenerProxy::Release(void) + 000000a9 fd30157c ed1a1b64 .LSM1586 + 00000034 fd30159c ed1a1745 .LSM1514 + 0000001d fd3015e4 ed164618 nsHttpChannel::SetupTransaction(void) + 00000098 fd301764 ed163d76 nsHttpChannel::Connect(int) + 0000019a fd301780 ed16da8c nsHttpChannel::AsyncOpen(nsIStreamListener *, nsISupports *) + 000002e8 fd3017cc ee8bafe5 nsPluginHostImpl::NewPluginURLStream(nsString const &, nsIPluginInstance *, nsIPluginStreamListener *, char const *, int, unsigned int, char const *, unsigned int) + 00000f19 fd3019d4 ee8afff0 nsPluginHostImpl::GetURLWithHeaders(nsISupports *, char const *, char const *, nsIPluginStreamListener *, char const *, char const *, int, unsigned int, char const *) + 00000338 fd301ae4 ee8afca3 nsPluginHostImpl::GetURL(nsISupports *, char const *, char const *, nsIPluginStreamListener *, char const *, char const *, int) + 0000004f fd301b24 ee8a2a91 MakeNew4xStreamInternal(_NPP *, char const *, char const *, eNPPStreamTypeInternal, int, void *, unsigned long, char const *, unsigned char) + 000001a5 fd301b90 ee8a2bd9 _geturl + 0000002d fd301bc0 ea513fb0 NPN_GetURL + 00000024 fd301bd8 ea512837 NativePlayerWnd::StreamGetURLNotify(char const *, char const *, void *) + 000003ff fd301e28 ea5424f2 SPlayer::NetscapeDoURL(char *, char *, char *, LoadInfo *) + 00000312 fd301e68 ea5427c8 SPlayer::LoadLayer(char *, int, char *, char *, int) + 0000029c fd301e98 ea542897 SPlayer::GetURL(char *, char *, char *, int) + 000000b7 fd301ec4 ea53fda8 SPlayer::DoActions(void) + 00002468 fd302250 ea53ffb6 SPlayer::DoPlay(int) + 0000014e fd302288 ea512e44 playtimer_thread(void *) + 00000074 fd3022a0 ec0851ed thread_start + 00000039
Is this the right component?
well, the crash is from a plugin, but is occurring in the network kit. my guess would be that this is a network issue, as the plugin works in some instances, though, I could be wrong.
The same crash results can be obtained from this site. http://www.homestarrunner.com/sbemail.html Mozilla 1.1a+ Mozilla/5.0 (BeOS; U; BeOS BePC; en-US; rv:1.1a+) Gecko/20020622
Note: The flash animations at http://www.danger.com and http://www.eye4u.com both work in with the same plugin in the BeOS Opera browser, but crash, as stated above in Mozilla.
is there anyone in the BeOS community that would want to take this?
Keywords: crash, helpwanted
I'm wondering if problem is related to bug http://bugzilla.mozilla.org/show_bug.cgi?id=154267
hm, maybe i'm so lame, but i didn't found nsStreamListenerProxy::Release method using LXR or in my local source tree Or maybe i missed some chnages in necko?
Crash happens in netwerk/base/src/nsRequestObserverProxy.cpp static void ProxyRelease(nsIEventQueue *eventQ, nsIRequestObserver *obs) after PL_InitEvent(ev, (void *) obs, ProxyRelease_EventHandlerFunc, ProxyRelease_EventCleanupFunc); when attempting to post event with: PRStatus rv = eventQ->PostEvent(ev); Maybe wrong thread?
Ok. Get rid of crashes with changing mentioned above ProxyRelease function: ProxyRelease(nsIEventQueue *eventQ, nsIRequestObserver *obs) { PLEvent *ev = new PLEvent; if (!ev) { NS_ERROR("failed to allocate PLEvent"); return; } PL_InitEvent(ev, (void *) obs, ProxyRelease_EventHandlerFunc, ProxyRelease_EventCleanupFunc); + if ((eventQ != NS_CURRENT_EVENTQ) || (eventQ != NS_UI_THREAD_EVENTQ)) + return; PRStatus rv = eventQ->PostEvent(ev); NS_ASSERTION(rv == PR_SUCCESS, "PostEvent failed"); } now need help and verification of necko and or xpcom gurus. So maybe reassignment is needed
I don't know the code in question well, so take this advice with a grain of salt. I suspect the fix you propose may be fixing the symptom without fixing the real problem. It may be that what's necessary is to use NS_IMPL_THREADSAFE_ISUPPORTS on whatever object XPConnect is complaining about. But you still need to be sure that the object in question is always called in a threadsafe manager. Perhaps Darin can provide a bit more insight...
Little side notice. I have feeling (need more URLs to test) that crashes apper in case if site tries to run *.swf in new separate window, opened by JS. And sure, all windows in BeOS apps belongs to different threads.
Previous hypothesis was unconfirmed, but it appears that if(eventQ != NS_UI_THREAD_EVENTQ) return; is sufficient to prevent crashes. Though, i recall that BeOS port uses in some places nsSwitchToUIThread for safety purposes. Maybe just BeOS plugin handler implementation lacks it.
also (as arougthopher that eventQ is null when destructor calls ProxyReleas) this addition to destructor provided also good result: nsRequestObserverProxy::~nsRequestObserverProxy() { if (mObserver && mEventQ) { // order is crucial here... we must be careful to clear mObserver // before posting the proxy release event. otherwise, we'd risk // releasing the object on this thread. nsIRequestObserver *obs = mObserver; NS_ADDREF(obs); mObserver = 0; ProxyRelease(mEventQ, obs); } } ---------------------------------- mEventQ test added in if()
*** Bug 167620 has been marked as a duplicate of this bug. ***
arougthopher, we think that this is a BEOS only problem. I have no way to reproduce this. Let me know if there is anything I can do to help.
Assignee: new-network-bugs → arougthopher
Status: REOPENED → NEW
Doug, I don't visit many Flash sites, so I have not seen this in a while. I will try to reproduce again, just to make sure that is has not been "accidentally" fixed :) I will post more information as tonight. Would the NSPR logging help as well? If so, are there any particular modules you want me to monitor, or just all:5?
A little more information: I have the patch for Bug#92793 applied to my build. For this reason, I now have thread safety checking turned on by default for debug builds (w/o the above patch, there are TOO many warnings about "thread-safetyness", that I had it turned off) When viewing the url: http://www.eye4u.com The first flash animation works, click on the "Enter Site" link, and the next flash causes a bunch of assertions to be thrown. I get the following assertions: Document http://www.eye4u.com/home/ loaded successfully ###!!! ASSERTION: nsPluginHostImpl not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsPluginHostImpl not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsPluginHostImpl not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: ns4xPluginInstance not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: ns4xPluginInstance not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsPluginInstancePeerImpl not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsPluginInstancePeerImpl not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsPluginInstancePeerImpl not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsPluginInstancePeerImpl not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsPluginInstanceOwner not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsPluginInstanceOwner not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsPluginInstanceOwner not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: PresShell not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: PresShell not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: PresShell not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsDocument not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: PresShell not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsDocument not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsDocument not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsStandardURL not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsStandardURL not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsStandardURL not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsStandardURL not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsPluginInstanceOwner not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsPluginInstancePeerImpl not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: ns4xPluginInstance not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: ns4xPluginInstance not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: GlobalWindowImpl not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: GlobalWindowImpl not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: GlobalWindowImpl not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: GlobalWindowImpl not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsURILoader not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsURILoader not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsURILoader not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsURILoader not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsURILoader not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsURILoader not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsURILoader not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsURILoader not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsCookieHTTPNotify not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsCookieHTTPNotify not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsCookieHTTPNotify not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsCookieHTTPNotify not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsCookieHTTPNotify not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsCookieHTTPNotify not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsCookieHTTPNotify not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsStandardURL not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsStandardURL not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsStandardURL not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsStandardURL not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsStandardURL not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsStandardURL not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsStandardURL not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsStandardURL not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsCacheSession not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsCacheSession not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsCacheSession not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 ###!!! ASSERTION: nsCacheSession not thread-safe: 'owningThread == NS_CurrentThread()', file nsDebug.cpp, line 533 Break: at file nsDebug.cpp, line 533 This go's along with the error message from a previous post I made: --------------------------------------------------------------- !!!!! XPConnect wrapper thread use error... XPConnect WrappedNative is being accessed on multiple threads but the underlying native xpcom object does not have a nsIClassInfo with the 'THREADSAFE' flag set wrapper: [object nsXPCComponents_Interfaces @ 0x8075d798] JS call stack... So, it seems that either Mozilla is starting multiple threads for FlashPlugin (if it tries to make a network connection) or, the Flash Plugin is starting multiple threads, and calling into mozilla from each of them. I will try to contact the Flash Player developers, to see if they can assist as well. Also, I will try modifying some of the code to make it use atomic reference counting, like the patch I mentioned, and see if that helps.
Status: NEW → ASSIGNED
By the definitions on <http://bugzilla.mozilla.org/bug_status.html#severity> and <http://bugzilla.mozilla.org/enter_bug.cgi?format=guided>, crashing and dataloss bugs are of critical or possibly higher severity. Only changing open bugs to minimize unnecessary spam. Keywords to trigger this would be crash, topcrash, topcrash+, zt4newcrash, dataloss.
Severity: normal → critical
http://www.eye4u.com loading symbols segment violation occurred nsHttpTransaction::OnTransportStatus(unsigned int, unsigned int): OnTransportStatus__17nsHttpTransactionUiUi: +00e5 eebd61f5: * 088b movl (%eax), %ecx moz-thread:sc frame retaddr fd0b3ad4 eebcfb36 nsHttpConnection::OnTransportStatus(nsITransport *, unsigned int, unsigned int, unsigned int) + 00000032 fd0b3aec eeba53b4 nsSocketTransport::SendStatus(unsigned int) + 000000a4 fd0b3b24 eeba5c12 nsSocketTransport::InitiateSocket(void) + 000000d2 fd0b3ba4 eeba6101 nsSocketTransport::OnSocketEvent(unsigned int, unsigned int, void *) + 000000c1 fd0b3bbc eeba740c nsSocketTransportService::ServiceEventQ(void) + 0000007c fd0b3bf0 eeba7c17 nsSocketTransportService::Run(void) + 00000207 fd0b3c14 ee947b60 nsThread::Main(void *) + 00000038 fd0b3c2c ee8b35f8 #File libnspr4.so text + 000235f8 fd0b3c3c ec05032c thread_start + 00000038 moz-thread:
notice - on http://www.eye4u.com it crashes not immediately but about 30 sec from start. and crashes again on event delete or so: nsHttpTransaction::OnTransportStatus(nsresult status, PRUint32 progress) { ***** if (postEvent) { PLEvent *ev = new PLEvent; NS_ADDREF_THIS(); PL_InitEvent(ev, this, TransportStatus_Handler, TransportStatus_Cleanup); if (mConsumerEventQ->PostEvent(ev) != PR_SUCCESS) { NS_RELEASE_THIS(); delete ev; } }
*** Bug 207785 has been marked as a duplicate of this bug. ***
I doubt that we can do anything on BeOS-port side, it seems that bug may be called "libnecko isn't thread-safe"
I wonder, if we could create a "proxy" between the threads, similar to what we do with the nsAppShell and nsToolkit. I was planning on looking into this at some point as well, but, I just have not had the time, and is lower on my priority list than some other issues.
nsHttpChannel::AsyncOpen can only be called on the main gecko thread. any calls like this that enter necko need to happen from the main gecko thread only.
Ok, those two changes prevent crashes as i said, i use those almost year in my builds, but dunno if it can cause leaks, and also unsure if there are other similar places where check for object existance is missing: ---------------------- nsRequestObserverProxy.cpp: nsRequestObserverProxy::~nsRequestObserverProxy() { if (mObserver && mEventQ) { //checking for mEvent, missing in original source - fyysik ----------------------- nsHttpTransaction.cpp : nsHttpTransaction::OnTransportStatus(nsresult status, PRUint32 progress) { <SKIPPED> 305: if (postEvent && mConsumerEventQ) { //fyysik - testing for mConsumerEvent PLEvent *ev = new PLEvent; NS_ADDREF_THIS(); PL_InitEvent(ev, this, TransportStatus_Handler, TransportStatus_Cleanup); if (mConsumerEventQ->PostEvent(ev) != PR_SUCCESS && ev) { NS_RELEASE_THIS(); delete ev; } } }
Summary: Segment violadion in ProxyRelease when viewing flash → Segment violation in ProxyRelease when viewing Flash
QA Contact: benc → nobody
Sergei, do you still see this? bug reporter is gone.
(In reply to comment #33) > Sergei, do you still see this? bug reporter is gone. Dunno. As Flash-plugin in consideration is too old, nothing to watch with that.
(In reply to comment #34) > (In reply to comment #33) > > Sergei, do you still see this? bug reporter is gone. > > Dunno. As Flash-plugin in consideration is too old, nothing to watch with that. true. is there still something worth fixing?
Assignee: beos → nobody
Status: ASSIGNED → NEW
QA Contact: nobody → networking
Flash Player is not supported on BeOS. Marking this bug as such.
Status: NEW → RESOLVED
Closed: 23 years ago15 years ago
Resolution: --- → WONTFIX
Assignee: nobody → jet
You need to log in before you can comment on or make changes to this bug.