Closed Bug 1639519 Opened 4 years ago Closed 4 years ago

Perma Linux x64 asan ERROR | LeakSanitizer | SUMMARY: AddressSanitizer: 162192 byte(s) leaked in 1618 allocation(s).

Categories

(Core :: DOM: Security, defect, P5)

defect

Tracking

()

RESOLVED WORKSFORME

People

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

References

(Blocks 1 open bug, Regression)

Details

(Keywords: intermittent-failure, regression, Whiteboard: [domsecurity-intermittent])

Attachments

(1 obsolete file)

Filed by: rmaries [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer.html#?job_id=303056448&repo=autoland
Full log: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/V8uEOrJDRbavbMz7XEBpnw/runs/0/artifacts/public/logs/live_backing.log


[task 2020-05-20T09:18:59.704Z] 09:18:59 INFO - TEST-START | /mixed-content/gen/top.meta/unset/audio-tag.https.html
[task 2020-05-20T09:18:59.733Z] 09:18:59 INFO - Setting pref network.prefetch-next.aggressive (true)
[task 2020-05-20T09:19:00.677Z] 09:19:00 INFO - PID 10875 | -----------------------------------------------------
[task 2020-05-20T09:19:00.677Z] 09:19:00 INFO - PID 10875 | Suppressions used:
[task 2020-05-20T09:19:00.677Z] 09:19:00 INFO - PID 10875 | count bytes template
[task 2020-05-20T09:19:00.677Z] 09:19:00 INFO - PID 10875 | 21 640 nsComponentManagerImpl
[task 2020-05-20T09:19:00.677Z] 09:19:00 INFO - PID 10875 | 633 18083 libfontconfig.so
[task 2020-05-20T09:19:00.677Z] 09:19:00 INFO - PID 10875 | 20 120 libglib-2.0.so
[task 2020-05-20T09:19:00.677Z] 09:19:00 INFO - PID 10875 | 4 832 mozJSComponentLoader
[task 2020-05-20T09:19:00.677Z] 09:19:00 INFO - PID 10875 | -----------------------------------------------------
[task 2020-05-20T09:19:00.816Z] 09:19:00 INFO - Browser exited with return code 0
[task 2020-05-20T09:19:00.816Z] 09:19:00 INFO - PROCESS LEAKS None
[task 2020-05-20T09:19:00.816Z] 09:19:00 INFO - ERROR | LeakSanitizer | SUMMARY: AddressSanitizer: 162192 byte(s) leaked in 1618 allocation(s).
[task 2020-05-20T09:19:00.817Z] 09:19:00 INFO - LeakSanitizer | To show the addresses of leaked objects add report_objects=1 to LSAN_OPTIONS
[task 2020-05-20T09:19:00.817Z] 09:19:00 INFO - This can be done in testing/mozbase/mozrunner/mozrunner/utils.py
[task 2020-05-20T09:19:00.817Z] 09:19:00 INFO - Allowed depth was 4
[task 2020-05-20T09:19:00.818Z] 09:19:00 INFO - TEST-FAIL | LeakSanitizer | leak at Realloc, nsTArray_base, nsTArray_base, nsTArray_Impl

Summary: Intermittent ERROR | LeakSanitizer | SUMMARY: AddressSanitizer: 162192 byte(s) leaked in 1618 allocation(s). → Perma ERROR | LeakSanitizer | SUMMARY: AddressSanitizer: 162192 byte(s) leaked in 1618 allocation(s).
Regressed by: clang-10
Summary: Perma ERROR | LeakSanitizer | SUMMARY: AddressSanitizer: 162192 byte(s) leaked in 1618 allocation(s). → Perma Linux x64 asan ERROR | LeakSanitizer | SUMMARY: AddressSanitizer: 162192 byte(s) leaked in 1618 allocation(s).
Has Regression Range: --- → yes
Keywords: regression

(Moving this from bug 1616692 comment 26, apologies for the duplication)

jgraham: We upgraded CI to clang 10 last week, but had to backout and restore clang 9 yesterday, and that uncovered a LeakSan failure in WPT.

https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=303020348&repo=autoland&lineNumber=7376

Could it be related to bug 1636118, which landed during the period of clang 10? I'm thinking the most likely explanation is that the inlining changed between clang 9 and 10, in such a way that something on the lsan-allowed list no longer matches.

Flags: needinfo?(james)

So the right thing to do sounds like it's updating the allow list. So in the spirit of spreading knowledge about how to do this kind of thing, there's an artifact called wptreport.json which we can use to do the update automatically. So:

Flags: needinfo?(james)

Thanks for the pointer! Would make sense to use the union of the two allow lists, so we don't have to keep toggling as we attempt to re-land clang 10?

The way the update works it's append only, so if it was working under clang 10 before it will keep working after the update.

Looks like the only difference is the addition of RefPtr, which very much looks like an inlining difference from the previously existing MakeRefPtr entry. Just waiting on try builds to verify both compilers are happy and I'll post the patch.

Assignee: nobody → dmajor

FWIW, bisection clearly pointed to bug 1636118.

I'd like to ask, though, why is it fine to have so many leaks?

The most recent change to this file landed during a brief period when clang 10 was used on CI. We've reverted to clang 9, which has changed the inlining such that the previous MakeRefPtr entry now falls under RefPtr. With this change, I've confirmed that the test now passes under both compilers.

Blocks: LSan

(In reply to Mike Hommey [:glandium] from comment #6)

I'd like to ask, though, why is it fine to have so many leaks?

This is probably just one leak. It looks like a networking channel and some other stuff hanging off of it. All existing leaks in WPTs were whitelisted when leak checking was turned on, and I don't think any teams have gone through and systematically fixed their leaks.

Attachment #9150600 - Attachment is obsolete: true

The merge conflict message from lando suggests that this was already addressed in bug 1637486.

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

Attachment

General

Creator:
Created:
Updated:
Size: