Ticket #879 (closed defect: fixed)

Opened 22 months ago

Last modified 10 months ago

Exceptions occur at the time of a disconnection

Reported by: llibra Owned by: gb
Priority: normal Milestone:
Component: Slime Version: trunk
Keywords: Cc:

Description

On Win32 (Windows XP SP3), it seems CCL r14647 and later cause exceptions at the time of a disconnection.

This is the quote from *inferior-lisp* buffer:

%eax = 0x00000001
%ecx = 0x77bdc2e3
%edx = 0x00570608
%ebx = 0x012bb2b8
%esp = 0x015af510
%ebp = 0x015af528
%esi = 0x7ffaee88
%edi = 0x012bd320
%eip = 0x00026612
%eflags = 0x00010246

%cs = 0x001b
%ds = 0x0023
%ss = 0x0023
%es = 0x0023
%fs = 0x003b
%gs = 0x0000
Exception on foreign stack

%eax = 0x012b8998
%ecx = 0x015aee98
%edx = 0x00000001
%ebx = 0x7ffaee88
%esp = 0x015aeed0
%ebp = 0x015aeee8
%esi = 0x7ffdce88
%edi = 0x00000000
%eip = 0x00027255
%eflags = 0x00010287

%cs = 0x001b
%ds = 0x0023
%ss = 0x0023
%es = 0x0023
%fs = 0x003b
%gs = 0x0000
Exception on foreign stack

...

Can I ignore it?

Change History

Changed 22 months ago by gb

  • owner set to gb
  • status changed from new to assigned

What's a "disconnection" ? A disconnection from what ?

(Your use of the term "the *inferior lisp* buffer" suggests that you might mean "a disconnection from some version of SLIME running under some version of Emacs", but that isn't certain.)

I'm not trying to be a jerk here (sometimes it just comes naturally), but I don't know what's happening or in what context it's happening and I don't know whether it's safe to ignore. Both of the addresses (the values of %eip) above are in the lisp kernel in the binaries committed in r14647 but aren't at instruction boundaries in that binary; it's not really possible to say anything without having some idea of how to reproduce this.)

Changed 22 months ago by llibra

Sorry. In this case, it's  SLIME's shortcut command "disconnect" on REPL (*slime-repl ccl*). The version of SLIME is current, 2011-08-09.

  1. Run Emacs
  2. Run SLIME (M-x slime)
  3. Type "," on REPL and enter "disconnect"
  4. The above messages are printed on *inferior-lisp*

Changed 17 months ago by rme

Start Slime. Switch to *inferior-lisp* buffer. Type (quit). Crash.

I looked at this a little bit.

As usual, gdb is not terribly helpful. Windbg seems to say that the problem is in shutdown_thread_tcr() right after the call to condemn_area_holding_lock(cs); it appears to be trying to load the aux slot from the TCR, but the TCR appears to be unmapped at this point.

Changed 10 months ago by llibra

  • status changed from assigned to closed
  • resolution set to fixed

It seems that CCL 1.8 works fine on the same environment. I have never seen exceptions like this with 1.8.

Thank you.

Note: See TracTickets for help on using tickets.