Ticket #879 (closed defect: fixed)

Opened 3 years ago

Last modified 2 years 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

comment:1 Changed 3 years 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.)

comment:2 Changed 3 years 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*

comment:3 Changed 3 years 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.

comment:4 Changed 2 years 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.