Opened 12 years ago

Closed 12 years ago

#210 closed defect (fixed)

Kernel crash closing grep window

Reported by: gz Owned by: gb
Priority: major Milestone:
Component: IDE Version:
Keywords: Cc:

Description

Start the IDE (doesn't matter if it's a saved image or (require'cocoa)).

Invoke m-x grep, e.g. M-x Grep<Enter>Exchange Point

In the grep window, double click on first found line

Click on title bar of grep window to select it again

Click on close box of grep window

Crashes into kernel debugger dereferencing 0 (perhaps something is trying to display the grep window after it already started deallocating some of its data structures...)

FWIW, I'm running 10.4.10 on a PPC G4.

Unhandled exception 11 at 0xfffeff20, context->regs at #xbfffccd8
Read operation to unmapped address 0x0
 In foreign code at address 0xfffeff20

[8093] OpenMCL kernel debugger: b
current thread: tcr = 0x500460, native thread ID = 0xd03, interrupts enabled

(#xbfffd1c0) #x93850DB4 : -[NSTableView _drawContentsAtRow:column:clipRect:] + 224
(#xbfffd250) #x93850854 : -[NSTableView drawRow:clipRect:] + 220
(#xbfffd2d0) #x93850610 : -[NSTableView drawRowIndexes:clipRect:] + 108
(#xbfffd330) #x9384FC98 : -[NSTableView drawRect:] + 1144
(#xbfffd4f0) #x937E4858 : -[NSView _drawRect:clip:] + 2128
(#xbfffda90) #x937E35FC : -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 736
(#xbfffdbb0) #x937E39A8 : -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 1676
(#xbfffdcd0) #x937E39A8 : -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 1676
(#xbfffddf0) #x937E39A8 : -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 1676
(#xbfffdf10) #x937E39A8 : -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 1676
(#xbfffe030) #x93804044 : -[NSThemeFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 192
(#xbfffe1f0) #x937DD054 : -[NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] + 384
(#xbfffe270) #x937D2348 : -[NSView displayIfNeeded] + 248
(#xbfffe2d0) #x937D21B8 : -[NSWindow displayIfNeeded] + 180
(#xbfffe330) #x937D2064 : __handleWindowNeedsDisplay + 200
(#xbfffe390) #x907DD76C : ___CFRunLoopDoObservers + 352
(#xbfffe430) #x907DDA0C : ___CFRunLoopRun + 420
(#xbfffe950) #x907DD4AC : _CFRunLoopRunSpecific + 268
(#xbfffe9c0) #x93298B20 : _RunCurrentEventLoopInMode + 264
(#xbfffea20) #x9329812C : _ReceiveNextEventCommon + 244
(#xbfffeaa0) #x93298020 : _BlockUntilNextEventMatchingListInMode + 96
(#xbfffeaf0) #x9379EAE4 : __DPSNextEvent + 384
(#xbfffee40) #x9379E7A8 : -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 116
(#xbffff000) #x9379ACEC : -[NSApplication run] + 472
(#xbffff510) #x00006654 : _SPpoweropen_ffcall + 204
(#xBFFFF550) #x08861028 : #<Anonymous Function #x08861036> + 132
(#xBFFFF560) #x000060F8 : (subprimitive _ret1valn)
(#xBFFFF570) #x085C2A4C : #<Function SEND-UNAMBIGUOUS-MESSAGE #x085c2aae> + 552
(#xbffff580) #x00000000 : (null) + 0
(#xBFFFF5D0) #x085C2A68 : #<Function SEND-UNAMBIGUOUS-MESSAGE #x085c2aae> + 580
(#xBFFFF5E0) #x085C2980 : #<Function SEND-UNAMBIGUOUS-MESSAGE #x085c2aae> + 348
(#xBFFFF5F0) #x089133B4 : #<Function RUN-EVENT-LOOP #x0891343e> + 208
(#xBFFFF600) #x089133E0 : #<Function RUN-EVENT-LOOP #x0891343e> + 252
(#xBFFFF610) #x0000A21C : (subprimitive toplevel_loop)
(#xBFFFF620) #x0000A228 : (subprimitive toplevel_loop)
(#xbffff630) #x0000A334 : _start_lisp + 244

Change History (1)

comment:1 Changed 12 years ago by rme

  • Resolution set to fixed
  • Status changed from new to closed

I think what's happening is this:

When the grep window (which is managed by a sequence-window-controller) is closed, the sequence-window-controller is autoreleased (which will subsequently release the window and its views). This happens in a windowWillClose method.

It looks like the table view is trying to redraw itself after the window controller or window or something has been released. Setting the table view data source to +null-ptr+ (Objective-C nil) will prevent the table view from trying to ask its data source (the sequence-window-controller) for information while it's in the process of going away.

Note: See TracTickets for help on using tickets.