≡

wincent.dev

  • Products
  • Blog
  • Wiki
  • Issues
You are viewing an historical archive of past issues. Please report new issues to the appropriate project issue tracker on GitHub.
Home » Issues » Bug #280

Bug #280: Crash while switching preference panes

Kind bug
Product Synergy Advance
When Created 2005-07-28T20:19:59Z, updated 2006-03-29T07:53:49Z
Status closed
Reporter Greg Hurrell
Tags no tags

Description

To reproduce, click as fast as you can to switch between different preference panes. Eventually you will see a crash (see crash log pasted below). I have received about four crash reports from users and I think they are seeing the same crash.

I can't be entirely sure of this but it seems to me that the crash only occurs when switch away from the "Hot Keys" preference pane. If I switch to and from all the other panes I don't see a crash, but if I switch to and from the "Hot Keys" preference pane I eventually see the crash. It all happens very fast, but it appears to me that the crash occurs when you try switching away from the "Hot Keys pane before it finishes displaying. It may therefore be related to bug #225. All of this is very subjective but I'll explore this further and see if I can isolate the cause.

Exception: EXC_BAD_ACCESS (0x0001) Codes: KERN_PROTECTION_FAILURE (0x0002) at 0x00000000

Thread 0 Crashed: 0 <> 0xfffeff20 objc_msgSend_rtp + 32 1 com.apple.AppKit 0x93649468 -[NSActionCell setObjectValue:] + 68 2 com.apple.AppKit 0x936de284 -[NSTableView _drawContentsAtRow:column:clipRect:] + 368 3 com.apple.AppKit 0x9378385c -[NSOutlineView _drawContentsAtRow:column:clipRect:] + 136 4 com.apple.AppKit 0x936ddc94 -[NSTableView drawRow:clipRect:] + 220 5 com.apple.AppKit 0x937837c0 -[NSOutlineView drawRow:clipRect:] + 184 6 com.apple.AppKit 0x936dda50 -[NSTableView drawRowIndexes:clipRect:] + 108 7 com.apple.AppKit 0x936dd0d8 -[NSTableView drawRect:] + 1144 8 com.apple.AppKit 0x93671d10 -[NSView _drawRect:clip:] + 2128 9 com.apple.AppKit 0x936712e0 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 404 10 com.apple.AppKit 0x93673ff8 _recursiveDisplayInRect2 + 84 11 com.apple.CoreFoundation 0x9075ac24 CFArrayApplyFunction + 416 12 com.apple.AppKit 0x936713f4 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 680 13 com.apple.AppKit 0x93673ff8 _recursiveDisplayInRect2 + 84 14 com.apple.CoreFoundation 0x9075ac24 CFArrayApplyFunction + 416 15 com.apple.AppKit 0x936713f4 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 680 16 com.apple.AppKit 0x93673ff8 _recursiveDisplayInRect2 + 84 17 com.apple.CoreFoundation 0x9075ac24 CFArrayApplyFunction + 416 18 com.apple.AppKit 0x936713f4 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 680 19 com.apple.AppKit 0x936708b8 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 196 20 com.apple.AppKit 0x93670e80 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 1676 21 com.apple.AppKit 0x936914dc -[NSThemeFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 192 22 com.apple.AppKit 0x9366a52c -[NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] + 384 23 com.apple.AppKit 0x9365f830 -[NSView displayIfNeeded] + 248 24 com.apple.AppKit 0x9365f6a0 -[NSWindow displayIfNeeded] + 180 25 com.apple.AppKit 0x9365f54c _handleWindowNeedsDisplay + 200 26 com.apple.CoreFoundation 0x9074af9c __CFRunLoopDoObservers + 352 27 com.apple.CoreFoundation 0x9074b23c __CFRunLoopRun + 420 28 com.apple.CoreFoundation 0x9074acdc CFRunLoopRunSpecific + 268 29 com.apple.HIToolbox 0x93123be0 RunCurrentEventLoopInMode + 264 30 com.apple.HIToolbox 0x931231ec ReceiveNextEventCommon + 244 31 com.apple.HIToolbox 0x931230e0 BlockUntilNextEventMatchingListInMode + 96 32 com.apple.AppKit 0x9362c1a4 _DPSNextEvent + 384 33 com.apple.AppKit 0x9362be68 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 116 34 com.apple.AppKit 0x936283cc -[NSApplication run] + 472 35 com.apple.AppKit 0x93718c1c NSApplicationMain + 452 36 com.wincent.SynergyAdvance 0x00007b08 0x1000 + 27400 37 com.wincent.SynergyAdvance 0x0000797c 0x1000 + 27004

Thread 1: 0 libSystem.B.dylib 0x9002f68c kevent + 12 1 com.wincent.WOBase 0xc8016ec4 0xc8000000 + 93892 2 com.apple.Foundation 0x9287cf34 forkThreadForFunction + 108 3 libSystem.B.dylib 0x9002c3d4 _pthread_body + 96

Thread 2: 0 libSystem.B.dylib 0x9002ca98 semaphore_wait_signal_trap + 8 1 libSystem.B.dylib 0x9003127c pthread_cond_wait + 508 2 com.apple.Foundation 0x928840a0 -[NSConditionLock lockWhenCondition:] + 68 3 com.apple.AppKit 0x936c8b58 -[NSUIHeartBeat _heartBeatThread:] + 324 4 com.apple.Foundation 0x9287cf34 forkThreadForFunction + 108 5 libSystem.B.dylib 0x9002c3d4 _pthread_body + 96

Thread 0 crashed with PPC Thread State 64:

 srr0: 0x00000000fffeff20 srr1: 0x100000000200f930                        vrsave: 0x0000000000000000
   cr: 0x44022228          xer: 0x0000000000000000   lr: 0x0000000093649468  ctr: 

0x0000000093637628

   r0: 0x0000000016fc2a48   r1: 0x00000000bfffd510   r2: 0x0000000000000000   r3: 

0x0000000016ff53b0

   r4: 0x0000000090a1a784   r5: 0x00000000d0012cc8   r6: 0x00000000ffffffff   r7: 

0x000000000000006e

   r8: 0x000000000000006e   r9: 0x0000000000000028  r10: 0x00000000d000dff4  r11: 

0x000000006f5fa784

  r12: 0x0000000016ffa88b  r13: 0x0000000000000000  r14: 0x00000000bfffe550  r15: 

0x0000000000000000

  r16: 0x0000000016f859d0  r17: 0x0000000000000000  r18: 0x0000000000000000  r19: 

0x0000000000000000

  r20: 0x00000000a36607f4  r21: 0x00000000ffffffff  r22: 0x00000000bfffd880  r23: 

0x0000000000000000

  r24: 0x0000000000000000  r25: 0x00000000d0012cc8  r26: 0x00000000d0012cc8  r27: 

0x0000000000000000

  r28: 0x0000000014c11db0  r29: 0x0000000016ff53b0  r30: 0x0000000014c11db0  r31: 

0x0000000093649424

Comments

  1. Greg Hurrell 2005-07-28T20:23:40Z

    You can slow down the transition between panes by holding the shift key while clicking. I can reproduce this crash almost 100% of the time if start from the "Advanced" pane, hold the shift key, and then click on the "Hot Keys" pane. In fact, I can reproduce it even without the Shift key.

  2. Greg Hurrell 2005-07-29T18:58:39Z

    Ok this is now fixed. Adding fixed-in-prerelease keyword. As an added bonus while I was working on solving this problem I was able to find various places in the code where I could speed up the switching.

  3. Greg Hurrell 2005-07-30T04:28:18Z

    People who don't want to wait until 0.3 comes out and wish to try a build which includes the fix can download it.

    SHA1 checksum: 888e30fb6b38dd57d2dfbe1fbef0854a7cd53901

  4. Greg Hurrell 2006-03-29T07:53:49Z

    This fix is now available in the just-released version 0.4b. For more information:

    https://wincent.dev/a/news/archives/2006/03/synergy_advance_4.php

    Marking as FIXED/CLOSED.

Add a comment

Comments are now closed for this issue.

  • contact
  • legal

Menu

  • Blog
  • Wiki
  • Issues
  • Snippets