Unwind fails on Win32/x86

Bug #1072739 reported by David Lichteblau
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Fix Released
Medium
Unassigned

Bug Description

The attached test case fails on Win32/x86 (on both SBCL's master branch and the unofficial Windows branch, but not on Win32/amd64). Presumably amd64 is unaffected because it doesn't do anything fancy with SEH and RtlUnwind at all.

The problem is a regression introduced somewhere between SBCL 1.0 and 1.0.2, and looking at changes in those versions, likely/possibly in 1.0.0.19 or 1.0.1.24.

Possible approaches:

  1. just remove all our SEH tricks -- doing so would be a simplification and would bring x86 in line with amd64

  2. Or is this the "well-known" ordering problem? If so, how can we fix it?

Thanks to Elliott Slaughter for the report.

-----------------------------------------

(load "test-form-1.lisp")

;;; [... legitimate warnings pruned from output... ]

debugger invoked on a SIMPLE-ERROR in thread
#<THREAD "main thread" RUNNING {23ED1979}>:
  An exception occurred in context #.(SB-SYS:INT-SAP #X0022E270): #.(SB-SYS:INT-
SAP #X0022E3A0). (Exception code: 3221225513)

Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.

Revision history for this message
David Lichteblau (david-lichteblau) wrote :
Paul Khuong (pvk)
Changed in sbcl:
status: New → In Progress
assignee: nobody → Paul Khuong (pvk)
importance: Undecided → Medium
Revision history for this message
Paul Khuong (pvk) wrote :

Should be fixed in ba39d16 (Pack (mostly) stack TNs according to lexical scope information).

Changed in sbcl:
status: In Progress → Fix Committed
assignee: Paul Khuong (pvk) → nobody
Revision history for this message
Paul Khuong (pvk) wrote :

I don't have access to a windows box, but I've had confirmation that ordering catch blocks correctly fixes the issue (well, at least, the test case here).

Changed in sbcl:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.