FATAL:texture_manager.cc(76)] Check failed: texture_count_ == 0u (1 vs. 0)

Bug #1337506 reported by Chris Coulson on 2014-07-03
18
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Oxide
High
Chris Coulson

Bug Description

I'm hitting this runtime abort occasionally on shutdown:

[0703/194533:FATAL:texture_manager.cc(76)] Check failed: texture_count_ == 0u (1 vs. 0)

Changed in oxide:
status: New → Triaged
importance: Undecided → Medium
importance: Medium → High
Changed in oxide:
milestone: none → branch-1.2
Changed in oxide:
milestone: branch-1.2 → branch-1.3
Chris Coulson (chrisccoulson) wrote :
Changed in oxide:
status: Triaged → Fix Released
Chris Coulson (chrisccoulson) wrote :

Reopened due to bug 1398354

Changed in oxide:
status: Fix Released → Triaged
milestone: branch-1.3 → branch-1.5
Chris Coulson (chrisccoulson) wrote :
Download full text (5.9 KiB)

So, despite us ensuring that the client-side doesn't delete its command buffer as long as we hold a TextureRef (which should keep the service-side command buffer, ContextGroup and associated TextureManager alive, thus preventing this crash), it looks like the service-side gets shut-down before the client-side has cleaned up:

#0 0x00007ffff1348d27 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x00007ffff134a418 in __GI_abort () at abort.c:89
#2 0x00007ffff255ee69 in base::debug::BreakDebugger () at ../../../../third_party/chromium/src/base/debug/debugger_posix.cc:241
#3 0x00007ffff2586ed5 in logging::LogMessage::~LogMessage (this=0x7fffa080a920, __in_chrg=<optimised out>) at ../../../../third_party/chromium/src/base/logging.cc:640
#4 0x00007ffff27272cb in gpu::gles2::TextureManager::~TextureManager (this=0x7fff81400170, __in_chrg=<optimised out>)
    at ../../../../third_party/chromium/src/gpu/command_buffer/service/texture_manager.cc:103
#5 0x00007ffff26c3521 in operator() (this=0x7fff80010268, ptr=0x7fff81400170) at ../../../../third_party/chromium/src/base/memory/scoped_ptr.h:127
#6 reset (p=0x0, this=0x7fff80010268) at ../../../../third_party/chromium/src/base/memory/scoped_ptr.h:247
#7 reset (p=0x0, this=0x7fff80010268) at ../../../../third_party/chromium/src/base/memory/scoped_ptr.h:376
#8 gpu::gles2::ContextGroup::Destroy (this=0x7fff800101f0, decoder=decoder@entry=0x7fff829140e0, have_context=have_context@entry=true)
    at ../../../../third_party/chromium/src/gpu/command_buffer/service/context_group.cc:312
#9 0x00007ffff26f4a84 in gpu::gles2::GLES2DecoderImpl::Destroy (this=0x7fff829140e0, have_context=<optimised out>)
    at ../../../../third_party/chromium/src/gpu/command_buffer/service/gles2_cmd_decoder.cc:3684
#10 0x00007ffff319ae56 in content::GpuCommandBufferStub::Destroy (this=this@entry=0x7fff8140f2f0)
    at ../../../../third_party/chromium/src/content/common/gpu/gpu_command_buffer_stub.cc:437
#11 0x00007ffff319b0e2 in content::GpuCommandBufferStub::~GpuCommandBufferStub (this=this@entry=0x7fff8140f2f0, __in_chrg=<optimised out>)
    at ../../../../third_party/chromium/src/content/common/gpu/gpu_command_buffer_stub.cc:205
#12 0x00007ffff319b2f9 in content::GpuCommandBufferStub::~GpuCommandBufferStub (this=0x7fff8140f2f0, __in_chrg=<optimised out>)
    at ../../../../third_party/chromium/src/content/common/gpu/gpu_command_buffer_stub.cc:209
#13 0x00007ffff319326c in release_all (table=0x7fff8000a530) at ../../../../third_party/chromium/src/base/id_map.h:224
#14 ~IDMap (this=0x7fff8000a4f0, __in_chrg=<optimised out>) at ../../../../third_party/chromium/src/base/id_map.h:53
#15 content::GpuChannel::~GpuChannel (this=this@entry=0x7fff8000a3c0, __in_chrg=<optimised out>) at ../../../../third_party/chromium/src/content/common/gpu/gpu_channel.cc:430
#16 0x00007ffff31934d9 in content::GpuChannel::~GpuChannel (this=0x7fff8000a3c0, __in_chrg=<optimised out>)
    at ../../../../third_party/chromium/src/content/common/gpu/gpu_channel.cc:434
#17 0x00007ffff31950bf in STLDeleteValues<__gnu_cxx::hash_map<int, content::GpuChannel*, base_hash::hash<int>, std::equal_to<int>, std::allocator<std::pai...

Read more...

Changed in oxide:
assignee: nobody → Chris Coulson (chrisccoulson)
status: Triaged → In Progress
Changed in oxide:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers