Closed
Bug 1267930
Opened 9 years ago
Closed 9 years ago
crash in shutdownhang | `anonymous namespace'::stop_and_join_render_thread(cubeb_stream*)
Categories
(Core :: Audio/Video: cubeb, defect, P1)
Tracking
()
RESOLVED
FIXED
mozilla49
Tracking | Status | |
---|---|---|
firefox49 | --- | fixed |
People
(Reporter: jwwang, Assigned: padenot)
References
Details
(Keywords: crash)
Crash Data
Attachments
(1 file)
This bug was filed from the Socorro interface and is
report bp-621c109e-ea9b-4d66-a979-cafec2160420.
=============================================================
Thread 56
`anonymous namespace'::stop_and_join_render_thread(cubeb_stream*)
Thread 64
`anonymous namespace'::wasapi_stream_render_loop {
mmcss_handle = stm->context->set_mm_thread_characteristics("Audio", &mmcss_task_index);
}
It looks like thread 64 is stuck.
Assignee | ||
Comment 1•9 years ago
|
||
We're blocked on something that should not really block, `set_mm_thread_characteristics`.
A possible solution here would be to not pass in INFINITE in `WaitForSingleObject`. In this case, we're shutting down, so we can leak the thread that's doing `set_mm_thread_characteristics`, it's not really an issue.
Assignee | ||
Comment 2•9 years ago
|
||
It's probably better to not TerminateThread here, because we don't really know
what happened down the stack of the rendering loop, so we just leak it. This
happens during shutdown so it's not really an issue, it's going to be cleaned
up by the OS anyways.
Review commit: https://reviewboard.mozilla.org/r/49213/diff/#index_header
See other reviews: https://reviewboard.mozilla.org/r/49213/
Attachment #8745983 -
Flags: review?(kinetik)
Updated•9 years ago
|
Rank: 12
Priority: -- → P1
Updated•9 years ago
|
Assignee: nobody → padenot
Comment 3•9 years ago
|
||
Comment on attachment 8745983 [details]
MozReview Request: Bug 1267930 - When the wasapi rendering loop is stuck and we're shuttin down, leak the thread and continue the shutdown process. r?kinetik
https://reviewboard.mozilla.org/r/49213/#review46157
::: media/libcubeb/src/cubeb_wasapi.cpp:1183
(Diff revision 1)
> LOG("Destroy SetEvent failed: %d\n", GetLastError());
> }
>
> - DWORD r = WaitForSingleObject(stm->thread, INFINITE);
> + /* Wait one second for the rendering thread to return. It's supposed to check
> + * its event loop very often, one second is rather conservative. */
> + DWORD r = WaitForSingleObject(stm->thread, 1000);
Make it 5s just to be extra safe (and match the 5x1 timeout in the render loop), we generally shouldn't be hitting this so a long but non-infinite timeout is fine.
Attachment #8745983 -
Flags: review?(kinetik) → review+
Comment 4•9 years ago
|
||
Assignee | ||
Comment 6•9 years ago
|
||
(also pushed upstream as 6194d5f4af9722e97084b5292a9f62a7f737a726).
Comment 7•9 years ago
|
||
bugherder |
Status: NEW → RESOLVED
Closed: 9 years ago
status-firefox49:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla49
You need to log in
before you can comment on or make changes to this bug.
Description
•