WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
Bug 82382
webkit_unit_tests crashing on chromium lion in CCLayerTreeHostTestCompositeAndReadbackWhileInvisible
https://bugs.webkit.org/show_bug.cgi?id=82382
Summary
webkit_unit_tests crashing on chromium lion in CCLayerTreeHostTestCompositeAn...
Dirk Pranke
Reported
2012-03-27 14:44:01 PDT
on my machine (but not on the bot): src $ out/Debug/webkit_unit_tests --gtest_filter=CCLayerTreeHostTestCompositeAndReadbackWhileInvisible.\* Note: Google Test filter = CCLayerTreeHostTestCompositeAndReadbackWhileInvisible.* [==========] Running 1 test from 1 test case. [----------] Global test environment set-up. [----------] 1 test from CCLayerTreeHostTestCompositeAndReadbackWhileInvisible [ RUN ] CCLayerTreeHostTestCompositeAndReadbackWhileInvisible.runMultiThread ASSERTION FAILED: !HashTranslator::equal(KeyTraits::emptyValue(), key) ../../third_party/WebKit/Source/WTF/wtf/HashTable.h(480) : void WTF::HashTable<unsigned int, unsigned int, WTF::IdentityExtractor, WTF::IntHash<unsigned int>, WTF::HashTraits<unsigned int>, WTF::HashTraits<unsigned int> >::checkKey(const unsigned int &) 1 0x1cc229 void WTF::HashTable<unsigned int, unsigned int, WTF::IdentityExtractor, WTF::IntHash<unsigned int>, WTF::HashTraits<unsigned int>, WTF::HashTraits<unsigned int> >::checkKey<WTF::IdentityHashTranslator<WTF::IntHash<unsigned int> >, unsigned int>(unsigned int const&) 2 0x1cbd26 std::pair<WTF::HashTableIterator<unsigned int, unsigned int, WTF::IdentityExtractor, WTF::IntHash<unsigned int>, WTF::HashTraits<unsigned int>, WTF::HashTraits<unsigned int> >, bool> WTF::HashTable<unsigned int, unsigned int, WTF::IdentityExtractor, WTF::IntHash<unsigned int>, WTF::HashTraits<unsigned int>, WTF::HashTraits<unsigned int> >::add<WTF::IdentityHashTranslator<WTF::IntHash<unsigned int> >, unsigned int, unsigned int>(unsigned int const&, unsigned int const&) 3 0x1cbb5c WTF::HashTable<unsigned int, unsigned int, WTF::IdentityExtractor, WTF::IntHash<unsigned int>, WTF::HashTraits<unsigned int>, WTF::HashTraits<unsigned int> >::add(unsigned int const&) 4 0x1cb557 WTF::HashSet<unsigned int, WTF::IntHash<unsigned int>, WTF::HashTraits<unsigned int> >::add(unsigned int const&) 5 0x19633e (anonymous namespace)::CompositorFakeWebGraphicsContext3DWithTextureTracking::bindTexture(unsigned int, unsigned int) 6 0x19c25a7 WebCore::GraphicsContext3DPrivate::bindTexture(unsigned int, unsigned int) 7 0x19c9f75 WebCore::GraphicsContext3D::bindTexture(unsigned int, unsigned int) 8 0x2731afd WebCore::LayerRendererChromium::getFramebufferPixels(void*, WebCore::IntRect const&) 9 0x27c8383 WebCore::CCLayerTreeHostImpl::readback(void*, WebCore::IntRect const&) 10 0x27f7fab WebCore::CCThreadProxy::scheduledActionDrawAndSwapInternal(bool) 11 0x27f83dc WebCore::CCThreadProxy::scheduledActionDrawAndSwapForced() 12 0x27f841c non-virtual thunk to WebCore::CCThreadProxy::scheduledActionDrawAndSwapForced() 13 0x27e36ee WebCore::CCScheduler::processScheduledActions() 14 0x27e3931 WebCore::CCScheduler::setNeedsForcedRedraw() 15 0x27f1eee WebCore::CCThreadProxy::requestReadbackOnImplThread(WebCore::CCThreadProxy::ReadbackRequest*) 16 0x27ff409 WebCore::CCThreadTask1<WebCore::CCThreadProxy, WebCore::CCThreadProxy::ReadbackRequest*, WebCore::CCThreadProxy::ReadbackRequest*>::performTask() 17 0x19948b6 WebKit::CCThreadTaskAdapter::run() 18 0x212f8f4 base::internal::RunnableAdapter<void (WebKit::WebThread::Task::*)()>::Run(WebKit::WebThread::Task*) 19 0x212f7f3 base::internal::InvokeHelper<false, void, base::internal::RunnableAdapter<void (WebKit::WebThread::Task::*)()>, void ()(WebKit::WebThread::Task*)>::MakeItSo(base::internal::RunnableAdapter<void (WebKit::WebThread::Task::*)()>, WebKit::WebThread::Task*) 20 0x212f72e base::internal::Invoker<1, base::internal::BindState<base::internal::RunnableAdapter<void (WebKit::WebThread::Task::*)()>, void ()(WebKit::WebThread::Task*), void ()(base::internal::OwnedWrapper<WebKit::WebThread::Task>)>, void ()(WebKit::WebThread::Task*)>::Run(base::internal::BindStateBase*) 21 0x1b36e4b base::Callback<void ()()>::Run() const 22 0x1ba14be MessageLoop::RunTask(base::PendingTask const&) 23 0x1ba1861 MessageLoop::DeferOrRunPendingTask(base::PendingTask const&) 24 0x1ba1a98 MessageLoop::DoWork() 25 0x1bb24ac base::MessagePumpDefault::Run(base::MessagePump::Delegate*) 26 0x1ba0e23 MessageLoop::RunInternal() 27 0x1ba013b MessageLoop::RunHandler() 28 0x1ba0080 MessageLoop::Run() 29 0x1c46052 base::Thread::Run(MessageLoop*) 30 0x1c461ff base::Thread::ThreadMain() 31 0x1c44436 base::(anonymous namespace)::ThreadFunc(void*) [18799:-1323257856:0327/144309:593964388165610:ERROR:process_util_posix.cc(142)] Received signal 11 0 webkit_unit_tests 0x01b41fef base::debug::StackTrace::StackTrace() + 63 1 webkit_unit_tests 0x01b41f8b base::debug::StackTrace::StackTrace() + 43 2 webkit_unit_tests 0x01bf0967 base::(anonymous namespace)::StackDumpSignalHandler(int, __siginfo*, __darwin_ucontext*) + 295 3 libsystem_c.dylib 0x958b259b _sigtramp + 43 4 ??? 0xffffffff 0x0 + 4294967295 5 webkit_unit_tests 0x001cbd26 std::pair<WTF::HashTableIterator<unsigned int, unsigned int, WTF::IdentityExtractor, WTF::IntHash<unsigned int>, WTF::HashTraits<unsigned int>, WTF::HashTraits<unsigned int> >, bool> WTF::HashTable<unsigned int, unsigned int, WTF::IdentityExtractor, WTF::IntHash<unsigned int>, WTF::HashTraits<unsigned int>, WTF::HashTraits<unsigned int> >::add<WTF::IdentityHashTranslator<WTF::IntHash<unsigned int> >, unsigned int, unsigned int>(unsigned int const&, unsigned int const&) + 86 6 webkit_unit_tests 0x001cbb5c WTF::HashTable<unsigned int, unsigned int, WTF::IdentityExtractor, WTF::IntHash<unsigned int>, WTF::HashTraits<unsigned int>, WTF::HashTraits<unsigned int> >::add(unsigned int const&) + 92 7 webkit_unit_tests 0x001cb557 WTF::HashSet<unsigned int, WTF::IntHash<unsigned int>, WTF::HashTraits<unsigned int> >::add(unsigned int const&) + 71 8 webkit_unit_tests 0x0019633e (anonymous namespace)::CompositorFakeWebGraphicsContext3DWithTextureTracking::bindTexture(unsigned int, unsigned int) + 78 9 webkit_unit_tests 0x019c25a7 WebCore::GraphicsContext3DPrivate::bindTexture(unsigned int, unsigned int) + 103 10 webkit_unit_tests 0x019c9f75 WebCore::GraphicsContext3D::bindTexture(unsigned int, unsigned int) + 85 11 webkit_unit_tests 0x02731afd WebCore::LayerRendererChromium::getFramebufferPixels(void*, WebCore::IntRect const&) + 1245 12 webkit_unit_tests 0x027c8383 WebCore::CCLayerTreeHostImpl::readback(void*, WebCore::IntRect const&) + 195 13 webkit_unit_tests 0x027f7fab WebCore::CCThreadProxy::scheduledActionDrawAndSwapInternal(bool) + 1099 14 webkit_unit_tests 0x027f83dc WebCore::CCThreadProxy::scheduledActionDrawAndSwapForced() + 60 15 webkit_unit_tests 0x027f841c non-virtual thunk to WebCore::CCThreadProxy::scheduledActionDrawAndSwapForced() + 28 16 webkit_unit_tests 0x027e36ee WebCore::CCScheduler::processScheduledActions() + 414 17 webkit_unit_tests 0x027e3931 WebCore::CCScheduler::setNeedsForcedRedraw() + 65 18 webkit_unit_tests 0x027f1eee WebCore::CCThreadProxy::requestReadbackOnImplThread(WebCore::CCThreadProxy::ReadbackRequest*) + 334 19 webkit_unit_tests 0x027ff409 WebCore::CCThreadTask1<WebCore::CCThreadProxy, WebCore::CCThreadProxy::ReadbackRequest*, WebCore::CCThreadProxy::ReadbackRequest*>::performTask() + 153 20 webkit_unit_tests 0x019948b6 WebKit::CCThreadTaskAdapter::run() + 70 21 webkit_unit_tests 0x0212f8f4 base::internal::RunnableAdapter<void (WebKit::WebThread::Task::*)()>::Run(WebKit::WebThread::Task*) + 132 22 webkit_unit_tests 0x0212f7f3 base::internal::InvokeHelper<false, void, base::internal::RunnableAdapter<void (WebKit::WebThread::Task::*)()>, void ()(WebKit::WebThread::Task*)>::MakeItSo(base::internal::RunnableAdapter<void (WebKit::WebThread::Task::*)()>, WebKit::WebThread::Task*) + 67 23 webkit_unit_tests 0x0212f72e base::internal::Invoker<1, base::internal::BindState<base::internal::RunnableAdapter<void (WebKit::WebThread::Task::*)()>, void ()(WebKit::WebThread::Task*), void ()(base::internal::OwnedWrapper<WebKit::WebThread::Task>)>, void ()(WebKit::WebThread::Task*)>::Run(base::internal::BindStateBase*) + 110 24 webkit_unit_tests 0x01b36e4b base::Callback<void ()()>::Run() const + 75 25 webkit_unit_tests 0x01ba14be MessageLoop::RunTask(base::PendingTask const&) + 846 26 webkit_unit_tests 0x01ba1861 MessageLoop::DeferOrRunPendingTask(base::PendingTask const&) + 97 27 webkit_unit_tests 0x01ba1a98 MessageLoop::DoWork() + 312 28 webkit_unit_tests 0x01bb24ac base::MessagePumpDefault::Run(base::MessagePump::Delegate*) + 300 29 webkit_unit_tests 0x01ba0e23 MessageLoop::RunInternal() + 291 30 webkit_unit_tests 0x01ba013b MessageLoop::RunHandler() + 43 31 webkit_unit_tests 0x01ba0080 MessageLoop::Run() + 64 32 webkit_unit_tests 0x01c46052 base::Thread::Run(MessageLoop*) + 50 33 webkit_unit_tests 0x01c461ff base::Thread::ThreadMain() + 271 34 webkit_unit_tests 0x01c44436 base::(anonymous namespace)::ThreadFunc(void*) + 134 35 libsystem_c.dylib 0x9585aed9 _pthread_start + 335 36 libsystem_c.dylib 0x9585e6de thread_start + 34 ax: bbadbeef, bx: fc499b63, cx: fc499b63, dx: fc499b63 di: 440d229, si: 440d166, bp: b120a158, sp: b120a110, ss: 23, flags: 10282 ip: 1cc233, cs: 1b, ds: 23, es: 23, fs: 23, gs: f src $
Attachments
Patch
(1.80 KB, patch)
2012-03-27 18:05 PDT
,
James Robinson
no flags
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
James Robinson
Comment 1
2012-03-27 16:42:50 PDT
Interesting!
Nat Duca
Comment 2
2012-03-27 16:51:22 PDT
Its almost as if the code to create a graphics context from a mock started creating real WGC3D contexts instead of just using the passed in mocks.... See this
http://build.chromium.org/p/tryserver.chromium/builders/mac_rel/builds/13411/steps/webkit_unit_tests/logs/stdio
James Robinson
Comment 3
2012-03-27 17:34:22 PDT
This test is failing an ASSERT() in HashSet<WebGLId> since the default traits for numeric types disallow 0 as a value and we're calling bindTexture(0) which is: virtual void bindTexture(WGC3Denum /* target */, WebGLId texture) { m_usedTextures.add(texture); } I'm not sure why this doesn't fail on the bots. Simple fix is to use different traits for this set, or use a different data type (performance here isn't critical).
James Robinson
Comment 4
2012-03-27 18:05:24 PDT
Created
attachment 134187
[details]
Patch
James Robinson
Comment 5
2012-03-27 18:07:55 PDT
This happens only on lion because of the following workaround code in LayerRendererChromium:
http://trac.webkit.org/browser/trunk/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp#L1140
The postamble to this clean does this: 1180 if (doWorkaround) { 1181 // Clean up. 1182 GLC(context, context->bindFramebuffer(GraphicsContext3D::FRAMEBUFFER, 0)); 1183 GLC(context, context->bindTexture(GraphicsContext3D::TEXTURE_2D, 0)); 1184 GLC(context, context->deleteFramebuffer(temporaryFBO)); 1185 GLC(context, context->deleteTexture(temporaryTexture)); 1186 } the bindTexture(..., 0) call is what's dying. This appears to just be cleanup code to make sure the FBO and texture released, but binding texture ID 0 is a pretty valid thing to do.
Adrienne Walker
Comment 6
2012-03-27 18:15:39 PDT
Comment on
attachment 134187
[details]
Patch R=me. Thanks for fixing these Lion tests.
WebKit Review Bot
Comment 7
2012-03-27 19:29:36 PDT
Comment on
attachment 134187
[details]
Patch Clearing flags on attachment: 134187 Committed
r112356
: <
http://trac.webkit.org/changeset/112356
>
WebKit Review Bot
Comment 8
2012-03-27 19:29:40 PDT
All reviewed patches have been landed. Closing bug.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug