Closed Bug 1281991 Opened 8 years ago Closed 8 years ago

Clean up WebGLSync objects before WebGL context lost

Categories

(Core :: Graphics: CanvasWebGL, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla50
Tracking Status
firefox50 --- fixed

People

(Reporter: pchang, Assigned: pchang)

References

Details

Attachments

(1 file)

Call stack from [1] 02:59:22 INFO - Crash reason: EXCEPTION_BREAKPOINT 02:59:22 INFO - Crash address: 0x5f38ff18 02:59:22 INFO - Process uptime: 238 seconds 02:59:22 INFO - Thread 0 (crashed) 02:59:22 INFO - 0 xul.dll!mozilla::LinkedListElement<mozilla::WebGLSync>::remove() [LinkedList.h:e033cdd691ea : 206 + 0x2b] 02:59:22 INFO - eip = 0x5f38ff18 esp = 0x001ff5d8 ebp = 0x001ff5f4 ebx = 0x001ff634 02:59:22 INFO - esi = 0x000000ce edi = 0x15e86800 eax = 0x612bffb0 ecx = 0x6902705d 02:59:22 INFO - edx = 0x771470b4 efl = 0x00200206 02:59:22 INFO - Found by: given as instruction pointer in context 02:59:22 INFO - 1 xul.dll!mozilla::WebGLRefCountedObject<mozilla::WebGLSync>::DeleteOnce() [WebGLObjectModel.h:e033cdd691ea : 142 + 0x8] 02:59:22 INFO - eip = 0x5f3333ab esp = 0x001ff5e0 ebp = 0x001ff5f4 02:59:22 INFO - Found by: call frame info 02:59:22 INFO - 2 xul.dll!mozilla::WebGLSync::~WebGLSync() [WebGLSync.cpp:e033cdd691ea : 22 + 0xe] 02:59:22 INFO - eip = 0x5f381530 esp = 0x001ff5e8 ebp = 0x001ff5f4 02:59:22 INFO - Found by: call frame info 02:59:22 INFO - 3 xul.dll!mozilla::WebGLSync::cycleCollection::DeleteCycleCollectable(void *) [WebGLSync.h:e033cdd691ea : 32 + 0x11] 02:59:22 INFO - eip = 0x5f3848a6 esp = 0x001ff5f4 ebp = 0x001ff5f4 02:59:22 INFO - Found by: call frame info 02:59:22 INFO - 4 xul.dll!SnowWhiteKiller::~SnowWhiteKiller() [nsCycleCollector.cpp:e033cdd691ea : 2685 + 0xb] 02:59:22 INFO - eip = 0x5dc7645f esp = 0x001ff5fc ebp = 0x001ff618 02:59:22 INFO - Found by: call frame info 02:59:22 INFO - 5 xul.dll!nsCycleCollector::FreeSnowWhite(bool) [nsCycleCollector.cpp:e033cdd691ea : 2859 + 0xa] 02:59:22 INFO - eip = 0x5dc7c897 esp = 0x001ff620 ebp = 0x001ff64c 02:59:22 INFO - Found by: call frame info 02:59:22 INFO - 6 xul.dll!nsCycleCollector_doDeferredDeletion() [nsCycleCollector.cpp:e033cdd691ea : 4137 + 0xf] 02:59:22 INFO - eip = 0x5dc87208 esp = 0x001ff654 ebp = 0x001ff6b0 02:59:22 INFO - Found by: call frame info 02:59:22 INFO - 7 xul.dll!AsyncFreeSnowWhite::Run() [XPCJSRuntime.cpp:e033cdd691ea : 142 + 0x5] 02:59:22 INFO - eip = 0x5e4e7729 esp = 0x001ff660 ebp = 0x001ff6b0 02:59:22 INFO - Found by: call frame info [1]http://archive.mozilla.org/pub/firefox/try-builds/pchang@mozilla.com-e033cdd691eaf0bfb5edde67ddf771dd6461db81/try-win32-debug/try_win7_ix-debug_test-mochitest-gl-bm119-tests1-windows-build300.txt.gz
Assignee: nobody → howareyou322
Blocks: webgl-104-ci
Comment on attachment 8764808 [details] Bug 1281991 - Clean up WebGLSync objects before WebGL context lost, https://reviewboard.mozilla.org/r/60494/#review57752 ::: dom/canvas/WebGLSync.cpp:32 (Diff revision 1) > WebGLSync::Delete() > { > mContext->MakeContextCurrent(); > mContext->gl->fDeleteSync(mGLName); > mGLName = 0; > - LinkedListElement<WebGLSync>::remove(); > + LinkedListElement<WebGLSync>::removeFrom(mContext->mSyncs); Just `remove()` is fine.
Attachment #8764808 - Flags: review?(jgilbert) → review+
https://reviewboard.mozilla.org/r/60494/#review57774 ::: dom/canvas/WebGLSync.cpp:32 (Diff revision 1) > WebGLSync::Delete() > { > mContext->MakeContextCurrent(); > mContext->gl->fDeleteSync(mGLName); > mGLName = 0; > - LinkedListElement<WebGLSync>::remove(); > + LinkedListElement<WebGLSync>::removeFrom(mContext->mSyncs); Agree but calling with "mContent->mSyncs" consistents with the "insertBack" call in constructor.
Pushed by pchang@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/5fad1dc89df8 Clean up WebGLSync objects before WebGL context lost, r=jgilbert
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla50
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: