Closed Bug 1353893 Opened 7 years ago Closed 7 years ago

Leak in mozilla::net::nsStreamLoader::WriteSegmentFun while running fetch tests

Categories

(Core :: DOM: Core & HTML, defect)

defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME
Tracking Status
firefox54 --- unaffected
firefox55 + fixed

People

(Reporter: mccr8, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: memory-leak, regression, Whiteboard: [MemShrink:P1])

At some point in 55, this leak started showing up:

==1728==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 14592 byte(s) in 104 object(s) allocated from:
    #0 0x4bb79c in malloc /builds/slave/moz-toolchain/src/llvm/projects/compiler-rt/lib/asan/asan_malloc_linux.cc:64:3
    #1 0x7f495866fb65 in maybe_pod_malloc<unsigned char> /home/worker/workspace/build/src/obj-firefox/dist/include/mozilla/AllocPolicy.h:80:28
    #2 0x7f495866fb65 in pod_malloc<unsigned char> /home/worker/workspace/build/src/obj-firefox/dist/include/mozilla/AllocPolicy.h:101
    #3 0x7f495866fb65 in convertToHeapStorage /home/worker/workspace/build/src/obj-firefox/dist/include/mozilla/Vector.h:936
    #4 0x7f495866fb65 in mozilla::Vector<unsigned char, 0ul, mozilla::MallocAllocPolicy>::growStorageBy(unsigned long) /home/worker/workspace/build/src/obj-firefox/dist/include/mozilla/Vector.h:1027
    #5 0x7f4958aefb58 in append<char> /home/worker/workspace/build/src/obj-firefox/dist/include/mozilla/Vector.h:1353:9
    #6 0x7f4958aefb58 in append<char> /home/worker/workspace/build/src/obj-firefox/dist/include/mozilla/Vector.h:1414
    #7 0x7f4958aefb58 in mozilla::net::nsStreamLoader::WriteSegmentFun(nsIInputStream*, void*, char const*, unsigned int, unsigned int, unsigned int*) /home/worker/workspace/build/src/netwerk/base/nsStreamLoader.cpp:137
    #8 0x7f4958822d5c in nsPipeInputStream::ReadSegments(nsresult (*)(nsIInputStream*, void*, char const*, unsigned int, unsigned int, unsigned int*), void*, unsigned int, unsigned int*) /home/worker/workspace/build/src/xpcom/io/nsPipe3.cpp:1431:12
    #9 0x7f4958af004f in mozilla::net::nsStreamLoader::OnDataAvailable(nsIRequest*, nsISupports*, nsIInputStream*, unsigned long, unsigned int) /home/worker/workspace/build/src/netwerk/base/nsStreamLoader.cpp:153:17

The LSan test harness integration broke at some point, so I'm not sure when exactly. This is happening in dom/tests/mochitest/fetch/. I'll try running this locally to get a bigger stack and try to narrow it down to particular tests.
[Tracking Requested - why for this release]: leak regression.
The rest of the stack looks like:
#10 0x7f7403bebbdd in nsInputStreamPump::OnStateTransfer() /home/amccreight/mc/netwerk/base/nsInputStreamPump.cpp:601:22
#11 0x7f7403beab4e in nsInputStreamPump::OnInputStreamReady(nsIAsyncInputStream*) /home/amccreight/mc/netwerk/base/nsInputStreamPump.cpp:429:25
#12 0x7f7403a17951 in nsInputStreamReadyEvent::Run() /home/amccreight/mc/xpcom/io/nsStreamUtils.cpp:96:9

etc. so not that useful.

Two tests in this directory leak:
  test_formdataparsing.html
  test_formdataparsing_sw_reroute.html
Andrea, it looks like you've worked on files in this directory most recently (the tests are old). Can you investigate this leak, please? Thanks.
Flags: needinfo?(amarchesini)
Whiteboard: [MemShrink]
Whiteboard: [MemShrink] → [MemShrink:P1]
Tracking 55+ for this leak regression.
Bisecting on tree herder, the leak seems to have been introduced on this push:
  https://treeherder.mozilla.org/#/jobs?repo=mozilla-central&revision=03d602fd723ad6ff4588c04855884ffa1dee9410&filter-searchStr=asan

I think the most likely culprit there is bug 1325942. I'll confirm locally.
Blocks: 1325942
Yeah I have confirmed locally that that the patch in that bug is causing the LSan regression.
Flags: needinfo?(amarchesini)
Should be fixed by backout, and LSan checking is going to be reenabled soon.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → WORKSFORME
Component: DOM → DOM: Core & HTML
You need to log in before you can comment on or make changes to this bug.