Asciimation "Death of Jar Jar" crashes Fizzilla

VERIFIED FIXED

Status

()

--
critical
VERIFIED FIXED
17 years ago
17 years ago

People

(Reporter: masri, Assigned: bnesse)

Tracking

({crash, topembed+})

Trunk
PowerPC
Mac OS X
crash, topembed+
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

(URL)

Attachments

(3 attachments)

(Reporter)

Description

17 years ago
Platform: PowerBook G3/300/192Mb/48Gb, MacOS X 10.1.3 + Security Update
Fizzilla Build: 2002040208
MRJ Plugin 1.0b2

Go to the following URL

http://www.asciimation.co.nz/

Let a bit of the animation play.

Click "The death of Jar Jar" below the animation.

Crash.

-----

Date/Time:  2002-04-07 10:27:22 -0700
OS Version: 10.1.3 (Build 5Q110)
Host:       localhost

Command:    Mozilla
PID:        9263

Exception:  EXC_BAD_INSTRUCTION (0x0002)
Code[0]:    0x00000002
Code[1]:    0x03c95230

Thread 0 Crashed:
 #0   0x03c95230 in 0x3c95230
 #1   0x02a9ba6c in nsPluginInstanceOwner::ShowStatus(wchar_t const *)
 #2   0x02a9b9a4 in nsPluginInstanceOwner::ShowStatus(char const *)
 #3   0x0251ac64 in nsPluginInstancePeerImpl::ShowStatus(char const *)
 #4   0x0254083c in SetStatusMessage::execute(void)
 #5   0x025406bc in TimedMessage::TimedMessageHandler(OpaqueEventLoopTimerRef *)
 #6   0x70196cd0 in __CFRunLoopDoTimer
 #7   0x7017c258 in __CFRunLoopRun
 #8   0x701b7100 in CFRunLoopRunSpecific
 #9   0x7017b8e0 in CFRunLoopRunInMode
 #10  0x7312d8f4 in RunEventLoopInModeUntilEventArrives
 #11  0x731c2bbc in RunEventLoopUntilEventArrives
 #12  0x731a1340 in GetNextEventMatchingMask
 #13  0x731ae408 in WNEInternal
 #14  0x731c5508 in WaitNextEvent
 #15  0x02285ba0 in nsMacMessagePump::GetEvent(EventRecord &)
 #16  0x02285a7c in nsMacMessagePump::DoMessagePump(void)
 #17  0x0228540c in nsAppShell::Run(void)
 #18  0x0223732c in nsAppShellService::Run(void)
 #19  0x004bbb14 in main1(int, char **, nsISupports *)
 #20  0x004bc55c in main

Thread 1:
 #0   0x7000497c in syscall
 #1   0x70557600 in BSD_waitevent
 #2   0x70554b80 in CarbonSelectThreadFunc
 #3   0x7002054c in _pthread_body

Thread 2:
 #0   0x7003f4c8 in semaphore_wait_signal_trap
 #1   0x7003f2c8 in _pthread_cond_wait
 #2   0x705593ec in CarbonOperationThreadFunc
 #3   0x7002054c in _pthread_body

Thread 3:
 #0   0x70044cf8 in semaphore_timedwait_signal_trap
 #1   0x70044cd8 in semaphore_timedwait_signal
 #2   0x70283ea4 in TSWaitOnConditionTimedRelative
 #3   0x7027d748 in TSWaitOnSemaphoreCommon
 #4   0x702c2078 in TimerThread
 #5   0x7002054c in _pthread_body

Thread 4:
 #0   0x7003f4c8 in semaphore_wait_signal_trap
 #1   0x7003f2c8 in _pthread_cond_wait
 #2   0x70250ab0 in TSWaitOnCondition
 #3   0x7027d730 in TSWaitOnSemaphoreCommon
 #4   0x70243d14 in AsyncFileThread
 #5   0x7002054c in _pthread_body

Thread 5:
 #0   0x7003f4c8 in semaphore_wait_signal_trap
 #1   0x7003f2c8 in _pthread_cond_wait
 #2   0x7055b884 in CarbonInetOperThreadFunc
 #3   0x7002054c in _pthread_body

