Closed Bug 1118210 Opened 9 years ago Closed 3 years ago

TaskTracer: FakeTracedTask created and used on different thread

Categories

(Core :: Gecko Profiler, defect)

defect
Not set
normal

Tracking

()

RESOLVED WONTFIX

People

(Reporter: kanru, Assigned: shelly)

References

Details

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 6480.6532]
0xb54e707e in mozilla::tasktracer::FakeTracedTask::AddRef (this=0xaedaedc0) at ../../../gecko/tools/profiler/TracedTaskCommon.h:78
78        NS_INLINE_DECL_REFCOUNTING(FakeTracedTask)
(gdb) p this->_mOwningThread 
$2 = {
  mThread = 0xb0af5e80
}
(gdb) p PR_GetCurrentThread()
$3 = (PRThread *) 0xb17c6a80
(gdb) info threads 
(gdb) info threads 
  Id   Target Id         Frame 
  42   Thread 6480.6566  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:39
  41   Thread 6480.6565  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:39
  40   Thread 6480.6564  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:39
  39   Thread 6480.6563  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:39
  38   Thread 6480.6562  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:39
  37   Thread 6480.6561  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:39
  36   Thread 6480.6559  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:39
  35   Thread 6480.6558  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:39
  34   Thread 6480.6557  __ioctl () at bionic/libc/arch-arm/syscalls/__ioctl.S:9
  33   Thread 6480.6555  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:39
  32   Thread 6480.6553  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:39
  31   Thread 6480.6551  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:39
  30   Thread 6480.6550  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:39
  29   Thread 6480.6549  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:39
  28   Thread 6480.6548  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:39
  27   Thread 6480.6547  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:40
  26   Thread 6480.6546  0xb6f11480 in pow2_ceil (x=2048) at ../../../gecko/memory/mozjemalloc/jemalloc.c:1887
  25   Thread 6480.6545  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:39
  24   Thread 6480.6544  epoll_wait () at bionic/libc/arch-arm/syscalls/epoll_wait.S:10
  23   Thread 6480.6543  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:39
  22   Thread 6480.6541  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:39
  21   Thread 6480.6540  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:39
  20   Thread 6480.6539  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:39
  19   Thread 6480.6531  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:39
  18   Thread 6480.6530  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:39
  17   Thread 6480.6528  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:39
  16   Thread 6480.6527  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:39
  15   Thread 6480.6523  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:39
  14   Thread 6480.6522  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:39
  13   Thread 6480.6521  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:39
  12   Thread 6480.6520  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:39
  11   Thread 6480.6519  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:39
  10   Thread 6480.6518  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:39
  9    Thread 6480.6517  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:39
  8    Thread 6480.6516  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:39
  7    Thread 6480.6515  0xffff0520 in ?? ()
  6    Thread 6480.6514  epoll_wait () at bionic/libc/arch-arm/syscalls/epoll_wait.S:10
  5    Thread 6480.6508  __ioctl () at bionic/libc/arch-arm/syscalls/__ioctl.S:9
  4    Thread 6480.6503  __ioctl () at bionic/libc/arch-arm/syscalls/__ioctl.S:9
* 3    Thread 6480.6532  0xb54e707e in mozilla::tasktracer::FakeTracedTask::AddRef (this=0xaedaedc0) at ../../../gecko/tools/profiler/TracedTaskCommon.h:78
  2    Thread 6480.6542  __futex_syscall3 () at bionic/libc/arch-arm/bionic/futex_arm.S:39
  1    Thread 6480.6480  0xb585d014 in IsInsideNursery (cell=0xb137caf0) at ../../dist/include/js/HeapAPI.h:314
