Open Bug 1727253 Opened 3 years ago Updated 6 months ago

Worker threads never exit (or their exit_handler is not called)

Categories

(Core :: Graphics: WebRender, defect)

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.)

Summary: Worker threads' never exit (or their exit_handler is not called) → Worker threads never exit (or their exit_handler is not called)

Changing severity to S4 because of no impact to users.

Severity: -- → S4
Blocks: wr-todos
You need to log in before you can comment on or make changes to this bug.