App using Oxide and QtWebKit hangs on exit
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Oxide |
Won't Fix
|
Medium
|
Unassigned |
Bug Description
The app Beru (https:/
Breaking the execution in GDB at this point seems to indicate that the main loop is in Oxide code. I've attached traces both with and without the Oxide debug symbols. They look similar, but are slightly different.
A very odd thing is that, if I continue the execution in GDB, the program exits normally. But it will never exit before it is interrupted or if it isn't running under GDB.
Please let me know if there's any further debugging I can do. I haven't yet been able to make a test case that exhibits the hang.
The main thread is blocked on waiting for the sandbox IPC helper thread to exit:
#0 0x00007ffff4b9d66b in pthread_join (threadid= 140736733370112 , return= 0x0) at pthread_join.c:92 hread:: Join (thread_handle=...) ./../third_ party/chromium/ src/base/ threading/ platform_ thread_ posix.cc: 235 ead::Join (this=0x9fd410) ./../third_ party/chromium/ src/base/ threading/ simple_ thread. cc:41 :RenderSandboxH ostLinux: :~RenderSandbox HostLinux (this=0x9f30a0, __in_chrg= <optimized out>) ./../third_ party/chromium/ src/content/ browser/ renderer_ host/render_ sandbox_ host_linux. cc:70 ./../third_ party/chromium/ src/base/ memory/ singleton. h:59 content: :RenderSandboxH ostLinux, DefaultSingleto nTraits< content: :RenderSandboxH ostLinux> , content: :RenderSandboxH ostLinux> ::OnExit () ./../third_ party/chromium/ src/base/ memory/ singleton. h:281 fd7e0) ./../third_ party/chromium/ src/base/ callback. h:401 ager::ProcessCa llbacksNow () ./../third_ party/chromium/ src/base/ at_exit. cc:72 ager::~ AtExitManager (this=0x9e17b0, chrg=<optimized out>) ./../third_ party/chromium/ src/base/ at_exit. cc:40 ./../third_ party/chromium/ src/base/ memory/ scoped_ ptr.h:137 ./../third_ party/chromium/ src/base/ memory/ scoped_ ptr.h:246 ./../third_ party/chromium/ src/base/ memory/ scoped_ ptr.h:367 :ContentMainRun nerImpl: :Shutdown (this=0x9e16f0) ./../third_ party/chromium/ src/content/ app/content_ main_runner. cc:790 BrowserProcessM ainImpl: :ShutdownIntern al ( 0x7fffbbfb5260 <oxide::(anonymous namespace) ::GetInstance( )::g_instance> ) at ../../. ./../shared/ browser/ oxide_browser_ process_ main.cc: 154 post_routines( ) () x86_64- linux-gnu/ libQt5Core. so.5 :~QApplication( ) () x86_64- linux-gnu/ libQt5Widgets. so.5 0x7fffffffdf28, init=<optimized out>, fini=<optimized out>, fini=<optimized out>, stack_end= 0x7fffffffdf18) at libc-start.c:287
thread_
#1 0x00007fffb866f56f in base::PlatformT
at ../../.
#2 0x00007fffb8672e01 in base::SimpleThr
at ../../.
#3 0x00007fffba8b9da4 in content:
at ../../.
#4 0x00007fffba8b9e75 in Delete (x=0x9f30a0)
at ../../.
#5 Singleton<
at ../../.
#6 0x00007fffb86156db in Run (this=0x7ffffff
at ../../.
#7 base::AtExitMan
at ../../.
#8 0x00007fffb8615784 in base::AtExitMan
__in_
at ../../.
#9 0x00007fffb8df74e7 in operator() (this=0x9e1730, ptr=0x9e17b0)
at ../../.
---Type <return> to continue, or q <return> to quit---
#10 reset (p=0x0, this=0x9e1730)
at ../../.
#11 reset (p=0x0, this=0x9e1730)
at ../../.
#12 content:
at ../../.
#13 0x00007fffb85dce84 in oxide::
this=
#14 0x00007ffff5f936a0 in qt_call_
from /usr/lib/
#15 0x00007ffff6b58966 in QApplication:
from /usr/lib/
#16 0x00000000004041b3 in ?? ()
#17 0x00007ffff537dec5 in __libc_start_main (main=0x4038d0, argc=5,
argv=
rtld_
#18 0x00000000004064e7 in ?? ()
But the sandbox IPC helper thread is still waiting for events:
#0 0x00007ffff5449c6d in poll () at ../sysdeps/ unix/syscall- template. S:81 fcc80) x86_64- linux-gnu/ bits/poll2. h:46 :SandboxIPCHand ler::Run (this=0x9f3100) ./../third_ party/chromium/ src/content/ browser/ renderer_ host/sandbox_ ipc_linux. cc:159
#1 0x00007fffba8d684a in poll (__timeout=-1, __nfds=2, __fds=0x7fffd2f
at /usr/include/
#2 content:
at ../../.
#3 0x00007fffb8672dae in base::Delegate...