Steel Bank Common Lisp

Unwind fails on Win32/x86

Reported by David Lichteblau on 2012-10-29
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
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.

Paul Khuong (pvk) on 2013-06-28
Changed in sbcl:
status: New → In Progress
assignee: nobody → Paul Khuong (pvk)
importance: Undecided → Medium
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
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  Edit
Everyone can see this information.

Other bug subscribers