Thread 6:
 #0   0x70000978 in mach_msg_overwrite_trap
 #1   0x70005a04 in mach_msg
 #2   0x76178580 in JNI_CreateJavaVM_Impl
 #3   0x761784fc in JNI_CreateJavaVM_Impl
 #4   0x761784a0 in JNI_CreateJavaVM_Impl
 #5   0x7002054c in _pthread_body

Thread 7:
 #0   0x70000978 in mach_msg_overwrite_trap
 #1   0x70005a04 in mach_msg
 #2   0x760c6ca0 in __floatdidf
 #3   0x760eb0a0 in JVM_Read
 #4   0x760f88d4 in JVM_MonitorNotifyAll
 #5   0x7618cea8 in restFP
 #6   0x761784a0 in JNI_CreateJavaVM_Impl
 #7   0x7002054c in _pthread_body

Thread 8:
 #0   0x70000978 in mach_msg_overwrite_trap
 #1   0x70005a04 in mach_msg
 #2   0x760c6c24 in __floatdidf
 #3   0x760e8aa0 in JVM_Read
 #4   0x7610ac88 in JVM_MonitorNotify
 #5   0x76100adc in JVM_MonitorWait
 #6   0x3e102668 in 0x3e102668
 #7   0x3e10068c in 0x3e10068c
 #8   0x3e10068c in 0x3e10068c
 #9   0x860d3cac in bad_cast virtual table
 #10  0x760df3f8 in JVM_GetCPMethodClassNameUTF
 #11  0x761061e4 in __ashrdi3
 #12  0x76134a20 in JVM_InternString
 #13  0x761673f0 in JVM_IsNaN
 #14  0x76162c1c in __builtin_new
 #15  0x76162c98 in __builtin_new
 #16  0x7615cd9c in JVM_GetInheritedAccessControlContext
 #17  0x761784a0 in JNI_CreateJavaVM_Impl
 #18  0x7002054c in _pthread_body

Thread 9:
 #0   0x70000978 in mach_msg_overwrite_trap
 #1   0x70005a04 in mach_msg
 #2   0x760c6c24 in __floatdidf
 #3   0x760e8aa0 in JVM_Read
 #4   0x7610ac88 in JVM_MonitorNotify
 #5   0x76100adc in JVM_MonitorWait
 #6   0x3e102668 in 0x3e102668
 #7   0x3e10068c in 0x3e10068c
 #8   0x3e1005cc in 0x3e1005cc
 #9   0x3e1005cc in 0x3e1005cc
 #10  0x860d3cac in bad_cast virtual table
 #11  0x760df3f8 in JVM_GetCPMethodClassNameUTF
 #12  0x761061e4 in __ashrdi3
 #13  0x76134a20 in JVM_InternString
 #14  0x761673f0 in JVM_IsNaN
 #15  0x76162c1c in __builtin_new
 #16  0x76162c98 in __builtin_new
 #17  0x7615cd9c in JVM_GetInheritedAccessControlContext
 #18  0x761784a0 in JNI_CreateJavaVM_Impl
 #19  0x7002054c in _pthread_body

Thread 10:
 #0   0x70000978 in mach_msg_overwrite_trap
 #1   0x70005a04 in mach_msg
 #2   0x760c6ca0 in __floatdidf
 #3   0x760ccc94 in __floatdidf
 #4   0x760d480c in JVM_GetMethodIxExceptionTableLength
 #5   0x761784a0 in JNI_CreateJavaVM_Impl
 #6   0x7002054c in _pthread_body

Thread 11:
 #0   0x70000978 in mach_msg_overwrite_trap
 #1   0x70005a04 in mach_msg
 #2   0x760eb104 in JVM_Read
 #3   0x76174b64 in JVM_GetSystemPackage
 #4   0x7618ecb4 in JVM_InitProperties
 #5   0x76162c98 in __builtin_new
 #6   0x7615cd9c in JVM_GetInheritedAccessControlContext
 #7   0x761784a0 in JNI_CreateJavaVM_Impl
 #8   0x7002054c in _pthread_body

