Closed
Bug 1274769
Opened 8 years ago
Closed 8 years ago
Intermittent crash test_webglcontextcreationerror.html | application crashed [@ mozilla::WebGLContext::MakeContextCurrent]
Categories
(Core :: Graphics: CanvasWebGL, defect)
Core
Graphics: CanvasWebGL
Tracking
()
RESOLVED
FIXED
mozilla49
Tracking | Status | |
---|---|---|
firefox49 | --- | fixed |
People
(Reporter: aryx, Assigned: jerry)
References
Details
(Keywords: crash, intermittent-failure)
Crash Data
Attachments
(1 file, 1 obsolete file)
2.92 KB,
patch
|
jgilbert
:
review+
|
Details | Diff | Splinter Review |
https://treeherder.mozilla.org/logviewer.html#?job_id=28354838&repo=mozilla-inbound 15:53:51 INFO - 1432 INFO TEST-START | dom/canvas/test/webgl-mochitest/test_webglcontextcreationerror.html 15:53:51 INFO - WebGL(0x7fd6fc242800)::ForceLoseContext 15:53:51 INFO - WebGL(0x7fd6fd729800)::ForceLoseContext 15:53:51 INFO - WebGL(0x7fd6fdad9000)::ForceLoseContext 15:53:51 INFO - WebGL(0x7fd6fdadc800)::ForceLoseContext 15:53:51 INFO - JavaScript warning: http://mochi.test:8888/tests/dom/canvas/test/webgl-mochitest/test_webglcontextcreationerror.html, line 36: Error: WebGL: Failed to create WebGL context: WebGL is currently disabled. 15:53:51 INFO - MEMORY STAT | vsize 1318MB | residentFast 279MB | heapAllocated 132MB 15:53:51 INFO - 1433 INFO TEST-OK | dom/canvas/test/webgl-mochitest/test_webglcontextcreationerror.html | took 174ms 15:53:52 INFO - ExceptionHandler::GenerateDump cloned child 1848 15:53:52 INFO - ExceptionHandler::SendContinueSignalToChild sent continue signal to child 15:53:52 INFO - ExceptionHandler::WaitForContinueSignal waiting for continue signal... 15:53:52 INFO - TEST-INFO | Main app process: exit 11 15:53:52 INFO - 1434 INFO TEST-START | Shutdown 15:53:52 INFO - 1435 INFO Passed: 939 15:53:52 INFO - 1436 INFO Failed: 0 15:53:52 INFO - 1437 INFO Todo: 13 15:53:52 INFO - 1438 INFO Mode: non-e10s 15:53:52 INFO - 1439 INFO Slowest: 3302ms - /tests/dom/canvas/test/webgl-mochitest/test_backbuffer_channels.html 15:53:52 INFO - 1440 INFO SimpleTest FINISHED 15:53:52 INFO - 1441 INFO TEST-INFO | Ran 1 Loops 15:53:52 INFO - 1442 INFO SimpleTest FINISHED 15:53:52 WARNING - TEST-UNEXPECTED-FAIL | dom/canvas/test/webgl-mochitest/test_webglcontextcreationerror.html | application terminated with exit code 11 15:53:52 INFO - runtests.py | Application ran for: 0:00:26.996266 15:53:52 INFO - zombiecheck | Reading PID log: /tmp/tmpxHDOWopidlog 15:53:52 INFO - mozcrash Downloading symbols from: https://queue.taskcluster.net/v1/task/f9-hiwKYTJqlHthnlTTU8g/artifacts/public/build/target.crashreporter-symbols.zip 15:54:02 INFO - mozcrash Copy/paste: /usr/local/bin/linux64-minidump_stackwalk /tmp/tmptwk5Ss.mozrunner/minidumps/6184c879-0a14-25c5-4c690023-5c7c153d.dmp /tmp/tmpdJhbPR 15:54:13 INFO - mozcrash Saved minidump as /home/worker/workspace/build/blobber_upload_dir/6184c879-0a14-25c5-4c690023-5c7c153d.dmp 15:54:13 INFO - mozcrash Saved app info as /home/worker/workspace/build/blobber_upload_dir/6184c879-0a14-25c5-4c690023-5c7c153d.extra 15:54:13 WARNING - PROCESS-CRASH | dom/canvas/test/webgl-mochitest/test_webglcontextcreationerror.html | application crashed [@ mozilla::WebGLContext::MakeContextCurrent]
Assignee | ||
Updated•8 years ago
|
Assignee: nobody → hshih
Assignee | ||
Comment 1•8 years ago
|
||
The WebGLTimerQuery object is at: https://hg.mozilla.org/mozilla-central/annotate/16663eb3dcfa759f25b5e27b101bc79270c156f2/dom/canvas/test/webgl-mochitest/mochitest.ini#l82 and this failed test is at: https://hg.mozilla.org/mozilla-central/annotate/16663eb3dcfa759f25b5e27b101bc79270c156f2/dom/canvas/test/webgl-mochitest/mochitest.ini#l95 This call stack seems like that gecko try to clean up the WebGLTimerQuery in cc, but the context is gone. Q: How can we make sure the WebGLContext is still valid? There are a lot of direct accesses for the WebGLContextBoundObject::mContext, and there is no checking for the WebGLContext status. https://hg.mozilla.org/mozilla-central/annotate/16663eb3dcfa759f25b5e27b101bc79270c156f2/dom/canvas/WebGLObjectModel.h#l272 Is is safer to use |RefPtr<WebGLContext> mContext| or |WeakPtr<WebGLContext> mContext|(with WeakPtr, we will have a lot of checking) instead? The crash call stack: ------ 0 libxul.so!mozilla::WebGLContext::MakeContextCurrent [GLContext.h:740a2bf1fa9e : 3205 + 0x0] rbx = 0x00007fd711451a10 r12 = 0x00007fd705fc3000 r13 = 0x00007fd739b42000 r14 = 0x00007fd705fc3af8 r15 = 0x0000000000000074 rip = 0x00007fd740f10816 rsp = 0x00007ffd985b4650 rbp = 0x00007ffd985b4650 Found by: given as instruction pointer in context 1 libxul.so!mozilla::WebGLTimerQuery::Delete [WebGLTimerQuery.cpp:740a2bf1fa9e : 48 + 0x8] rbx = 0x00007fd711451a10 r12 = 0x00007fd705fc3000 r13 = 0x00007fd739b42000 r14 = 0x00007fd705fc3af8 r15 = 0x0000000000000074 rip = 0x00007fd740f45ac2 rsp = 0x00007ffd985b4660 rbp = 0x00007ffd985b4670 Found by: call frame info 2 libxul.so!mozilla::WebGLTimerQuery::cycleCollection::DeleteCycleCollectable [WebGLObjectModel.h:740a2bf1fa9e : 142 + 0x7] rbx = 0x00007fd711451a10 r12 = 0x00007fd705fc3000 r13 = 0x00007fd739b42000 r14 = 0x00007fd705fc3af8 r15 = 0x0000000000000074 rip = 0x00007fd740f45b04 rsp = 0x00007ffd985b4680 rbp = 0x00007ffd985b4690 Found by: call frame info 3 libxul.so!nsCycleCollector::FreeSnowWhite [nsCycleCollector.cpp:740a2bf1fa9e : 2687 + 0x2] rbx = 0x00007ffd985b46e8 r12 = 0x00007fd705fc3000 r13 = 0x00007fd739b42000 r14 = 0x00007fd705fc3af8 r15 = 0x0000000000000074 rip = 0x00007fd741f003c1 rsp = 0x00007ffd985b46a0 rbp = 0x00007ffd985b4750 Found by: call frame info 4 libxul.so!AsyncFreeSnowWhite::Run [XPCJSRuntime.cpp:740a2bf1fa9e : 155 + 0x4] rbx = 0x00007fd734505e80 r12 = 0x000006832c04998e r13 = 0x0000000000000000 r14 = 0x00007fd74b44ab70 r15 = 0x00007fd7344af468 rip = 0x00007fd741fb7d02 rsp = 0x00007ffd985b4760 rbp = 0x00007ffd985b4780 Found by: call frame info 5 libxul.so!nsThread::ProcessNextEvent [nsThread.cpp:740a2bf1fa9e : 1073 + 0x1] rbx = 0x00007fd74b44ab88 r12 = 0x00007ffd985b4830 r13 = 0x0000000000000000 r14 = 0x00007fd74b44ab70 r15 = 0x00007fd7344af468 rip = 0x00007fd741f1d7a2 rsp = 0x00007ffd985b4790 rbp = 0x00007ffd985b4810 Found by: call frame info 6 libxul.so!NS_ProcessNextEvent [nsThreadUtils.cpp:740a2bf1fa9e : 290 + 0xd] rbx = 0x00007fd74b44ab70 r12 = 0x00007fd704bf1360 r13 = 0x0000000000000000 r14 = 0x00007fd743130ee0 r15 = 0x00007ffd985b48a0 rip = 0x00007fd741f307cc rsp = 0x00007ffd985b4820 rbp = 0x00007ffd985b4850 Found by: call frame info 7 libxul.so!mozilla::dom::quota::QuotaManager::ShutdownObserver::Observe [ActorsParent.cpp:740a2bf1fa9e : 2340 + 0xc] rbx = 0x00007fd74b44ab70 r12 = 0x00007fd704bf1360 r13 = 0x0000000000000000 r14 = 0x00007fd743130ee0 r15 = 0x00007ffd985b48a0 rip = 0x00007fd742a17988 rsp = 0x00007ffd985b4860 rbp = 0x00007ffd985b4880 Found by: call frame info 8 libxul.so!nsObserverService::NotifyObservers [nsObserverList.cpp:740a2bf1fa9e : 112 + 0xb] rbx = 0x00007fd742ced524 r12 = 0x00007fd739b795d0 r13 = 0x0000000000000000 r14 = 0x00007fd743130ee0 r15 = 0x00007ffd985b48a0 rip = 0x00007fd741f07a57 rsp = 0x00007ffd985b4890 rbp = 0x00007ffd985b48e0 Found by: call frame info 9 libxul.so!nsXREDirProvider::DoShutdown [nsXREDirProvider.cpp:740a2bf1fa9e : 1001 + 0x18] rbx = 0x00007fd739b795b0 r12 = 0x00007ffd985b4a30 r13 = 0x0000000000000000 r14 = 0x0000000000000000 r15 = 0x00007ffd985b4980 rip = 0x00007fd74189de63 rsp = 0x00007ffd985b48f0 rbp = 0x00007ffd985b4920 Found by: call frame info 15:54:13 INFO - 10 libxul.so!ScopedXPCOMStartup::~ScopedXPCOMStartup [nsAppRunner.cpp:740a2bf1fa9e : 1467 + 0xb] rbx = 0x00007fd73c7462f8 r12 = 0x00007fd743f279d0 r13 = 0x0000000000000000 r14 = 0x0000000000000000 r15 = 0x00007ffd985b4980 rip = 0x00007fd741894b9b rsp = 0x00007ffd985b4930 rbp = 0x00007ffd985b4950 Found by: call frame info 15:54:13 INFO - 11 libxul.so!mozilla::DefaultDelete<ScopedXPCOMStartup>::operator() [UniquePtr.h:740a2bf1fa9e : 528 + 0x6] rbx = 0x00007fd73c7462f8 r12 = 0x00007fd743f279d0 r13 = 0x0000000000000000 r14 = 0x0000000000000000 r15 = 0x00007ffd985b4980 rip = 0x00007fd741894be7 rsp = 0x00007ffd985b4960 rbp = 0x00007ffd985b4970 Found by: call frame info 15:54:13 INFO - 12 libxul.so!XREMain::XRE_main [UniquePtr.h:740a2bf1fa9e : 343 + 0x4] rbx = 0x00007ffd985b49f0 r12 = 0x00007fd743f279d0 r13 = 0x0000000000000000 r14 = 0x0000000000000000 r15 = 0x00007ffd985b4980 rip = 0x00007fd74189942e rsp = 0x00007ffd985b4980 rbp = 0x00007ffd985b49e0 Found by: call frame info
Status: NEW → ASSIGNED
Flags: needinfo?(jmuizelaar)
Flags: needinfo?(jgilbert)
Flags: needinfo?(dglastonbury)
Assignee | ||
Comment 2•8 years ago
|
||
I will do the similar things as WebGLcontext does for WebGLQuery. https://dxr.mozilla.org/mozilla-central/source/dom/canvas/WebGLContext.h#1398
Flags: needinfo?(jmuizelaar)
Flags: needinfo?(jgilbert)
Flags: needinfo?(dglastonbury)
Assignee | ||
Comment 3•8 years ago
|
||
Call DeleteOnce() for that WebGLTimerQuery object inside WebGLExtensionDisjointTimerQuery. It could prevent the Delete() call after the GLContext gone.
Attachment #8755390 -
Flags: review?(jmuizelaar)
Assignee | ||
Updated•8 years ago
|
Attachment #8755390 -
Flags: review?(jmuizelaar) → review?(jgilbert)
Comment 5•8 years ago
|
||
Comment on attachment 8755390 [details] [diff] [review] handle the WebGLTimerQuery deletion status for GLContext cleanup. v1 Review of attachment 8755390 [details] [diff] [review]: ----------------------------------------------------------------- ::: dom/canvas/WebGLExtensionBase.cpp @@ +21,5 @@ > WebGLExtensionBase::MarkLost() > { > mIsLost = true; > + > + DeleteOnce(); Neuter() or OnMarkLost(). ::: dom/canvas/WebGLExtensionDisjointTimerQuery.cpp @@ +252,5 @@ > +void > +WebGLExtensionDisjointTimerQuery::DeleteOnce() > +{ > + if (mActiveQuery) { > + mActiveQuery->DeleteOnce(); mActiveQuery = nullptr;
Attachment #8755390 -
Flags: review?(jgilbert) → review-
Assignee | ||
Comment 6•8 years ago
|
||
Attachment #8756157 -
Flags: review?(jgilbert)
Assignee | ||
Updated•8 years ago
|
Attachment #8755390 -
Attachment is obsolete: true
Assignee | ||
Comment 7•8 years ago
|
||
try: https://treeherder.mozilla.org/#/jobs?repo=try&revision=8cb7b8e48123
Updated•8 years ago
|
Attachment #8756157 -
Flags: review?(jgilbert) → review+
Assignee | ||
Comment 8•8 years ago
|
||
Please land attachment 8756157 [details] [diff] [review] to m-c.
Keywords: checkin-needed
Comment 10•8 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/c945909fea77
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla49
You need to log in
before you can comment on or make changes to this bug.
Description
•