Closed
Bug 764342
Opened 13 years ago
Closed 11 years ago
OOM crash in nsSegmentedBuffer::AppendNewSegment
Categories
(Core :: XPCOM, defect)
Tracking
()
RESOLVED
DUPLICATE
of bug 943511
People
(Reporter: scoobidiver, Unassigned)
References
Details
(Keywords: crash, regression)
Crash Data
Attachments
(1 file)
12.26 KB,
application/octet-stream
|
Details |
It's #103 top browser crasher in 13.0.
On Mac, it's #16 top browser crasher in 13.0 and #23 in 14.0b6.
It first appeared on Windows in 13.0a1/20120306. The regression range is:
http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=433cfbd2a0da&tochange=7d0d1108a14e
According to comments, it's related to logging into websites.
Signature TouchBadMemory | mozalloc_abort | mozalloc_handle_oom | moz_xmalloc | nsSegmentedBuffer::AppendNewSegment More Reports Search
UUID 0578441c-a8e0-4cb3-a1a7-c2a4a2120608
Date Processed 2012-06-08 01:16:30
Uptime 24
Last Crash 1.1 minutes before submission
Install Age 3.8 hours since version was first installed.
Install Time 2012-06-07 21:24:47
Product Firefox
Version 13.0
Build ID 20120601045813
Release Channel release
OS Mac OS X
OS Version 10.5.8 9L31a
Build Architecture x86
Build Architecture Info family 6 model 23 stepping 6
Crash Reason EXC_BAD_ACCESS / KERN_PROTECTION_FAILURE
Crash Address 0x0
User Comments Good evening. I login to any website and firefox crashes. I was on a government site and it tried to go to a link and got stuck trying to process the command. Thank you for your help.
App Notes
AdapterVendorID: 0x8086, AdapterDeviceID: 0x2a02
EMCheckCompatibility True
OOMAllocationSize 4096
Bugzilla - Report this bug in Firefox, Core, Plug-Ins, or Toolkit
Crashing Thread
Frame Module Signature Source
0 libmozalloc.dylib TouchBadMemory memory/mozalloc/mozalloc_abort.cpp:68
1 libmozalloc.dylib mozalloc_abort memory/mozalloc/mozalloc_abort.cpp:89
2 libmozalloc.dylib mozalloc_handle_oom memory/mozalloc/mozalloc_oom.cpp:60
3 libmozalloc.dylib moz_xmalloc memory/mozalloc/mozalloc.cpp:105
4 XUL nsSegmentedBuffer::AppendNewSegment xpcom/io/nsSegmentedBuffer.cpp:103
5 XUL nsStorageStream::Write xpcom/io/nsStorageStream.cpp:195
6 XUL nsInputStreamTeeWriteEvent::Run xpcom/io/nsInputStreamTee.cpp:130
7 XUL nsThread::ProcessNextEvent xpcom/threads/nsThread.cpp:657
8 XUL NS_ProcessNextEvent_P obj-firefox/i386/xpcom/build/nsThreadUtils.cpp:245
9 XUL nsThread::ThreadFunc xpcom/threads/nsThread.cpp:289
10 libnspr4.dylib _pt_root nsprpub/pr/src/pthreads/ptthread.c:187
11 libSystem.B.dylib _pthread_start
12 libSystem.B.dylib thread_start
More reports at:
https://crash-stats.mozilla.com/report/list?signature=mozalloc_abort%28char+const*+const%29+|+mozalloc_handle_oom%28unsigned+int%29+|+moz_xmalloc+|+nsSegmentedBuffer%3A%3AAppendNewSegment%28%29
https://crash-stats.mozilla.com/report/list?signature=TouchBadMemory+|+mozalloc_abort+|+mozalloc_handle_oom+|+moz_xmalloc+|+nsSegmentedBuffer%3A%3AAppendNewSegment
Comment 1•13 years ago
|
||
I had a custom socorro report run on the allocation sizes here, see bug 766230 attachment 634544 [details] for the raw data, but basically we're aborting on allocations which are in the typical case 32k, sometimes as small as 256 bytes and sometimes as large as 131k. In all cases the reported available memory (both physical and virtual) is well above any threshold for likely "real" OOM. This indicates probable memory corruption, but since these are large allocations they would be in the "medium" allocator, not the "small" bucket allocator.
The only thing that looked at all obviously suspicious to me in the regression range was bug 729940 (better hash functions), but if I'm reading it correctly that landed, was backed out, landed, and was backed out again all within that period, leaving it out at the end.
There's also Bug 468275 - Fix mis-use of _ogg_free on allocation error path, r=kinetik but that only affects libtheora which basically makes it irrelevant, at least unless we have video on firstrun pages or something like that which could be tickling something.
Comment 2•13 years ago
|
||
(In reply to Benjamin Smedberg [:bsmedberg] from comment #1)
> There's also Bug 468275 - Fix mis-use of _ogg_free on allocation error path,
> r=kinetik but that only affects libtheora which basically makes it
> irrelevant, at least unless we have video on firstrun pages or something
> like that which could be tickling something.
I'm pretty sure it's not bug 468275. If the un-patched code path had ever been executed, it would have segfaulted immediately.
Reporter | ||
Comment 6•13 years ago
|
||
The reporter of bug 778704 can reproduce the crash with a private file.
Does anyone know the max filesize of an attachment? I've produced an obfuscated (images scrambled and text replaced) version of one of the documents that will reproduce the crash, but it's 3.5GB.
Comment 8•13 years ago
|
||
(In reply to tcleghorn from comment #7)
> Does anyone know the max filesize of an attachment? I've produced an
> obfuscated (images scrambled and text replaced) version of one of the
> documents that will reproduce the crash, but it's 3.5GB.
10mb. :)
Ouch. So a zip split to 350 volumes, then..? I kid, I'll sort some external hosting out :)
Comment 10•13 years ago
|
||
Did you generate the file using a script? Perhaps just attach that script? Otherwise if the file is a repeating pattern, bzipping it should make it compress extremely well.
Comment 11•13 years ago
|
||
No, I didn't generate them - these are HTML renditions of as-yet unpublished academic textbooks, which come my way for QA purposes. It's the images referenced in the HTML which are very large (in this particular instance, there's over 600 of them). They're PNGs, so already quite well compressed... do I remember RAR being good at compressing image data? Maybe I should give that a whirl.
I've just tried opening the file with the images inaccessible, and the crash doesn't occur - so it looks likely that it's images that are actually causing it. Whether it's the quantity and size of them that's at fault or something about the files themselves, I can't say.
Comment 12•13 years ago
|
||
If you're loading a page with 600 large images and then crashing, it's likely you're OOM'ing the browser due to bug 661304.
Comment 13•13 years ago
|
||
Looks pretty likely to me. Not sure why we would have only started seeing it with v13+, though - books this sort of size aren't the rule, but they're reasonably common for us. I've had two new ones since reporting bug 778704 for instance.
Comment 14•12 years ago
|
||
This signature showed up in the explosive report for Firefox 16 beta: https://crash-analysis.mozilla.com/rkaiser/2012-09-26/2012-09-26.firefox.16.explosiveness.html
Updated•12 years ago
|
Crash Signature: [@ mozalloc_abort(char const* const) | mozalloc_handle_oom(unsigned int) | moz_xmalloc | nsSegmentedBuffer::AppendNewSegment() ]
[@ TouchBadMemory | mozalloc_abort | mozalloc_handle_oom | moz_xmalloc | nsSegmentedBuffer::AppendNewSegment ] → [@ mozalloc_abort(char const* const) | mozalloc_handle_oom(unsigned int) | moz_xmalloc | nsSegmentedBuffer::AppendNewSegment() ]
[@ TouchBadMemory | mozalloc_abort | mozalloc_handle_oom | moz_xmalloc | nsSegmentedBuffer::AppendNewSegment ]
[@ mozalloc_…
Reporter | ||
Comment 15•12 years ago
|
||
The first frames of the current stack strace now look like:
Frame Module Signature Source
0 mozalloc.dll mozalloc_abort memory/mozalloc/mozalloc_abort.cpp:30
1 mozalloc.dll moz_xmalloc memory/mozalloc/mozalloc.cpp:56
2 xul.dll nsSegmentedBuffer::AppendNewSegment xpcom/io/nsSegmentedBuffer.cpp:71
3 xul.dll nsPipe::GetWriteSegment xpcom/io/nsPipe3.cpp:463
4 xul.dll nsPipeOutputStream::WriteSegments xpcom/io/nsPipe3.cpp:1086
5 xul.dll nsHttpTransaction::WriteSegments netwerk/protocol/http/nsHttpTransaction.cpp:635
6 xul.dll nsHttpConnection::OnSocketReadable netwerk/protocol/http/nsHttpConnection.cpp:1400
7 xul.dll nsHttpConnection::OnInputStreamReady netwerk/protocol/http/nsHttpConnection.cpp:1521
8 xul.dll nsSocketInputStream::OnSocketReady netwerk/base/src/nsSocketTransport2.cpp:224
9 xul.dll nsSocketTransport::OnSocketReady netwerk/base/src/nsSocketTransport2.cpp:1556
More reports at:
https://crash-stats.mozilla.com/report/list?signature=mozalloc_abort%28char+const*+const%29+|+moz_xmalloc+|+nsSegmentedBuffer%3A%3AAppendNewSegment%28%29
Crash Signature: mozalloc_abort | mozalloc_handle_oom | moz_xmalloc | nsSegmentedBuffer::AppendNewSegment] → mozalloc_abort | mozalloc_handle_oom | moz_xmalloc | nsSegmentedBuffer::AppendNewSegment]
[@ mozalloc_abort(char const* const) | moz_xmalloc | nsSegmentedBuffer::AppendNewSegment() ]
Updated•11 years ago
|
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → DUPLICATE
You need to log in
before you can comment on or make changes to this bug.
Description
•