← Back to team overview

ubuntu-webapps-bugs team mailing list archive

[Bug 1442413] Re: Render process deadlock at shutdown

 

** Also affects: oxide/1.7
   Importance: Undecided
       Status: New

** Changed in: oxide/1.7
   Importance: Undecided => High

** Changed in: oxide/1.7
       Status: New => Triaged

-- 
You received this bug notification because you are a member of Ubuntu
WebApps bug tracking, which is subscribed to Oxide.
https://bugs.launchpad.net/bugs/1442413

Title:
  Render process deadlock at shutdown

Status in Oxide Webview:
  Triaged
Status in Oxide 1.7 series:
  Triaged

Bug description:
  Running the tests occasionally leaves deadlocked render processes
  around. Attaching GDB shows the main thread is waiting here:

  Thread 1 (Thread 0x7f8ff2588940 (LWP 18290)):
  #0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
  #1  0x00007f8fee70144b in base::WaitableEvent::TimedWait (this=this@entry=0x7fff1638c2c0, max_time=...) at ../../../../third_party/chromium/src/base/synchronization/waitable_event_posix.cc:214
  #2  0x00007f8fee701504 in base::WaitableEvent::Wait (this=this@entry=0x7fff1638c2c0) at ../../../../third_party/chromium/src/base/synchronization/waitable_event_posix.cc:154
  #3  0x00007f8fef00cab7 in Wait (this=0x7fff1638c2c0) at ../../../../third_party/chromium/src/cc/base/completion_event.h:41
  #4  cc::ThreadProxy::Stop (this=0x2ad0d7361a80) at ../../../../third_party/chromium/src/cc/trees/thread_proxy.cc:621
  #5  0x00007f8feefdb764 in cc::LayerTreeHost::~LayerTreeHost (this=this@entry=0x2ad0d7351400, __in_chrg=<optimised out>) at ../../../../third_party/chromium/src/cc/trees/layer_tree_host.cc:186
  #6  0x00007f8feefdbc49 in cc::LayerTreeHost::~LayerTreeHost (this=0x2ad0d7351400, __in_chrg=<optimised out>) at ../../../../third_party/chromium/src/cc/trees/layer_tree_host.cc:198
  #7  0x00007f8ff108e2a9 in content::RenderWidgetCompositor::~RenderWidgetCompositor (this=0x2ad0d7399140, __in_chrg=<optimised out>) at ../../../../third_party/chromium/src/content/renderer/gpu/render_widget_compositor.cc:478
  #8  0x00007f8ff10fddd3 in operator() (this=0x2ad0d73a4c30, ptr=<optimised out>) at ../../../../third_party/chromium/src/base/memory/scoped_ptr.h:128
  #9  reset (p=0x0, this=0x2ad0d73a4c30) at ../../../../third_party/chromium/src/base/memory/scoped_ptr.h:248
  #10 reset (p=0x0, this=0x2ad0d73a4c30) at ../../../../third_party/chromium/src/base/memory/scoped_ptr.h:377
  #11 content::RenderWidget::Close (this=this@entry=0x2ad0d73a4c00) at ../../../../third_party/chromium/src/content/renderer/render_widget.cc:1575
  #12 0x00007f8ff10fa91a in content::RenderViewImpl::Close (this=0x2ad0d73a4c00) at ../../../../third_party/chromium/src/content/renderer/render_view_impl.cc:3064
  #13 0x00007f8fee6bfaa9 in Run (this=0x7fff1638c5a8) at ../../../../third_party/chromium/src/base/callback.h:396
  #14 base::debug::TaskAnnotator::RunTask (this=this@entry=0x2ad0d735588c, queue_function=queue_function@entry=0x7f8ff14c4f70 "TaskQueueManager::PostTask", run_function=run_function@entry=0x7f8ff14c4feb "TaskQueueManager::RunTask", pending_task=...) at ../../../../third_party/chromium/src/base/debug/task_annotator.cc:63
  #15 0x00007f8ff100da5e in content::TaskQueueManager::ProcessTaskFromWorkQueue (this=this@entry=0x2ad0d7355870, queue_index=<optimised out>, has_previous_task=<optimised out>, previous_task=previous_task@entry=0x7fff1638c650) at ../../../../third_party/chromium/src/content/child/scheduler/task_queue_manager.cc:642
  #16 0x00007f8ff100dc97 in content::TaskQueueManager::DoWork (this=0x2ad0d7355870, posted_from_main_thread=<optimised out>) at ../../../../third_party/chromium/src/content/child/scheduler/task_queue_manager.cc:599
  #17 0x00007f8fee6bfaa9 in Run (this=0x7fff1638c898) at ../../../../third_party/chromium/src/base/callback.h:396
  #18 base::debug::TaskAnnotator::RunTask (this=this@entry=0x2ad0d7388d50, queue_function=queue_function@entry=0x7f8ff14405a1 "MessageLoop::PostTask", run_function=run_function@entry=0x7f8ff14405c0 "MessageLoop::RunTask", pending_task=...) at ../../../../third_party/chromium/src/base/debug/task_annotator.cc:63
  #19 0x00007f8fee6e15a4 in base::MessageLoop::RunTask (this=this@entry=0x2ad0d7388c00, pending_task=...) at ../../../../third_party/chromium/src/base/message_loop/message_loop.cc:445
  #20 0x00007f8fee6e1881 in base::MessageLoop::DeferOrRunPendingTask (this=this@entry=0x2ad0d7388c00, pending_task=...) at ../../../../third_party/chromium/src/base/message_loop/message_loop.cc:454
  #21 0x00007f8fee6e1d7b in base::MessageLoop::DoWork (this=0x2ad0d7388c00) at ../../../../third_party/chromium/src/base/message_loop/message_loop.cc:566
  #22 0x00007f8fee6e23d9 in base::MessagePumpDefault::Run (this=0x2ad0d735aa20, delegate=0x2ad0d7388c00) at ../../../../third_party/chromium/src/base/message_loop/message_pump_default.cc:32
  #23 0x00007f8fee6f47f8 in base::RunLoop::Run (this=this@entry=0x7fff1638ca40) at ../../../../third_party/chromium/src/base/run_loop.cc:55
  #24 0x00007f8fee6de5b5 in base::MessageLoop::Run (this=<optimised out>) at ../../../../third_party/chromium/src/base/message_loop/message_loop.cc:303
  #25 0x00007f8ff110de5a in content::RendererMain (parameters=...) at ../../../../third_party/chromium/src/content/renderer/renderer_main.cc:220
  #26 0x00007f8ff0fb3fa0 in content::RunZygote (main_function_params=..., delegate=0x7fff1638ce70) at ../../../../third_party/chromium/src/content/app/content_main_runner.cc:307
  #27 0x00007f8ff0fb433a in content::ContentMainRunnerImpl::Run (this=0x2ad0d73562d0) at ../../../../third_party/chromium/src/content/app/content_main_runner.cc:775
  #28 0x00007f8ff0fb2db1 in content::ContentMain (params=...) at ../../../../third_party/chromium/src/content/app/content_main.cc:19
  #29 0x00007f8fee66f6dc in oxide::OxideMain (params=...) at ../../../../shared/app/oxide_main.cc:33
  #30 0x00007f8fee650567 in oxide::qt::OxideMain (argc=5, argv=0x7fff1638cff8, release_free_memory_function=<optimised out>) at ../../../../qt/core/app/oxide_qt_main.cc:40
  #31 0x00007f8fed4a0ec5 in __libc_start_main (main=0x4022f0 <main(int, char const**)>, argc=5, argv=0x7fff1638cff8, init=<optimised out>, fini=<optimised out>, rtld_fini=<optimised out>, stack_end=0x7fff1638cfe8) at libc-start.c:287
  #32 0x0000000000402561 in _start ()

  The main thread is blocked on the compositor impl thread, which
  appears to be stuck in a sync call to the now non-existant GPU
  service:

  Thread 3 (Thread 0x7f8fdc1ff700 (LWP 18305)):
  #0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
  #1  0x00007f8fee7021a8 in base::WaitableEvent::WaitMany (raw_waitables=raw_waitables@entry=0x7f8fdc1fe630, count=count@entry=2) at ../../../../third_party/chromium/src/base/synchronization/waitable_event_posix.cc:276
  #2  0x00007f8fef31d125 in IPC::SyncMessageFilter::Send (this=0x2ad0d7355b40, message=0x2ad0d76369b0) at ../../../../third_party/chromium/src/ipc/ipc_sync_message_filter.cc:59
  #3  0x00007f8ff0fc2294 in content::ChildThreadImpl::AllocateSharedMemory (buf_size=<optimised out>, sender=0x2ad0d735a720) at ../../../../third_party/chromium/src/content/child/child_thread_impl.cc:573
  #4  0x00007f8ff10df300 in HostAllocateSharedMemoryBuffer (size=<optimised out>, this=<optimised out>) at ../../../../third_party/chromium/src/content/renderer/render_thread_impl.cc:1147
  #5  content::RenderThreadImpl::AllocateSharedMemory (this=<optimised out>, size=<optimised out>) at ../../../../third_party/chromium/src/content/renderer/render_thread_impl.cc:1465
  #6  0x00007f8feeb061a9 in content::CommandBufferProxyImpl::CreateTransferBuffer (this=0x2ad0d73906c0, size=1048576, id=0x7f8fdc1fe78c) at ../../../../third_party/chromium/src/content/common/gpu/client/command_buffer_proxy_impl.cc:309
  #7  0x00007f8fef010e1b in gpu::CommandBufferHelper::AllocateRingBuffer (this=0x2ad0d73e6600) at ../../../../third_party/chromium/src/gpu/command_buffer/client/cmd_buffer_helper.cc:99
  #8  0x00007f8fef0113e8 in gpu::CommandBufferHelper::WaitForAvailableEntries (this=this@entry=0x2ad0d73e6600, count=count@entry=1) at ../../../../third_party/chromium/src/gpu/command_buffer/client/cmd_buffer_helper.cc:254
  #9  0x00007f8fef60ceea in gpu::CommandBufferHelper::GetSpace (this=0x2ad0d73e6600, entries=1) at ../../../../third_party/chromium/src/gpu/command_buffer/client/cmd_buffer_helper.h:127
  #10 0x00007f8fef616d93 in GetCmdSpace<gpu::gles2::cmds::Finish> (this=<optimised out>) at ../../../../third_party/chromium/src/gpu/command_buffer/client/cmd_buffer_helper.h:163
  #11 Finish (this=<optimised out>) at ../../../../third_party/chromium/src/gpu/command_buffer/client/gles2_cmd_helper_autogen.h:576
  #12 gpu::gles2::GLES2Implementation::FinishHelper (this=0x2ad0d73cdc00) at ../../../../third_party/chromium/src/gpu/command_buffer/client/gles2_implementation.cc:906
  #13 0x00007f8fef00a226 in cc::ThreadProxy::FinishGLOnImplThread (this=0x2ad0d7361a80, completion=0x7fff1638c2c0) at ../../../../third_party/chromium/src/cc/trees/thread_proxy.cc:1250
  #14 0x00007f8fee6bfaa9 in Run (this=0x7f8fdc1fead8) at ../../../../third_party/chromium/src/base/callback.h:396
  #15 base::debug::TaskAnnotator::RunTask (this=this@entry=0x2ad0d750ced0, queue_function=queue_function@entry=0x7f8ff14405a1 "MessageLoop::PostTask", run_function=run_function@entry=0x7f8ff14405c0 "MessageLoop::RunTask", pending_task=...) at ../../../../third_party/chromium/src/base/debug/task_annotator.cc:63
  #16 0x00007f8fee6e15a4 in base::MessageLoop::RunTask (this=this@entry=0x2ad0d750cd80, pending_task=...) at ../../../../third_party/chromium/src/base/message_loop/message_loop.cc:445
  #17 0x00007f8fee6e1881 in base::MessageLoop::DeferOrRunPendingTask (this=this@entry=0x2ad0d750cd80, pending_task=...) at ../../../../third_party/chromium/src/base/message_loop/message_loop.cc:454
  #18 0x00007f8fee6e1d7b in base::MessageLoop::DoWork (this=0x2ad0d750cd80) at ../../../../third_party/chromium/src/base/message_loop/message_loop.cc:566
  #19 0x00007f8fee6e23d9 in base::MessagePumpDefault::Run (this=0x2ad0d73ed6a0, delegate=0x2ad0d750cd80) at ../../../../third_party/chromium/src/base/message_loop/message_pump_default.cc:32
  #20 0x00007f8fee6f47f8 in base::RunLoop::Run (this=this@entry=0x7f8fdc1fec80) at ../../../../third_party/chromium/src/base/run_loop.cc:55
  #21 0x00007f8fee6de5b5 in base::MessageLoop::Run (this=<optimised out>) at ../../../../third_party/chromium/src/base/message_loop/message_loop.cc:303
  #22 0x00007f8fee70e505 in Run (message_loop=<optimised out>, this=0x2ad0d74dcb80) at ../../../../third_party/chromium/src/base/threading/thread.cc:185
  #23 base::Thread::ThreadMain (this=0x2ad0d74dcb80) at ../../../../third_party/chromium/src/base/threading/thread.cc:239
  #24 0x00007f8fee70ad1f in base::(anonymous namespace)::ThreadFunc (params=<optimised out>) at ../../../../third_party/chromium/src/base/threading/platform_thread_posix.cc:77
  #25 0x00007f8fed84b0a5 in start_thread (arg=0x7f8fdc1ff700) at pthread_create.c:309
  #26 0x00007f8fed578cfd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

To manage notifications about this bug go to:
https://bugs.launchpad.net/oxide/+bug/1442413/+subscriptions


References