Closed Bug 678372 Opened 13 years ago Closed 13 years ago

reftests run without OpenGL layers even when enabled due to NSPR reaping glxtest before GfxInfo does

Categories

(Core :: Graphics, defect)

x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 718629

People

(Reporter: karlt, Unassigned)

References

Details

Reftests are using PR_CreateProcess via #0 PR_CreateProcess (path=0x7fffd340ee58 "/bin/sh", argv=0x7fffbdd65ec0, envp=0x0, attr=0x0) at /home/karl/moz/dev/nsprpub/pr/src/misc/prinit.c:731 #1 0x00007ffff3cb3d5b in nsProcess::RunProcess (this=0x7fffbdf3dca0, blocking=1, my_argv=0x7fffbdd65ec0, observer=0x0, holdWeak=0, argsUTF8=0) at /home/karl/moz/dev/xpcom/threads/nsProcessCommon.cpp:535 #2 0x00007ffff3cb39ef in nsProcess::CopyArgsAndRunProcess (this=0x7fffbdf3dca0, blocking=1, args=0x7fffffff31c0, count=2, observer=0x0, holdWeak=0) at /home/karl/moz/dev/xpcom/threads/nsProcessCommon.cpp:384 #3 0x00007ffff3cb38bd in nsProcess::Run (this=0x7fffbdf3dca0, blocking=1, args=0x7fffffff31c0, count=2) at /home/karl/moz/dev/xpcom/threads/nsProcessCommon.cpp:353 #4 0x00007ffff367059b in nsOSHelperAppService::GetHandlerAndDescriptionFromMailcapFile ( aFilename=..., aMajorType=..., aMinorType=..., aTypeOptions=..., aHandler=..., aDescription=..., aMozillaFlags=...) at /home/karl/moz/dev/uriloader/exthandler/unix/nsOSHelperAppService.cpp:1136 #5 0x00007ffff366f572 in nsOSHelperAppService::DoLookUpHandlerAndDescription (aMajorType=..., aMinorType=..., aTypeOptions=..., aHandler=..., aDescription=..., aMozillaFlags=..., aUserData=0) at /home/karl/moz/dev/uriloader/exthandler/unix/nsOSHelperAppService.cpp:956 #6 0x00007ffff366f2e2 in nsOSHelperAppService::LookUpHandlerAndDescription (aMajorType=..., aMinorType=..., aTypeOptions=..., aHandler=..., aDescription=..., aMozillaFlags=...) at /home/karl/moz/dev/uriloader/exthandler/unix/nsOSHelperAppService.cpp:901 #7 0x00007ffff36712a6 in nsOSHelperAppService::GetFromExtension (this=0x7fffc67acda0, aFileExt=...) at /home/karl/moz/dev/uriloader/exthandler/unix/nsOSHelperAppService.cpp:1347 #8 0x00007ffff3672283 in nsOSHelperAppService::GetMIMEInfoFromOS (this=0x7fffc67acda0, aType=..., aFileExt=..., aFound=0x7fffffff44fc) at /home/karl/moz/dev/uriloader/exthandler/unix/nsOSHelperAppService.cpp:1543 #9 0x00007ffff3665494 in nsExternalHelperAppService::GetTypeFromExtension (this=0x7fffc67acda0, aFileExt=..., aContentType=...) at /home/karl/moz/dev/uriloader/exthandler/nsExternalHelperAppService.cpp:2706 #10 0x00007ffff3665ec3 in nsExternalHelperAppService::GetTypeFromFile (this=0x7fffc67acda0, aFile= 0x7fffbdd3d240, aContentType=...) at /home/karl/moz/dev/uriloader/exthandler/nsExternalHelperAppService.cpp:2845 #11 0x00007ffff267d996 in nsFileChannel::MakeFileInputStream (this=0x7fffbdd54080, file=0x7fffbdd3d240, stream=..., contentType=...) at /home/karl/moz/dev/netwerk/protocol/file/nsFileChannel.cpp:301 #12 0x00007ffff267df81 in nsFileChannel::OpenContentStream (this=0x7fffbdd54080, async=0, result=0x7fffffff4c00, channel=0x7fffffff4950) at /home/karl/moz/dev/netwerk/protocol/file/nsFileChannel.cpp:370 #13 0x00007ffff25ae508 in nsBaseChannel::Open (this=0x7fffbdd54080, result=0x7fffffff4c00) at /home/karl/moz/dev/netwerk/base/src/nsBaseChannel.cpp:548 #14 0x00007ffff3cd06ea in NS_InvokeByIndex_P (that=0x7fffbdd540d0, methodIndex=27, paramCount=1, params=0x7fffffff4c00) at /home/karl/moz/dev/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_unix.cpp:195 #15 0x00007ffff35331d2 in CallMethodHelper::Invoke (this=0x7fffffff4bc0) at /home/karl/moz/dev/js/src/xpconnect/src/xpcwrappednative.cpp:3119 #16 0x00007ffff3530df3 in CallMethodHelper::Call (this=0x7fffffff4bc0) at /home/karl/moz/dev/js/src/xpconnect/src/xpcwrappednative.cpp:2373 (gdb) call DumpJSStack() 0 ReadManifest(inherited_status = 0, aURL = [xpconnect wrapped nsIURI @ 0x7fffbdefe0f0 (native @ 0x7fffbdde7108)]) ["chrome://reftest/content/reftest.js":553] refURI = undefined prettyPath = undefined testURI = undefined incURI = undefined httpDepth = undefined runHttp = undefined precondition = undefined preconditions = undefined fallback_action = undefined precondition_str = undefined args = undefined m = undefined cond = undefined stat = undefined item = undefined slow = undefined needs_focus = undefined maxAsserts = undefined minAsserts = undefined allow_silent_fail = undefined expected_status = undefined items = undefined i = undefined str = undefined urlprefix = undefined lineNo = undefined sandbox = undefined lines = undefined streamBuf = undefined inputStream = undefined channel = [xpconnect wrapped nsIChannel @ 0x7fffbdefe2b0 (native @ 0x7fffbdd54080)] listURL = [xpconnect wrapped nsIURI @ 0x7fffbdefe0f0 (native @ 0x7fffbdde7108)] secMan = [xpconnect wrapped nsIScriptSecurityManager @ 0x7fffbdefe240 (native @ 0x7fffd829f040)] this = [object ChromeWindow @ 0x7fffc6621510 (native @ 0x7fffc67e2078)] 1 ReadTopManifest(aFileURL = "file:///home/karl/moz/dev/layout/reftests/svg/as-image/reftest.list") ["chrome://reftest/content/reftest.js":541] url = [xpconnect wrapped nsIURI @ 0x7fffbdefe0f0 (native @ 0x7fffbdde7108)] this = [object ChromeWindow @ 0x7fffc6621510 (native @ 0x7fffc67e2078)] 2 StartTests() ["chrome://reftest/content/reftest.js":361] end = undefined start = undefined testsPerChunk = undefined args = [object Object] this = [object ChromeWindow @ 0x7fffc6621510 (native @ 0x7fffc67e2078)] 3 InitAndStartRefTests() ["chrome://reftest/content/reftest.js":328] windowElem = [object XULElement @ 0x7fffbdf9fdd0 (native @ 0x7fffc67c3790)] mfl = undefined prefs = [xpconnect wrapped nsIPrefBranch2 @ 0x7fffc68c0be0 (native @ 0x7fffe4771740)] this = [object ChromeWindow @ 0x7fffc6621510 (native @ 0x7fffc67e2078)] 4 RecvContentReady() ["chrome://reftest/content/reftest.js":1437] this = [object ChromeWindow @ 0x7fffc6621510 (native @ 0x7fffc67e2078)] 5 anonymous(m = [object Object]) ["chrome://reftest/content/reftest.js":1392] this = [xpconnect wrapped nsIChromeFrameMessageManager @ 0x7fffbdfc0780 (native @ 0x7fffc68c0e80)] Parsing mailcap files involves running some shell test commands, and nsIProcess is used for that. Unfortunately PR_CreateProcess causes all other child processes to be reaped (bug 227246), and so the exit status of glxtest is not caught.
Perhaps something could be hacked up to use GfxInfo before PR_CreateProcess is used or to use NSPR to wait, but bug 678369 would be the preferred solution.
Summary: reftests run without OpenGL layers even when enabled due to NSPR reaping glxtest before GfxInfo → reftests run without OpenGL layers even when enabled due to NSPR reaping glxtest before GfxInfo does
Should I try to port glxtest to use PR_CreateProcess instead of fork?
I think it is best to avoid PR_CreateProcess. Other libraries also use waitpid and don't expect their children to be stolen, so I don't want any further PR_CreateProcess usage. I'll look at Benoit's idea in bug 718629, assuming that's a duplicate of this.
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.