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

Bug #1337506 reported by Chris Coulson
18
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Oxide
Fix Released
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
Revision history for this message
Chris Coulson (chrisccoulson) wrote :
Changed in oxide:
status: Triaged → Fix Released
Revision history for this message
Chris Coulson (chrisccoulson) wrote :

Reopened due to bug 1398354

Changed in oxide:
status: Fix Released → Triaged
milestone: branch-1.3 → branch-1.5
Revision history for this message
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  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.