Thread 12:
 #0   0x70000978 in mach_msg_overwrite_trap
 #1   0x70005a04 in mach_msg
 #2   0x760c6c24 in __floatdidf
 #3   0x760eb104 in JVM_Read
 #4   0x76120754 in JVM_GetMethodIxExceptionsCount
 #5   0x76114cb4 in JVM_GetClassLoader
 #6   0x7618f4f8 in JVM_InitProperties
 #7   0x76162c98 in __builtin_new
 #8   0x7615cd9c in JVM_GetInheritedAccessControlContext
 #9   0x761784a0 in JNI_CreateJavaVM_Impl
 #10  0x7002054c in _pthread_body

Thread 13:
 #0   0x70000978 in mach_msg_overwrite_trap
 #1   0x70005a04 in mach_msg
 #2   0x760c6c24 in __floatdidf
 #3   0x760e8aa0 in JVM_Read
 #4   0x7610ac88 in JVM_MonitorNotify
 #5   0x76100adc in JVM_MonitorWait
 #6   0x3e102668 in 0x3e102668
 #7   0x3e10068c in 0x3e10068c
 #8   0x3e10068c in 0x3e10068c
 #9   0x3e1005cc in 0x3e1005cc
 #10  0x3e1005cc in 0x3e1005cc
 #11  0x3e10068c in 0x3e10068c
 #12  0x3e10068c in 0x3e10068c
 #13  0x860d3cac in bad_cast virtual table
 #14  0x760df3f8 in JVM_GetCPMethodClassNameUTF
 #15  0x761061e4 in __ashrdi3
 #16  0x76134a20 in JVM_InternString
 #17  0x761673f0 in JVM_IsNaN
 #18  0x76162c1c in __builtin_new
 #19  0x76162c98 in __builtin_new
 #20  0x7615cd9c in JVM_GetInheritedAccessControlContext
 #21  0x761784a0 in JNI_CreateJavaVM_Impl
 #22  0x7002054c in _pthread_body

Thread 14:
 #0   0x70000978 in mach_msg_overwrite_trap
 #1   0x70005a04 in mach_msg
 #2   0x760c6c24 in __floatdidf
 #3   0x760e8aa0 in JVM_Read
 #4   0x7610ac88 in JVM_MonitorNotify
 #5   0x76100adc in JVM_MonitorWait
 #6   0x3e102668 in 0x3e102668
 #7   0x3e10068c in 0x3e10068c
 #8   0x3e10068c in 0x3e10068c
 #9   0x860d3cac in bad_cast virtual table
 #10  0x760df3f8 in JVM_GetCPMethodClassNameUTF
 #11  0x761061e4 in __ashrdi3
 #12  0x76134a20 in JVM_InternString
 #13  0x761673f0 in JVM_IsNaN
 #14  0x76162c1c in __builtin_new
 #15  0x76162c98 in __builtin_new
 #16  0x7615cd9c in JVM_GetInheritedAccessControlContext
 #17  0x761784a0 in JNI_CreateJavaVM_Impl
 #18  0x7002054c in _pthread_body

Thread 15:
 #0   0x70000978 in mach_msg_overwrite_trap
 #1   0x70005a04 in mach_msg
 #2   0x760c6c24 in __floatdidf
 #3   0x760e8aa0 in JVM_Read
 #4   0x7610ac88 in JVM_MonitorNotify
 #5   0x76100adc in JVM_MonitorWait
 #6   0x3e102668 in 0x3e102668
 #7   0x3e10068c in 0x3e10068c
 #8   0x3e10068c in 0x3e10068c
 #9   0x860d3cac in bad_cast virtual table
 #10  0x760df3f8 in JVM_GetCPMethodClassNameUTF
 #11  0x761061e4 in __ashrdi3
 #12  0x76134a20 in JVM_InternString
 #13  0x761673f0 in JVM_IsNaN
 #14  0x76162c1c in __builtin_new
 #15  0x76162c98 in __builtin_new
 #16  0x7615cd9c in JVM_GetInheritedAccessControlContext
 #17  0x761784a0 in JNI_CreateJavaVM_Impl
 #18  0x7002054c in _pthread_body

Thread 16:
 #0   0x70000978 in mach_msg_overwrite_trap
 #1   0x70005a04 in mach_msg
 #2   0x760c6c24 in __floatdidf
 #3   0x760e8aa0 in JVM_Read
 #4   0x7610ac88 in JVM_MonitorNotify
 #5   0x76100adc in JVM_MonitorWait
 #6   0x3e102668 in 0x3e102668
 #7   0x3e10068c in 0x3e10068c
 #8   0x3e10068c in 0x3e10068c
 #9   0x3e1005cc in 0x3e1005cc
 #10  0x860d3cac in bad_cast virtual table
 #11  0x760df3f8 in JVM_GetCPMethodClassNameUTF
 #12  0x761061e4 in __ashrdi3
 #13  0x76134a20 in JVM_InternString
 #14  0x761673f0 in JVM_IsNaN
 #15  0x76162c1c in __builtin_new
 #16  0x76162c98 in __builtin_new
 #17  0x7615cd9c in JVM_GetInheritedAccessControlContext
 #18  0x761784a0 in JNI_CreateJavaVM_Impl
 #19  0x7002054c in _pthread_body

Thread 17:
 #0   0x70000978 in mach_msg_overwrite_trap
 #1   0x70005a04 in mach_msg
 #2   0x760e8aa0 in JVM_Read
 #3   0x7610ac88 in JVM_MonitorNotify
 #4   0x76100adc in JVM_MonitorWait
 #5   0x3e102668 in 0x3e102668
 #6   0x3e10068c in 0x3e10068c
 #7   0x3e10068c in 0x3e10068c
 #8   0x3e1005cc in 0x3e1005cc
 #9   0x860d3cac in bad_cast virtual table
 #10  0x760df3f8 in JVM_GetCPMethodClassNameUTF
 #11  0x761061e4 in __ashrdi3
 #12  0x76134a20 in JVM_InternString
 #13  0x761673f0 in JVM_IsNaN
 #14  0x76162c1c in __builtin_new
 #15  0x76162c98 in __builtin_new
 #16  0x7615cd9c in JVM_GetInheritedAccessControlContext
 #17  0x761784a0 in JNI_CreateJavaVM_Impl
 #18  0x7002054c in _pthread_body

Thread 18:
 #0   0x70000978 in mach_msg_overwrite_trap
 #1   0x70005a04 in mach_msg
 #2   0x760c6c24 in __floatdidf
 #3   0x760e8aa0 in JVM_Read
 #4   0x7610ac88 in JVM_MonitorNotify
 #5   0x76100adc in JVM_MonitorWait
 #6   0x3e102668 in 0x3e102668
 #7   0x3e10068c in 0x3e10068c
 #8   0x3e10068c in 0x3e10068c
 #9   0x3e1005cc in 0x3e1005cc
 #10  0x3e1005cc in 0x3e1005cc
 #11  0x3e10068c in 0x3e10068c
 #12  0x3e10068c in 0x3e10068c
 #13  0x860d3cac in bad_cast virtual table
 #14  0x760df3f8 in JVM_GetCPMethodClassNameUTF
 #15  0x761061e4 in __ashrdi3
 #16  0x76134a20 in JVM_InternString
 #17  0x761673f0 in JVM_IsNaN
 #18  0x76162c1c in __builtin_new
 #19  0x76162c98 in __builtin_new
 #20  0x7615cd9c in JVM_GetInheritedAccessControlContext
 #21  0x761784a0 in JNI_CreateJavaVM_Impl
 #22  0x7002054c in _pthread_body

Thread 19:
 #0   0x70000978 in mach_msg_overwrite_trap
 #1   0x70005a04 in mach_msg
 #2   0x760c6c24 in __floatdidf
 #3   0x760e8aa0 in JVM_Read
 #4   0x7610ac88 in JVM_MonitorNotify
 #5   0x76100adc in JVM_MonitorWait
 #6   0x3e102668 in 0x3e102668
 #7   0x3e10068c in 0x3e10068c
 #8   0x3e10068c in 0x3e10068c
 #9   0x860d3cac in bad_cast virtual table
 #10  0x760df3f8 in JVM_GetCPMethodClassNameUTF
 #11  0x761061e4 in __ashrdi3
 #12  0x76134a20 in JVM_InternString
 #13  0x761673f0 in JVM_IsNaN
 #14  0x76162c1c in __builtin_new
 #15  0x76162c98 in __builtin_new
 #16  0x7615cd9c in JVM_GetInheritedAccessControlContext
 #17  0x761784a0 in JNI_CreateJavaVM_Impl
 #18  0x7002054c in _pthread_body

