Closed Bug 557212 Opened 15 years ago Closed 15 years ago

ST_mmgc_gcheap.st:mmgc-gcheap-largeAllocAlignment produces OOM

Categories

(Tamarin Graveyard :: Garbage Collection (mmGC), defect, P2)

defect

Tracking

(Not tracked)

VERIFIED FIXED
flash10.1

People

(Reporter: brbaker, Assigned: treilly)

References

Details

Attachments

(2 files, 1 obsolete file)

New selftest added bug bug #554191 is causing an OOM on linux32/64 and on mac OSX 10.4 This test does not produce OOM on windows or OSX 10.5 asteammac2:~ build$ ./avmshell -Dselftest=mmgc,gcheap ['start', 'mmgc', 'gcheap'] ['test', 'mmgc', 'gcheap', 'largeAlloc'] ['pass', 'mmgc', 'gcheap', 'largeAlloc'] ['test', 'mmgc', 'gcheap', 'largeAllocAlignment'] error: out of memory OUT OF MEMORY
Flags: in-testsuite+
Flags: flashplayer-triage+
Flags: flashplayer-qrb?
Blocks: 554191
Assignee: nobody → treilly
Priority: -- → P2
Target Milestone: --- → flash10.1
Test is also failing on windows64, but is failing in the testcase and not producing OOM: ['failure', 'mmgc', 'gcheap', 'largeAllocAlignment', 'uintptr_t(((GCHeap::kBlockSize<<(i-1))-1) & uintptr_t(item)) == 0', 'c:/buildbot/tamarin-redux/windows64/repo/shell/../extensions/ST_mmgc_gcheap.cpp', 78]
More info as I dig a little deeper: Windows64 only fails (comment #1) when run with: ./avmshell_64 -Dselftest=mmgc,gcheap It does not fail if the entire selftest suite is run: ./avmshell_64 -Dselftest
Ok here is a complete wrap up of this test: win32/64 -> fails when -Dselftest=mmgc,gcheap is run ['failure', 'mmgc', 'gcheap', 'largeAllocAlignment','uintptr_t(((GCHeap::kBlockSize<<(i-1))-1) & uintptr_t(item)) == 0','c:/buildbot/tamarin-redux/windows64/repo/shell/../extensions/ST_mmgc_gcheap.cpp',78] win32/64 -> passes when entire selftest suite is run mac 10.4 (intel/ppc) -> produces OOM error mac 10.5 (32/54, intel/ppc) -> testcase passes linux 32/64 -> produces OOM error linux-arm -> produces OOM error
Status: NEW → ASSIGNED
Flags: flashplayer-qrb? → flashplayer-qrb+
Attachment #437294 - Flags: review?(lhansen)
Why are you doing this: unalignedSize = sizeInBytes + alignment * kBlockSize; and not this: unalignedSize = sizeInBytes + (alignment - 1) * kBlockSize; ?
no good reason, will fix
(In reply to comment #7) > no good reason, will fix And if you do, is it necessary to have the guard if(alignmentSlop()==0) ... ? I don't know the answer, just asking.
Attachment #437294 - Attachment is obsolete: true
Attachment #437340 - Flags: review?(lhansen)
Attachment #437294 - Flags: review?(lhansen)
Attachment #437340 - Flags: review?(lhansen) → review+
> And if you do, is it necessary to have the guard if(alignmentSlop()==0) ... ? > I don't know the answer, just asking. You mean if(alignmentSlop() != 0) right? We could remove that, my reasoning is that alignment will usually be small and the OS is likely to meet it with any suitably large request so don't pad the reservation size unless we need to.
(In reply to comment #10) > > And if you do, is it necessary to have the guard if(alignmentSlop()==0) ... ? > > I don't know the answer, just asking. > > > You mean if(alignmentSlop() != 0) right? We could remove that, my reasoning > is that alignment will usually be small and the OS is likely to meet it with > any suitably large request so don't pad the reservation size unless we need to. y, figured it out too. Fine the way it is.
tamarin-redux-argo: changeset: 3944:35fb5d2723dc changeset: 3945:4832254f99d9 tamarin-redux: changeset: 4328:4832254f99d9 changeset: 4327:35fb5d2723dc
Status: ASSIGNED → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Verified that largeAlloc selfttest is back to original state and is passing on all platforms. tr-argo: r3945 redux: 4458
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: