Bug 180337

Summary: Frequent crashes in WorkerCacheStorageConnection
Product: WebKit Reporter: Chris Dumez <cdumez>
Component: WebCore Misc.Assignee: Nobody <webkit-unassigned>
Status: RESOLVED DUPLICATE    
Severity: Normal CC: beidson, ggaren, youennf
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   

Chris Dumez
Reported 2017-12-03 14:43:30 PST
I see frequent crashes in DOMCacheEngine when running the tests locally: Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0x00000000bbadbeef Exception Note: EXC_CORPSE_NOTIFY Termination Signal: Segmentation fault: 11 Termination Reason: Namespace SIGNAL, Code 0xb Terminating Process: exc handler [0] VM Regions Near 0xbbadbeef: --> __TEXT 000000010ee69000-000000010ee6b000 [ 8K] r-x/rwx SM=COW /Volumes/VOLUME/*/WebKit.framework/Versions/A/XPCServices/com.apple.WebKit.WebContent.xpc/Contents/MacOS/com.apple.WebKit.WebContent.Development Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 com.apple.JavaScriptCore 0x00000005d42681e4 WTFCrash + 36 (Assertions.cpp:273) 1 com.apple.WebCore 0x00000005c7d6c188 WTF::Deque<std::__1::unique_ptr<WebCore::WorkerRunLoop::Task, std::__1::default_delete<WebCore::WorkerRunLoop::Task> >, 0ul>::checkValidity() const + 168 (Deque.h:250) 2 com.apple.WebCore 0x00000005c7d6e73f void WTF::Deque<std::__1::unique_ptr<WebCore::WorkerRunLoop::Task, std::__1::default_delete<WebCore::WorkerRunLoop::Task> >, 0ul>::append<std::__1::unique_ptr<WebCore::WorkerRunLoop::Task, std::__1::default_delete<WebCore::WorkerRunLoop::Task> > >(std::__1::unique_ptr<WebCore::WorkerRunLoop::Task, std::__1::default_delete<WebCore::WorkerRunLoop::Task> >&&) + 47 (Deque.h:455) 3 com.apple.WebCore 0x00000005c7d6e705 WTF::Deque<std::__1::unique_ptr<WebCore::WorkerRunLoop::Task, std::__1::default_delete<WebCore::WorkerRunLoop::Task> >, 0ul>::append(std::__1::unique_ptr<WebCore::WorkerRunLoop::Task, std::__1::default_delete<WebCore::WorkerRunLoop::Task> >&&) + 37 (Deque.h:87) 4 com.apple.WebCore 0x00000005c7d626fb WTF::MessageQueue<WebCore::WorkerRunLoop::Task>::append(std::__1::unique_ptr<WebCore::WorkerRunLoop::Task, std::__1::default_delete<WebCore::WorkerRunLoop::Task> >) + 75 (MessageQueue.h:97) 5 com.apple.WebCore 0x00000005c7d5fac4 WebCore::WorkerRunLoop::postTaskForMode(WebCore::ScriptExecutionContext::Task&&, WTF::String const&) + 356 (WorkerRunLoop.cpp:252) 6 com.apple.WebCore 0x00000005c7db6b99 WebCore::ServiceWorkerThreadProxy::postTaskForModeToWorkerGlobalScope(WebCore::ScriptExecutionContext::Task&&, WTF::String const&) + 73 (ServiceWorkerThreadProxy.cpp:68) 7 com.apple.WebCore 0x00000005c5f2a75b WebCore::WorkerCacheStorageConnection::doRemove(unsigned long long, unsigned long long)::$_37::operator()()::'lambda'(WTF::Expected<WebCore::DOMCacheEngine::CacheIdentifierOperationResult, WebCore::DOMCacheEngine::Error> const&)::operator()(WTF::Expected<WebCore::DOMCacheEngine::CacheIdentifierOperationResult, WebCore::DOMCacheEngine::Error> const&) + 283 (WorkerCacheStorageConnection.cpp:137) 8 com.apple.WebCore 0x00000005c5f2a584 WTF::Function<void (WTF::Expected<WebCore::DOMCacheEngine::CacheIdentifierOperationResult, WebCore::DOMCacheEngine::Error> const&)>::CallableWrapper<WebCore::WorkerCacheStorageConnection::doRemove(unsigned long long, unsigned long long)::$_37::operator()()::'lambda'(WTF::Expected<WebCore::DOMCacheEngine::CacheIdentifierOperationResult, WebCore::DOMCacheEngine::Error> const&)>::call(WTF::Expected<WebCore::DOMCacheEngine::CacheIdentifierOperationResult, WebCore::DOMCacheEngine::Error> const&) + 52 (Function.h:101) 9 com.apple.WebCore 0x00000005c5eed6ee WTF::Function<void (WTF::Expected<WebCore::DOMCacheEngine::CacheIdentifierOperationResult, WebCore::DOMCacheEngine::Error> const&)>::operator()(WTF::Expected<WebCore::DOMCacheEngine::CacheIdentifierOperationResult, WebCore::DOMCacheEngine::Error> const&) const + 158 (Function.h:56) 10 com.apple.WebCore 0x00000005c5eed455 WebCore::CacheStorageConnection::openOrRemoveCompleted(unsigned long long, WTF::Expected<WebCore::DOMCacheEngine::CacheIdentifierOperationResult, WebCore::DOMCacheEngine::Error> const&) + 85 11 com.apple.WebKit 0x00000005c0805845 WebCore::CacheStorageConnection::removeCompleted(unsigned long long, WTF::Expected<WebCore::DOMCacheEngine::CacheIdentifierOperationResult, WebCore::DOMCacheEngine::Error> const&) + 37 (CacheStorageConnection.h:62) 12 com.apple.WebKit 0x00000005c0805810 WebKit::WebCacheStorageConnection::removeCompleted(unsigned long long, WTF::Expected<WebCore::DOMCacheEngine::CacheIdentifierOperationResult, WebCore::DOMCacheEngine::Error> const&) + 48 (WebCacheStorageConnection.cpp:107) 13 com.apple.WebKit 0x00000005c0812060 void IPC::callMemberFunctionImpl<WebKit::WebCacheStorageConnection, void (WebKit::WebCacheStorageConnection::*)(unsigned long long, WTF::Expected<WebCore::DOMCacheEngine::CacheIdentifierOperationResult, WebCore::DOMCacheEngine::Error> const&), std::__1::tuple<unsigned long long, WTF::Expected<WebCore::DOMCacheEngine::CacheIdentifierOperationResult, WebCore::DOMCacheEngine::Error> >, 0ul, 1ul>(WebKit::WebCacheStorageConnection*, void (WebKit::WebCacheStorageConnection::*)(unsigned long long, WTF::Expected<WebCore::DOMCacheEngine::CacheIdentifierOperationResult, WebCore::DOMCacheEngine::Error> const&), std::__1::tuple<unsigned long long, WTF::Expected<WebCore::DOMCacheEngine::CacheIdentifierOperationResult, WebCore::DOMCacheEngine::Error> >&&, std::__1::integer_sequence<unsigned long, 0ul, 1ul>) + 192 (HandleMessage.h:41) 14 com.apple.WebKit 0x00000005c0810940 void IPC::callMemberFunction<WebKit::WebCacheStorageConnection, void (WebKit::WebCacheStorageConnection::*)(unsigned long long, WTF::Expected<WebCore::DOMCacheEngine::CacheIdentifierOperationResult, WebCore::DOMCacheEngine::Error> const&), std::__1::tuple<unsigned long long, WTF::Expected<WebCore::DOMCacheEngine::CacheIdentifierOperationResult, WebCore::DOMCacheEngine::Error> >, std::__1::integer_sequence<unsigned long, 0ul, 1ul> >(std::__1::tuple<unsigned long long, WTF::Expected<WebCore::DOMCacheEngine::CacheIdentifierOperationResult, WebCore::DOMCacheEngine::Error> >&&, WebKit::WebCacheStorageConnection*, void (WebKit::WebCacheStorageConnection::*)(unsigned long long, WTF::Expected<WebCore::DOMCacheEngine::CacheIdentifierOperationResult, WebCore::DOMCacheEngine::Error> const&)) + 96 (HandleMessage.h:47) 15 com.apple.WebKit 0x00000005c08100b8 void IPC::handleMessage<Messages::WebCacheStorageConnection::RemoveCompleted, WebKit::WebCacheStorageConnection, void (WebKit::WebCacheStorageConnection::*)(unsigned long long, WTF::Expected<WebCore::DOMCacheEngine::CacheIdentifierOperationResult, WebCore::DOMCacheEngine::Error> const&)>(IPC::Decoder&, WebKit::WebCacheStorageConnection*, void (WebKit::WebCacheStorageConnection::*)(unsigned long long, WTF::Expected<WebCore::DOMCacheEngine::CacheIdentifierOperationResult, WebCore::DOMCacheEngine::Error> const&)) + 280 16 com.apple.WebKit 0x00000005c080fb0d WebKit::WebCacheStorageConnection::didReceiveMessage(IPC::Connection&, IPC::Decoder&) + 237 (WebCacheStorageConnectionMessageReceiver.cpp:48) 17 com.apple.WebKit 0x00000005c0817eca WebKit::WebCacheStorageProvider::process(IPC::Connection&, IPC::Decoder&) + 90 (WebCacheStorageProvider.cpp:56) 18 com.apple.WebKit 0x00000005c03af7bc WebKit::NetworkProcessConnection::didReceiveMessage(IPC::Connection&, IPC::Decoder&) + 812 (NetworkProcessConnection.cpp:94) 19 com.apple.WebKit 0x00000005c013b333 IPC::Connection::dispatchMessage(IPC::Decoder&) + 51 (Connection.cpp:902) 20 com.apple.WebKit 0x00000005c0130918 IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >) + 712 21 com.apple.WebKit 0x00000005c013b93a IPC::Connection::dispatchOneMessage() + 1530 (Connection.cpp:959) 22 com.apple.WebKit 0x00000005c0153c1d IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_14::operator()() + 29 (Connection.cpp:896) 23 com.apple.WebKit 0x00000005c0153b79 WTF::Function<void ()>::CallableWrapper<IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_14>::call() + 25 (Function.h:101) 24 com.apple.JavaScriptCore 0x00000005d42810db WTF::Function<void ()>::operator()() const + 139 (Function.h:56) 25 com.apple.JavaScriptCore 0x00000005d42c82d3 WTF::RunLoop::performWork() + 211 (RunLoop.cpp:107) 26 com.apple.JavaScriptCore 0x00000005d42c8b54 WTF::RunLoop::performWork(void*) + 36 (RunLoopCF.cpp:38) 27 com.apple.CoreFoundation 0x00007fff36aaa5a1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 28 com.apple.CoreFoundation 0x00007fff36b6435c __CFRunLoopDoSource0 + 108 29 com.apple.CoreFoundation 0x00007fff36a8d040 __CFRunLoopDoSources0 + 208 30 com.apple.CoreFoundation 0x00007fff36a8c4bd __CFRunLoopRun + 1293 31 com.apple.CoreFoundation 0x00007fff36a8bd23 CFRunLoopRunSpecific + 483 32 com.apple.HIToolbox 0x00007fff35da3e26 RunCurrentEventLoopInMode + 286 33 com.apple.HIToolbox 0x00007fff35da3b96 ReceiveNextEventCommon + 613 34 com.apple.HIToolbox 0x00007fff35da3914 _BlockUntilNextEventMatchingListInModeWithFilter + 64 35 com.apple.AppKit 0x00007fff3406ef5f _DPSNextEvent + 2085 36 com.apple.AppKit 0x00007fff34804b4c -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 3044 37 com.apple.AppKit 0x00007fff34063d6d -[NSApplication run] + 764 38 com.apple.AppKit 0x00007fff34032f1a NSApplicationMain + 804 39 libxpc.dylib 0x00007fff5e71342f _xpc_objc_main + 580 40 libxpc.dylib 0x00007fff5e712082 xpc_main + 417 41 com.apple.WebKit.WebContent 0x000000010ee6a13b main + 1195 (XPCServiceMain.mm:148) 42 libdyld.dylib 0x00007fff5e446115 start + 1
Attachments
Chris Dumez
Comment 1 2017-12-03 14:56:35 PST
Probably same root cause: Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 com.apple.JavaScriptCore 0x000000013c2681e4 WTFCrash + 36 (Assertions.cpp:273) 1 com.apple.WebCore 0x000000012fd6c188 WTF::Deque<std::__1::unique_ptr<WebCore::WorkerRunLoop::Task, std::__1::default_delete<WebCore::WorkerRunLoop::Task> >, 0ul>::checkValidity() const + 168 (Deque.h:250) 2 com.apple.WebCore 0x000000012fd6e73f void WTF::Deque<std::__1::unique_ptr<WebCore::WorkerRunLoop::Task, std::__1::default_delete<WebCore::WorkerRunLoop::Task> >, 0ul>::append<std::__1::unique_ptr<WebCore::WorkerRunLoop::Task, std::__1::default_delete<WebCore::WorkerRunLoop::Task> > >(std::__1::unique_ptr<WebCore::WorkerRunLoop::Task, std::__1::default_delete<WebCore::WorkerRunLoop::Task> >&&) + 47 (Deque.h:455) 3 com.apple.WebCore 0x000000012fd6e705 WTF::Deque<std::__1::unique_ptr<WebCore::WorkerRunLoop::Task, std::__1::default_delete<WebCore::WorkerRunLoop::Task> >, 0ul>::append(std::__1::unique_ptr<WebCore::WorkerRunLoop::Task, std::__1::default_delete<WebCore::WorkerRunLoop::Task> >&&) + 37 (Deque.h:87) 4 com.apple.WebCore 0x000000012fd626fb WTF::MessageQueue<WebCore::WorkerRunLoop::Task>::append(std::__1::unique_ptr<WebCore::WorkerRunLoop::Task, std::__1::default_delete<WebCore::WorkerRunLoop::Task> >) + 75 (MessageQueue.h:97) 5 com.apple.WebCore 0x000000012fd5fac4 WebCore::WorkerRunLoop::postTaskForMode(WebCore::ScriptExecutionContext::Task&&, WTF::String const&) + 356 (WorkerRunLoop.cpp:252) 6 com.apple.WebCore 0x000000012fdb6b99 WebCore::ServiceWorkerThreadProxy::postTaskForModeToWorkerGlobalScope(WebCore::ScriptExecutionContext::Task&&, WTF::String const&) + 73 (ServiceWorkerThreadProxy.cpp:68) 7 com.apple.WebCore 0x000000012df2bf90 WebCore::WorkerCacheStorageConnection::doRetrieveCaches(unsigned long long, WTF::String const&, unsigned long long)::$_38::operator()()::'lambda'(WTF::Expected<WebCore::DOMCacheEngine::CacheInfos, WebCore::DOMCacheEngine::Error>&&)::operator()(WTF::Expected<WebCore::DOMCacheEngine::CacheInfos, WebCore::DOMCacheEngine::Error>&&) + 352 (WorkerCacheStorageConnection.cpp:158) 8 com.apple.WebCore 0x000000012df2bd84 WTF::Function<void (WTF::Expected<WebCore::DOMCacheEngine::CacheInfos, WebCore::DOMCacheEngine::Error>&&)>::CallableWrapper<WebCore::WorkerCacheStorageConnection::doRetrieveCaches(unsigned long long, WTF::String const&, unsigned long long)::$_38::operator()()::'lambda'(WTF::Expected<WebCore::DOMCacheEngine::CacheInfos, WebCore::DOMCacheEngine::Error>&&)>::call(WTF::Expected<WebCore::DOMCacheEngine::CacheInfos, WebCore::DOMCacheEngine::Error>&&) + 52 (Function.h:101) 9 com.apple.WebCore 0x000000012deeda0e WTF::Function<void (WTF::Expected<WebCore::DOMCacheEngine::CacheInfos, WebCore::DOMCacheEngine::Error>&&)>::operator()(WTF::Expected<WebCore::DOMCacheEngine::CacheInfos, WebCore::DOMCacheEngine::Error>&&) const + 158 (Function.h:56) 10 com.apple.WebCore 0x000000012deed77d WebCore::CacheStorageConnection::updateCaches(unsigned long long, WTF::Expected<WebCore::DOMCacheEngine::CacheInfos, WebCore::DOMCacheEngine::Error>&&) + 93 11 com.apple.WebKit 0x000000012880588d WebKit::WebCacheStorageConnection::updateCaches(unsigned long long, WTF::Expected<WebCore::DOMCacheEngine::CacheInfos, WebCore::DOMCacheEngine::Error>&&) + 61 (WebCacheStorageConnection.cpp:112) 12 com.apple.WebKit 0x0000000128814d50 void IPC::callMemberFunctionImpl<WebKit::WebCacheStorageConnection, void (WebKit::WebCacheStorageConnection::*)(unsigned long long, WTF::Expected<WebCore::DOMCacheEngine::CacheInfos, WebCore::DOMCacheEngine::Error>&&), std::__1::tuple<unsigned long long, WTF::Expected<WebCore::DOMCacheEngine::CacheInfos, WebCore::DOMCacheEngine::Error> >, 0ul, 1ul>(WebKit::WebCacheStorageConnection*, void (WebKit::WebCacheStorageConnection::*)(unsigned long long, WTF::Expected<WebCore::DOMCacheEngine::CacheInfos, WebCore::DOMCacheEngine::Error>&&), std::__1::tuple<unsigned long long, WTF::Expected<WebCore::DOMCacheEngine::CacheInfos, WebCore::DOMCacheEngine::Error> >&&, std::__1::integer_sequence<unsigned long, 0ul, 1ul>) + 192 (HandleMessage.h:41) 13 com.apple.WebKit 0x0000000128812100 void IPC::callMemberFunction<WebKit::WebCacheStorageConnection, void (WebKit::WebCacheStorageConnection::*)(unsigned long long, WTF::Expected<WebCore::DOMCacheEngine::CacheInfos, WebCore::DOMCacheEngine::Error>&&), std::__1::tuple<unsigned long long, WTF::Expected<WebCore::DOMCacheEngine::CacheInfos, WebCore::DOMCacheEngine::Error> >, std::__1::integer_sequence<unsigned long, 0ul, 1ul> >(std::__1::tuple<unsigned long long, WTF::Expected<WebCore::DOMCacheEngine::CacheInfos, WebCore::DOMCacheEngine::Error> >&&, WebKit::WebCacheStorageConnection*, void (WebKit::WebCacheStorageConnection::*)(unsigned long long, WTF::Expected<WebCore::DOMCacheEngine::CacheInfos, WebCore::DOMCacheEngine::Error>&&)) + 96 (HandleMessage.h:47) 14 com.apple.WebKit 0x00000001288101fc void IPC::handleMessage<Messages::WebCacheStorageConnection::UpdateCaches, WebKit::WebCacheStorageConnection, void (WebKit::WebCacheStorageConnection::*)(unsigned long long, WTF::Expected<WebCore::DOMCacheEngine::CacheInfos, WebCore::DOMCacheEngine::Error>&&)>(IPC::Decoder&, WebKit::WebCacheStorageConnection*, void (WebKit::WebCacheStorageConnection::*)(unsigned long long, WTF::Expected<WebCore::DOMCacheEngine::CacheInfos, WebCore::DOMCacheEngine::Error>&&)) + 284 (HandleMessage.h:127) 15 com.apple.WebKit 0x000000012880fb90 WebKit::WebCacheStorageConnection::didReceiveMessage(IPC::Connection&, IPC::Decoder&) + 368 (WebCacheStorageConnectionMessageReceiver.cpp:52) 16 com.apple.WebKit 0x0000000128817eca WebKit::WebCacheStorageProvider::process(IPC::Connection&, IPC::Decoder&) + 90 (WebCacheStorageProvider.cpp:56) 17 com.apple.WebKit 0x00000001283af7bc WebKit::NetworkProcessConnection::didReceiveMessage(IPC::Connection&, IPC::Decoder&) + 812 (NetworkProcessConnection.cpp:94) 18 com.apple.WebKit 0x000000012813b333 IPC::Connection::dispatchMessage(IPC::Decoder&) + 51 (Connection.cpp:902) 19 com.apple.WebKit 0x0000000128130918 IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >) + 712 20 com.apple.WebKit 0x000000012813b93a IPC::Connection::dispatchOneMessage() + 1530 (Connection.cpp:959) 21 com.apple.WebKit 0x0000000128153c1d IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_14::operator()() + 29 (Connection.cpp:896) 22 com.apple.WebKit 0x0000000128153b79 WTF::Function<void ()>::CallableWrapper<IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_14>::call() + 25 (Function.h:101) 23 com.apple.JavaScriptCore 0x000000013c2810db WTF::Function<void ()>::operator()() const + 139 (Function.h:56) 24 com.apple.JavaScriptCore 0x000000013c2c82d3 WTF::RunLoop::performWork() + 211 (RunLoop.cpp:107) 25 com.apple.JavaScriptCore 0x000000013c2c8b54 WTF::RunLoop::performWork(void*) + 36 (RunLoopCF.cpp:38) 26 com.apple.CoreFoundation 0x00007fff36aaa5a1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 27 com.apple.CoreFoundation 0x00007fff36b6435c __CFRunLoopDoSource0 + 108 28 com.apple.CoreFoundation 0x00007fff36a8d040 __CFRunLoopDoSources0 + 208 29 com.apple.CoreFoundation 0x00007fff36a8c4bd __CFRunLoopRun + 1293 30 com.apple.CoreFoundation 0x00007fff36a8bd23 CFRunLoopRunSpecific + 483 31 com.apple.HIToolbox 0x00007fff35da3e26 RunCurrentEventLoopInMode + 286 32 com.apple.HIToolbox 0x00007fff35da3b96 ReceiveNextEventCommon + 613 33 com.apple.HIToolbox 0x00007fff35da3914 _BlockUntilNextEventMatchingListInModeWithFilter + 64 34 com.apple.AppKit 0x00007fff3406ef5f _DPSNextEvent + 2085 35 com.apple.AppKit 0x00007fff34804b4c -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 3044 36 com.apple.AppKit 0x00007fff34063d6d -[NSApplication run] + 764 37 com.apple.AppKit 0x00007fff34032f1a NSApplicationMain + 804 38 libxpc.dylib 0x00007fff5e71342f _xpc_objc_main + 580 39 libxpc.dylib 0x00007fff5e712082 xpc_main + 417 40 com.apple.WebKit.WebContent 0x000000010d36813b main + 1195 (XPCServiceMain.mm:148) 41 libdyld.dylib 0x00007fff5e446115 start + 1
Chris Dumez
Comment 2 2017-12-03 14:59:05 PST
My bet is that WorkerCacheStorageConnection::m_proxy is dead. It is a WorkerLoaderProxy&, nothing seems to keep it alive?
Chris Dumez
Comment 4 2017-12-03 15:05:27 PST
Looks like it causes http/tests/workers/service/service-worker-clear.html to flakily time out.
youenn fablet
Comment 5 2017-12-03 20:57:47 PST
I believe this is a dupe of https://bugs.webkit.org/show_bug.cgi?id=180304. Let's finalize 180304 and see whether this crash is still happening.
Chris Dumez
Comment 6 2017-12-04 10:14:07 PST
*** This bug has been marked as a duplicate of bug 180304 ***
Note You need to log in before you can comment on or make changes to this bug.