Closed Bug 1719108 Opened 3 years ago Closed 3 years ago

Intermittent [tier 2] LeakSanitizer | leak at mozilla::CreateMediumHighRunnable, mozilla::image::IDecodingTask::NotifyDecodeComplete, mozilla::image::DecodedSurfaceProvider::FinishDecoding, mozilla::image::DecodedSurfaceProvider::Run

Categories

(Core :: Graphics: ImageLib, defect)

defect

Tracking

()

RESOLVED FIXED
92 Branch
Tracking Status
firefox92 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: tnikkel)

References

(Regressed 1 open bug)

Details

(Keywords: intermittent-failure, Whiteboard: [retriggered][stockwell needswork:owner])

Attachments

(1 file)

Filed by: imoraru [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer?job_id=344309895&repo=mozilla-central
Full log: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/Rck67cjiQiSrROr48r5eew/runs/0/artifacts/public/logs/live_backing.log


[task 2021-07-04T22:31:52.468Z] 22:31:52     INFO - TEST-START | netwerk/test/browser/browser_post_auth.js
[task 2021-07-04T22:31:54.191Z] 22:31:54     INFO - GECKO(13371) | -----------------------------------------------------
[task 2021-07-04T22:31:54.192Z] 22:31:54     INFO - GECKO(13371) | Suppressions used:
[task 2021-07-04T22:31:54.193Z] 22:31:54     INFO - GECKO(13371) |   count      bytes template
[task 2021-07-04T22:31:54.193Z] 22:31:54     INFO - GECKO(13371) |      14        448 nsComponentManagerImpl
[task 2021-07-04T22:31:54.194Z] 22:31:54     INFO - GECKO(13371) |       2        288 libfontconfig.so
[task 2021-07-04T22:31:54.195Z] 22:31:54     INFO - GECKO(13371) | -----------------------------------------------------
<...>
[task 2021-07-04T22:32:19.348Z] 22:32:19     INFO - GECKO(13371) | -----------------------------------------------------
[task 2021-07-04T22:32:19.426Z] 22:32:19     INFO - TEST-INFO | Main app process: exit 0
[task 2021-07-04T22:32:19.428Z] 22:32:19     INFO - TEST-INFO | LeakSanitizer | To show the addresses of leaked objects add report_objects=1 to LSAN_OPTIONS
[task 2021-07-04T22:32:19.429Z] 22:32:19     INFO - TEST-INFO | LeakSanitizer | This can be done in testing/mozbase/mozrunner/mozrunner/utils.py
[task 2021-07-04T22:32:19.430Z] 22:32:19    ERROR - TEST-UNEXPECTED-FAIL | LeakSanitizer | leak at mozilla::CreateMediumHighRunnable, mozilla::image::IDecodingTask::NotifyDecodeComplete, mozilla::image::DecodedSurfaceProvider::FinishDecoding, mozilla::image::DecodedSurfaceProvider::Run
[task 2021-07-04T22:32:19.431Z] 22:32:19    ERROR - TEST-UNEXPECTED-FAIL | LeakSanitizer | leak at NS_NewRunnableFunction, mozilla::image::IDecodingTask::NotifyDecodeComplete, mozilla::image::DecodedSurfaceProvider::FinishDecoding, mozilla::image::DecodedSurfaceProvider::Run
[task 2021-07-04T22:32:19.432Z] 22:32:19    ERROR - TEST-UNEXPECTED-FAIL | LeakSanitizer | leak at already_AddRefed, mozilla::image::SurfaceCacheImpl::ReleaseImageOnMainThread, mozilla::image::SurfaceCache::ReleaseImageOnMainThread, mozilla::image::DecodedSurfaceProvider::Run
[task 2021-07-04T22:32:19.433Z] 22:32:19     INFO - runtests.py | Application ran for: 0:01:10.155459
Component: General → ImageLib

My guess would be that some runnable tried to dispatch to another thread late enough in shutdown, so it failed and we intentionally leaked the runnable.

This looks to have appeared after bug 1714299 landed - link.

Andrew, could you please take a look?

Flags: needinfo?(aosmond)
Whiteboard: [retriggered]

Are we just supposed to check gXPCOMThreadsShutDown before any dispatch which might be after shutdown? I guess imagelib has a ShutdownTracker::ShutdownHasStarted too, not sure which is better.

Flags: needinfo?(continuation)

(In reply to Timothy Nikkel (:tnikkel) from comment #4)

Are we just supposed to check gXPCOMThreadsShutDown before any dispatch which might be after shutdown? I guess imagelib has a ShutdownTracker::ShutdownHasStarted too, not sure which is better.

I don't think that's common, and these sorts of leaks are usually quite rare. I don't know why the frequency is so high for these image runnables. That probably is the easiest fix here.

Flags: needinfo?(continuation)

(In reply to Andrew McCreight [:mccr8] from comment #6)

(In reply to Timothy Nikkel (:tnikkel) from comment #4)

Are we just supposed to check gXPCOMThreadsShutDown before any dispatch which might be after shutdown? I guess imagelib has a ShutdownTracker::ShutdownHasStarted too, not sure which is better.

I don't think that's common, and these sorts of leaks are usually quite rare. I don't know why the frequency is so high for these image runnables. That probably is the easiest fix here.

I think because bug 1714299 landed a test that loads an image and the test happens to run right at the end of the chunk so we are in the middle of decoding the image and shutdown happens very quickly for some reason.

Assignee: nobody → tnikkel
Status: NEW → ASSIGNED
Blocks: 1717647
Blocks: 1719493
Pushed by tnikkel@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/4efdd0314268
Check in a few places in imagelib if it's too late in shutdown to dispatch runnables. r=mccr8
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 92 Branch
Flags: needinfo?(aosmond)
Regressions: 1722422
Regressions: 1856974
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: