Worker threads never exit (or their exit_handler is not called)
Categories
(Core :: Graphics: WebRender, defect)
Tracking
()
People
(Reporter: mozbugz, Unassigned)
References
(Blocks 1 open bug)
Details
Working on some Gecko Profiler changes, I noticed that worker threads with names like "WRWorker#1" or "WRWorkerLP#0" were registered with the profiler, but they never got UNregistered when closing Firefox.
This is visible as leaks when I add some leak-checking code in the new profiler thread registration objects:
https://treeherder.mozilla.org/jobs?repo=try&group_state=expanded&selectedTaskRun=ZQt0bsiFR_ayDj3dubvyZQ.0&revision=7499542bc4da139e2a0c271214b412d7e1ba6ff7
Or locally, MOZ_LOG=prof:4 ./mach run 2>&1 | tee
(on Windows 10) shows a few registrations like:
[GPU 31884: Unnamed thread 1fc7248e400]: D/prof [31884] profiler_register_thread(WRWorker#1)
[GPU 31884: Unnamed thread 1fc7248ec00]: D/prof [31884] profiler_register_thread(WRWorker#2)
But no corresponding unregistrations when I cleanly close Firefox.
I believe these should be called from the workers' exit_handler
.
If the handlers are not called when they should, please fix. 😁
But if the issue is that these worker threads are never actually terminated before the end of the process for any reason, please feel free to WONTFIX. (In this case, I could have a special profiler-registration for these, which would know that they may never be properly unregistered.)
Reporter | ||
Updated•3 years ago
|
Description
•