Closed Bug 514645 Opened 16 years ago Closed 16 years ago

signal BUS (invalid address alignment) with SPARCV9 64bit Firefox

Categories

(Core :: JavaScript Engine, defect)

Sun
Solaris
defect
Not set
normal

Tracking

()

RESOLVED FIXED
Tracking Status
status1.9.2 --- beta1-fixed

People

(Reporter: ginnchen+exoracle, Assigned: brendan)

References

Details

(Whiteboard: fixed-in-tracemonkey)

Attachments

(1 file)

start SPARC V9 64bit firefox (NANOJIT is not enabled.) it will core with signal BUS. I think the root cause is JSUpvarArray.vector[] is array of uint32. So pointer to regexp can be 64-bit misaligned. Recompile js/src with -misalign flag can get around. But the performance would not be good.
Attached patch proposed fixSplinter Review
Ginn, thanks for reporting. Could you please test this patch, and if it works, with igor's r+ land it? If you could then please also take assignment of the bug. Thanks again, /be
Attachment #398722 - Flags: review?(igor)
Attachment #398722 - Flags: review?(igor) → review+
I had the patch hiding in my q, so committed: http://hg.mozilla.org/tracemonkey/rev/4c38883a0438 /be
Assignee: general → brendan
Status: NEW → ASSIGNED
Flags: wanted1.9.2?
Whiteboard: fixed-in-tracemonkey
Flags: wanted1.9.2? → wanted1.9.2+
Brendan, thanks for the fix. Firefox starts without BUS signal with it. But, sizeof(JSTryNote) == 3 * sizeof(uint32), would it be a problem?
(In reply to comment #3) > Brendan, thanks for the fix. Firefox starts without BUS signal with it. > > But, sizeof(JSTryNote) == 3 * sizeof(uint32), would it be a problem? No. The fix sorts allocations in non-increasing alignment grain order, so we both pack efficiently and avoid misaligning wider types. /be
Ah, you're definitely right. I misread the code.
Status: ASSIGNED → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: