Closed
Bug 445332
Opened 17 years ago
Closed 17 years ago
TT: Failing array acceptance testcases
Categories
(Tamarin Graveyard :: Tracing Virtual Machine, defect)
Tracking
(Not tracked)
VERIFIED
FIXED
People
(Reporter: brbaker, Assigned: daumling)
Details
(Keywords: flashplayer)
Attachments
(2 files)
|
951 bytes,
patch
|
stejohns
:
review+
|
Details | Diff | Splinter Review |
|
1.22 KB,
patch
|
Details | Diff | Splinter Review |
The following failures where introduced with changeset 486:ff804648d916
If you change the order in which the testcases execute they will pass, possibly pointing to a memory issue? Example: If you move the "exhaustive slice test 4" in e15_4_4_10 above the "exhaustive slice test 3" then all tests will pass. This is the same in all of the failing testcases and platforms.
testcase: ecma3/Array/e15_4_4_10.as (exhaustive slice test 4)
platform: Windows Release
testcase: ecma3/Array/e15_4_4_10.as (exhaustive slice test 2)
platform: Windows Release -interp, Mac OSX Release -interp
testcase: ecma3/Array/slice.as (exhaustive slice test 2)
platform: Mac Release –interp
testcase: ecma3/Array/splice1.as (exhaustive splice w/no optional args 1)
platform: Windows Mobile Release ARM and THUMB
Flags: in-testsuite+
Flags: flashplayer-review+
| Reporter | ||
Comment 1•17 years ago
|
||
Pushed change to expect the above tests to fail on respective platforms (503:f161b485027e)
Comment 2•17 years ago
|
||
I beleive change 490 (allocate rstack) was an injection of a lot of weird behavior and I think
Comment 3•17 years ago
|
||
... that changeset 510 is the most likely change that resolved lots of weird problems.
as of build 515:
* e15_4_4_10 consistenly passes all on win-release-jit
* e15_4_4_10 consistently fails on win-release-interp, but passes without TT_NEW_STRINGS. when it fails with TT_NEW_STRINGS enabled, the message is:
actual result: 6,7,8,9,0
expected result: 6,7,8,9,0
probably a bug in string comparison; the strings are both correct.
| Assignee | ||
Comment 4•17 years ago
|
||
Nice bug...
There is an optimization in concat() where I check if rightStr already has been appended in-place to leftStr. If yes, only a dependent string is created, wrapping leftStr plus the in-place data corresponding to rightStr. If is so happens that leftStr is full, but the next pattern in memory just happens to match rightStr, the dependent string is created as well.
In the concrete example, leftStr was "6,7,8,9," and rightSTr was "0". And, since MMgc allocates on 16-byte boundaries, the lowest byte of the address that MMgc happened to place next to the string buffer, ended in 0x30 == "0". This caused concat() to wrongly assume that rightStr already was present as an appended part of leftStr ("6,7,8,9,0").
The fix is simply to check if leftStr has been filled already...
No memory overwrites were involved. Just a dependent String pointing to a buffer whose contents can change...
Updated•17 years ago
|
Attachment #330028 -
Flags: review?(stejohns) → review+
| Reporter | ||
Comment 5•17 years ago
|
||
When path 330028 is pushed this should also be pushed. This removes the expected failures from the acceptance run. This has been tested with the patch on windows, mac, linux and windows mobile ARM|THUMB
| Assignee | ||
Comment 6•17 years ago
|
||
Could someone, please, push this patch so the bug can be closed? Thank you.
Comment 7•17 years ago
|
||
if you merge & clean it up, and push to the sandbox, i'll push to tamarin-tracing
sandbox repo:
http://hg.mozilla.org/users/brbaker_adobe.com/tamarin-tracing/
| Reporter | ||
Comment 8•17 years ago
|
||
I have pushed the patch into the sandbox:
Changed by: Brent Baker <brbaker@adobe.com>
Changed at: Tue 22 Jul 2008 10:41:46
Revision: 559:75668a54b34f
Changed files:
* core/StringObjectFW.cpp
* test/acceptance/testconfig.txt
Comments:
Bug 445332 check if leftStr has been filled already in concat() (p=daumling@adobe.com)
http://tamarin-builds.mozilla.org/tamarin-tracing-sandbox/waterfall
Comment 9•17 years ago
|
||
pushed to TT
| Assignee | ||
Updated•17 years ago
|
Status: ASSIGNED → RESOLVED
Closed: 17 years ago
Resolution: --- → FIXED
| Reporter | ||
Comment 10•17 years ago
|
||
All testscases are back to passing as of 520:75668a54b34f.
Marking bug as verified.
Status: RESOLVED → VERIFIED
You need to log in
before you can comment on or make changes to this bug.
Description
•