Thread 20:
 #0   0x70000978 in mach_msg_overwrite_trap
 #1   0x70005a04 in mach_msg
 #2   0x760c6c24 in __floatdidf
 #3   0x760e8aa0 in JVM_Read
 #4   0x7610ac88 in JVM_MonitorNotify
 #5   0x76100adc in JVM_MonitorWait
 #6   0x3e102668 in 0x3e102668
 #7   0x3e10068c in 0x3e10068c
 #8   0x3e10068c in 0x3e10068c
 #9   0x3e1005cc in 0x3e1005cc
 #10  0x3e10086c in 0x3e10086c
 #11  0x860d3cac in bad_cast virtual table
 #12  0x760df3f8 in JVM_GetCPMethodClassNameUTF
 #13  0x761061e4 in __ashrdi3
 #14  0x76134a20 in JVM_InternString
 #15  0x761673f0 in JVM_IsNaN
 #16  0x76162c1c in __builtin_new
 #17  0x76162c98 in __builtin_new
 #18  0x7615cd9c in JVM_GetInheritedAccessControlContext
 #19  0x761784a0 in JNI_CreateJavaVM_Impl
 #20  0x7002054c in _pthread_body

Thread 21:
 #0   0x70000978 in mach_msg_overwrite_trap
 #1   0x70005a04 in mach_msg
 #2   0x70026a2c in _pthread_become_available
 #3   0x70026724 in pthread_exit
 #4   0x70020550 in _pthread_body

Thread 22:
 #0   0x70000978 in mach_msg_overwrite_trap
 #1   0x70005a04 in mach_msg
 #2   0x760c6ca0 in __floatdidf
 #3   0x760ccbb0 in __floatdidf
 #4   0x7613a98c in JVM_Sleep
 #5   0x3e102668 in 0x3e102668
 #6   0x3e10068c in 0x3e10068c
 #7   0x3e10086c in 0x3e10086c
 #8   0x860d3cac in bad_cast virtual table
 #9   0x760df3f8 in JVM_GetCPMethodClassNameUTF
 #10  0x761061e4 in __ashrdi3
 #11  0x76134a20 in JVM_InternString
 #12  0x761673f0 in JVM_IsNaN
 #13  0x76162c1c in __builtin_new
 #14  0x76162c98 in __builtin_new
 #15  0x7615cd9c in JVM_GetInheritedAccessControlContext
 #16  0x761784a0 in JNI_CreateJavaVM_Impl
 #17  0x7002054c in _pthread_body

Thread 23:
 #0   0x70000978 in mach_msg_overwrite_trap
 #1   0x70005a04 in mach_msg
 #2   0x760c6ca0 in __floatdidf
 #3   0x760ccbb0 in __floatdidf
 #4   0x7613a98c in JVM_Sleep
 #5   0x3e102668 in 0x3e102668
 #6   0x3e10068c in 0x3e10068c
 #7   0x860d3cac in bad_cast virtual table
 #8   0x760df3f8 in JVM_GetCPMethodClassNameUTF
 #9   0x761061e4 in __ashrdi3
 #10  0x76134a20 in JVM_InternString
 #11  0x761673f0 in JVM_IsNaN
 #12  0x76162c1c in __builtin_new
 #13  0x76162c98 in __builtin_new
 #14  0x7615cd9c in JVM_GetInheritedAccessControlContext
 #15  0x761784a0 in JNI_CreateJavaVM_Impl
 #16  0x7002054c in _pthread_body

PPC Thread State:
  srr0: 0x03c95230 srr1: 0x0008f030                vrsave: 0x00000000
   xer: 0x00000004   lr: 0x02a9ba84  ctr: 0x03c95230   mq: 0x00000000
    r0: 0x03c95230   r1: 0xbfffe9c0   r2: 0x00000000   r3: 0x03c94fd0
    r4: 0xbfffea0c   r5: 0x80004005   r6: 0x00000000   r7: 0xbfffeae4
    r8: 0x0000006e   r9: 0x00000025  r10: 0x2053696d  r11: 0x6f6e204a
   r12: 0x03c9527c  r13: 0x00000000  r14: 0x00000000  r15: 0x00000000
   r16: 0x00000001  r17: 0x00000000  r18: 0x00000000  r19: 0x00000000
   r20: 0xbfffecb8  r21: 0x00000001  r22: 0x00000000  r23: 0x00000000
   r24: 0x00048750  r25: 0x03dbff80  r26: 0x0532c020  r27: 0x02c7c488
   r28: 0x02c7b9a0  r29: 0x02c7b398  r30: 0x03dbff80  r31: 0xbfffea9c

**********
(Reporter)

Updated

17 years ago
Depends on: 88870

Comment 1

17 years ago
Adam, please do NOT put crash logs in the bug comments.  Add them as
attachments.  And I believe the asciimation applets are problematic for other
browsers on OS X leading me to suspect there may be an issue with the JVM.

Comment 2

17 years ago
And you have the blocking/dependency logic backwards.  88870 is a tracking bug.
No longer depends on: 88870

Comment 3

17 years ago
Bugzilla wants a !@#$% comment just cause I changed owner:, cc: and blocks:
fields so here's a comment - phbbbbt!
Assignee: beppe → bnesse
Blocks: 88870
(Reporter)

Comment 4

17 years ago
OIC. I was never told to add crash logs as attachments before; np.

I didn't realize bug 88870 was tracking, and not implementation. (I thought this
bug wouldn't get fixed until 88870 was implemented. You're saying 88870 can't be
deemed complete until all Java crashers are fixed. Seems reverse of what I'd
expect, but whatever floats your boat.)

- Adam

Updated

17 years ago
Severity: normal → critical
Keywords: crash

Comment 5

17 years ago
With the stack trace from 24 threads and only one, the first, having crashed
putting the entire trace into the body of a bug makes for waaaaay too much text
to scroll through.  Attachments are much easier to deal with.

And 88870 is the generic "make Java work in Mozilla on Mac OS X" bug.  The
specifics of what needs to be done/fixed are logged as other bugs blocking it. 
When you think about how patches are attached for each specific problem it
should be clear that you would not want to be attaching them all to 88870.  It'd
get really messy.

BTW, for anyone not wanting to go near anything related to Jar Jar :-) -
clicking in the animating applet to fast forward will also (eventually) crash.
(Assignee)

Comment 6

17 years ago
Oddly enough, I spent a good part of Friday (the 5th) working on this. The crash 
is related to the TimedMessage class (which uses carbon events) and idle time 
being given to the system during event processing. All I have to go on so far is 
that the timed message structure doesn't always appear to be fully valid when it 
is called back.
(Assignee)

Comment 7

17 years ago
There seems to be some kind of a timing issue going on here. If I put the
following code into TimedMessageHandler(), it occasionally hits the Debugger case.

    TimedMessage* message = reinterpret_cast<TimedMessage*>(inUserData);
    if (inTimer == message->mTimerRef) {
        message->execute();
        delete message;
    } else {
        Debugger();
    }

Having stepped through this previously, I know this is because mTimerRef is
NULL. Oddly if the only breakpoint I have is in the Debugger() case, by the time
I actually look at the message, the value is valid and the same as the timer ref
passed it. This almost seems to imply that the callback is happening before
InstallEventLoopTimer returns the timer reference to the mTimerRef variable...
(Assignee)

Comment 8

17 years ago
Increasing the start delay to 1 when installing the timer in the EventLoop does
appear to fix the crash. However, it also introduces a noticable delay in the
status message display (which is mainly what the timed messages are being used
for in this case.) I'm going to try out some other ideas...

Comment 9

17 years ago
For what it's worth, I recieved the same crash when using this applet after
clicking on the picture with the paintbrush tool.

http://pbskids.org/jayjay/colr.paintbox.herky.html

Comment 10

17 years ago
Created attachment 79342 [details] [diff] [review]
Carbon Timer Patch, v1

With this patch, I can't get the applet to crash when I click to fast forward.
I changed 2 things:  1. Added custom operator new/delete to the TimedMessaged
class to use the system memory allocator (NewPtr/DisposePtr); 2. Call
RemoveEventLoopTimer before processing the timer to prevent reentering the
timer.

Comment 11

17 years ago
Great news Patrick - this should clear the way for a 1.0FC1 build of the plugin
this week.  Can we get r/sr?
(Assignee)

Comment 12

17 years ago
Comment on attachment 79342 [details] [diff] [review]
Carbon Timer Patch, v1

Seems to be the right answer. r=bnesse.
Attachment #79342 - Flags: review+

Comment 13

17 years ago
Comment on attachment 79342 [details] [diff] [review]
Carbon Timer Patch, v1

Add a comment about why you need to override new/delete (thread safety) and
sr=sfraser
Attachment #79342 - Flags: superreview+

Comment 14

17 years ago
giving this bug some keyword loving
Keywords: nsbeta1+, topembed+

Comment 15

17 years ago
Fix checked into trunk.

Comment 16

17 years ago
Marking fixed.
Status: NEW → RESOLVED
Last Resolved: 17 years ago
Resolution: --- → FIXED
(Reporter)

Comment 17

17 years ago
Platform: PowerBook G3/300/192Mb/48Gb, MacOS X 10.1.4
Fizzilla Build: 2002042508

I don't think this is fixed. I tried the following:

1) Went to this bug in Moz.

2) Clicked the link to the ASCIIMATION page.

3) Held the mouse button down on the animation to cause it to scroll fast.

4) Clicked "The death of Jar Jar".

5) Watched the animation.

6) Clicked back to go back to the Star Wars Asciimation page.

7) Clicked back to go back to the bug.

Crash.

Attached please find a new stack trace.

- Adam
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
(Reporter)

Comment 18

17 years ago
Created attachment 81007 [details]
New crash stack trace

Here please find a new stack trace that I got after Moz crashed.

Comment 19

17 years ago
are we any closer to a new approach?
(Assignee)

Comment 20

17 years ago
This doesn't have anything to do with our approach. I'm pretty certain it's an
entirely different problem. I know where it's crashing... I think I even have a
general idea why, but I can't pinpoint the specific culprit.

Basically the TimedMessage object is sending a status message after the plugin
teardown process has begun. The thing that I haven't been able to figure out is
that, even though a number of objects have been destroyed, the ones necessary
for displaying the message still *appear* to be valid. The crash actually occurs
here:
  2219   rv = mContext->GetContainer(getter_AddRefs(cont));
In a manner that seems to imply that the mContext's vtable has been trashed...

Comment 21

17 years ago
We need a way to cancel any outstanding timers if the plugin's context is torn
down. Essentially, keep a list of pending timers, and explicitly cancel them in
MRJContext::~MRJContext().
(Assignee)

Comment 22

17 years ago
Created attachment 82285 [details] [diff] [review]
Patch to fix crasher.

This patch (worked out with beard) fixes the crash. Patch is r=sdagley,
sr=beard.
(Assignee)

Comment 23

17 years ago
Fix checked in.
Status: REOPENED → RESOLVED
Last Resolved: 17 years ago17 years ago
Resolution: --- → FIXED

Comment 24

17 years ago
Comment on attachment 82285 [details] [diff] [review]
Patch to fix crasher.

sr=beard :)
Attachment #82285 - Flags: superreview+

Comment 25

17 years ago
Was this patch checked in on the branch? If so, can you please add the
fixed1.0.1 keyword?
(Assignee)

Comment 26

17 years ago
The plugin was fixed before it landed on the branch, so yes, if you use the
current plugin with a branch build, it is fixed on the branch.
Keywords: fixed1.0.1

Comment 27

17 years ago
oji qa->pmac
QA Contact: shrir → pmac

Comment 28

17 years ago
Fixed both on Mac os 10.1.5, netscape branch build (2002-07-29-05-1.0.0) and 
netscape trunk build (2002-07-29-08-TRUNK)
Status: RESOLVED → VERIFIED
Replacing fixed1.0.1 with verified1.0.1 for Patty, since she verified this using
the 2002-07-29-05-1.0.0 branch build already to do so.
Keywords: fixed1.0.1 → verified1.0.1
You need to log in before you can comment on or make changes to this bug.