(gdb) p *(PRThread*) $2.mThread
$9 = {
  state = 2, 
  priority = PR_PRIORITY_NORMAL, 
  arg = 0xb124b7a0, 
  startFunc = 0xb434ede5 <nsThread::ThreadFunc(void*)>, 
  stack = 0xb0a7cca0, 
  environment = 0x0, 
  dump = 0x0, 
  dumpArg = 0x0, 
  tpdLength = 128, 
  privateData = 0xb0a63c00, 
  errorCode = 0, 
  osErrorCode = 0, 
  errorStringLength = 0, 
  errorStringSize = 0, 
  errorString = 0x0, 
  name = 0xb0abaaf0 "DOM Worker", 
  id = -1196614000, 
  idSet = 1, 
  tid = 6543, 
  okToDelete = 0, 
  waiting = 0xb0aba7a0, 
  sp = 0x0, 
  next = 0xb0245d80, 
  prev = 0xb0a9c900, 
  suspend = 0, 
  suspendResumeMutex = {
    value = 0
  }, 
  suspendResumeCV = {
    value = 0
  }, 
  interrupt_blocked = 0, 
  syspoll_list = 0x0, 
  syspoll_count = 0
}
Blocks: 995058
Boot continues if I remove aTimer->DispatchTracedTask() from TimerThread::AddTimerInternal
backtrace

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 9283.9343]
0xb54e707e in mozilla::tasktracer::FakeTracedTask::AddRef (this=0xadf40550) at ../../../gecko/tools/profiler/TracedTaskCommon.h:78
78        NS_INLINE_DECL_REFCOUNTING(FakeTracedTask)
(gdb) bt
#0  0xb54e707e in mozilla::tasktracer::FakeTracedTask::AddRef (this=0xadf40550) at ../../../gecko/tools/profiler/TracedTaskCommon.h:78
#1  0xb54e936a in nsRefPtr (aRawPtr=<optimized out>, this=0xb1017b4c) at ../../../gecko/xpcom/base/nsRefPtr.h:92
#2  mozilla::tasktracer::AutoRunFakeTracedTask::AutoRunFakeTracedTask (this=0xb1017b4c, aFakeTracedTask=<optimized out>) at ../../../gecko/tools/profiler/TracedTaskCommon.cpp:127
#3  0xb4350256 in nsTimerImpl::Fire (this=0xaf82d9c0) at ../../../gecko/xpcom/threads/nsTimerImpl.cpp:576
#4  0xb435031e in nsTimerEvent::Run (this=0xb01cc050) at ../../../gecko/xpcom/threads/nsTimerImpl.cpp:724
#5  0xb501b23e in (anonymous namespace)::TimerThreadEventTarget::Dispatch (this=0xaf856cc0, aRunnable=0xb01cc050, aFlags=0) at ../../../gecko/dom/workers/WorkerPrivate.cpp:1372
#6  0xb434fbec in nsTimerImpl::PostTimerEvent (aTimerRef=...) at ../../../gecko/xpcom/threads/nsTimerImpl.cpp:781
#7  0xb434fdf8 in TimerThread::Run (this=0xb6a5c0b0) at ../../../gecko/xpcom/threads/TimerThread.cpp:278
#8  0xb54e71c2 in mozilla::tasktracer::TracedRunnable::Run (this=0xb12206a0) at ../../../gecko/tools/profiler/TracedTaskCommon.cpp:77
#9  0xb434e208 in nsThread::ProcessNextEvent (this=0xb6afebe0, aMayWait=<optimized out>, aResult=0xb1017cf7) at ../../../gecko/xpcom/threads/nsThread.cpp:855
#10 0xb43629c8 in NS_ProcessNextEvent (aThread=0xb6afebe0, aMayWait=aMayWait@entry=false) at /home/kanru/mozilla/B2G-nexus4/gecko/xpcom/glue/nsThreadUtils.cpp:265
#11 0xb451667c in mozilla::ipc::MessagePumpForNonMainThreads::Run (this=0xb1220640, aDelegate=0xb6a556a0) at ../../../gecko/ipc/glue/MessagePump.cpp:339
#12 0xb45030b8 in MessageLoop::RunInternal (this=this@entry=0xb6a556a0) at ../../../gecko/ipc/chromium/src/base/message_loop.cc:233
#13 0xb45030d2 in RunHandler (this=0xb6a556a0) at ../../../gecko/ipc/chromium/src/base/message_loop.cc:226
#14 MessageLoop::Run (this=this@entry=0xb6a556a0) at ../../../gecko/ipc/chromium/src/base/message_loop.cc:200
#15 0xb434eea0 in nsThread::ThreadFunc (aArg=0xb6afebe0) at ../../../gecko/xpcom/threads/nsThread.cpp:356
#16 0xb69a099a in _pt_root (arg=0xb17bea80) at ../../../../../gecko/nsprpub/pr/src/pthreads/ptthread.c:212
#17 0xb6edb174 in __thread_entry (func=0xb69a0901 <_pt_root>, arg=0xb17bea80, tls=0xb1017dd0) at bionic/libc/bionic/pthread_create.cpp:105
#18 0xb6edb30c in pthread_create (thread_out=0xb192da54, attr=<optimized out>, start_routine=0xb69a0901 <_pt_root>, arg=0x78) at bionic/libc/bionic/pthread_create.cpp:224
#19 0x00000000 in ?? ()
The fix for bug 1113562 should also fix this crash. Leave this bug open and assign to Shelly to have this crash checked before lading bug 1113562.
Assignee: nobody → slin
Depends on: 1113562

Task Tracer was removed in bug 1715257.

Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.