Closed Bug 455691 Opened 16 years ago Closed 16 years ago

TM: test_empty_body.js httpd.js test fails under JIT

Categories

(Core :: JavaScript Engine, defect, P1)

x86
macOS
defect

Tracking

()

VERIFIED FIXED
mozilla1.9.1b1

People

(Reporter: sayrer, Unassigned)

Details

(Keywords: verified1.9.1)

Attachments

(1 file)

I run it like this, from $OBJDIR/netwerk/test/httpserver: %> TRACEMONKEY=verbose NATIVE_TOPSRCDIR="/Users/sayrer/dev/tracemonkey" TOPSRCDIR="/Users/sayrer/dev/tracemonkey" gdb ../../../dist/bin/xpcshell ... (gdb) run -j -s -f /Users/sayrer/dev/tracemonkey/tools/test-harness/xpcshell-simple/head.js -f ../../../_tests/xpcshell-simple/test_necko/test/head_utils.js -f ../../../_tests/xpcshell-simple/test_necko/test/test_empty_body.js -f /Users/sayrer/dev/tracemonkey/tools/test-harness/xpcshell-simple/tail.js -f /Users/sayrer/dev/tracemonkey/tools/test-harness/xpcshell-simple/execute_test.js I can get it to succeed under JIT by inserting print statements such that the loop near line 3529 is not traced.
Severity: normal → critical
Flags: blocking1.9.1+
Priority: -- → P1
Target Milestone: --- → mozilla1.9.1b1
which file is line 3529 relative to?
It is httpd.js, in nsHttpHeaders.enumerator.
Strange. Without my push/pop patch (which is waiting for review and is not yet committed) that loop shouldn't trace: get enumerator() { var headers = []; for (var i in this._headers) { var supports = new SupportsString(); supports.data = i; headers.push(supports); } return new nsSimpleEnumerator(headers); }
Attached file reduced version
Here's a version that runs alone in xpcshell. The loop is at line 264. Note that it contains a print() call and an array.push, both of which should abort the trace. Curiously, uncommenting a print() call just below the loop close does abort the trace. See comments in attachment. %> TRACEMONKEY=verbose ./xpcshell -j -f /Users/sayrer/Desktop/test_loop.js
Attachment #339073 - Attachment mime type: application/x-javascript → text/plain
ok, so it looks like this exits trace to do the inner loop, and then re-enters. possible?
headers.enumerator returns undefined in _end(), which causes the test to throw an exception.
I assume this works now?
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
test in js1_8_1/trace/trace-test.js
Flags: in-testsuite+
Flags: in-litmus-
v 1.9.1, 1.9.2
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: