NSOutlineView expansion limit

  • Is there a limit on the number of levels allowed in an outline view?

    Below is beginning of a crash log after option-clicking to fully
    expand an outline that happened to have 115 levels (normally not a
    useful outline, but this case was a list on someone's ancestors back
    to Julius Caesar). The NSOutlineView expansion steps in lines 21&22
    and 23&24, were repeated 82 times before entering the crash:

    Date/Time:      2007-11-27 12:21:30.083 -0800
    OS Version:      Mac OS X 10.5.1 (9B18)
    Report Version:  6

    Exception Type:  EXC_BAD_ACCESS (SIGBUS)
    Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000000000000
    Crashed Thread:  0

    Thread 0 Crashed:
    0  libSystem.B.dylib                 0xffff07c7 __memcpy + 39
    1  libobjc.A.dylib                   0x9661b13e
    fixupSelectorsInMethodList + 99
    2  libobjc.A.dylib                   0x9661c426 _class_getMethodNoSuper
    + 150
    3  libobjc.A.dylib                   0x966124fe
    _class_lookupMethodAndLoadCache + 182
    4  libobjc.A.dylib                   0x96622736 objc_msgSend + 102
    5  libobjc.A.dylib                   0x96612499
    _class_lookupMethodAndLoadCache + 81
    6  libobjc.A.dylib                   0x96622736 objc_msgSend + 102
    7  com.apple.CoreFoundation         0x92480281
    __CFStringChangeSizeMultiple + 1985
    8  com.apple.CoreFoundation         0x92480996 __CFStringAppendBytes +
    758
    9  com.apple.CoreFoundation         0x92489b3c
    _CFStringAppendFormatAndArgumentsAux + 2220
    10  com.apple.CoreFoundation         0x9248b548
    _CFStringCreateWithFormatAndArgumentsAux + 120
    11  com.apple.Foundation             0x926a9b26 -[NSPlaceholderString
    initWithFormat:locale:arguments:] + 86
    12  com.apple.Foundation             0x926a9ab8 +[NSString
    stringWithFormat:] + 88
    13  com.apple.CoreFoundation         0x924e4ea8 +[NSObject
    allocWithZone:] + 216
    14  com.apple.CoreFoundation         0x924e4dca +[NSObject alloc] + 42
    15  com.apple.CoreFoundation         0x924d18fd -[NSArray
    objectEnumerator] + 45
    16  com.geditcom.GEDitCOMII           0x0005189c -[GEDCOMObject
    findChild:remove:] + 42
    17  com.geditcom.GEDitCOMII           0x00024df8 -[INDIRecord
    numberOfParents] + 44
    18  com.geditcom.GEDitCOMII           0x0005554b -[AncestorController
    outlineView:isItemExpandable:] + 26
    19  com.apple.AppKit                 0x92d769b7 -[NSOutlineView
    _dataSourceIsItemExpandable:] + 125
    20  com.apple.AppKit                 0x92d76832
    loadItemEntryLazyInfoIfNecessary + 418
    21  com.apple.AppKit                 0x92d773c7 -[NSOutlineView
    _expandItemEntryChildren:atStartLevel:expandChildren:andInvalidate:]
    + 462
    22  com.apple.AppKit                 0x92ecc9a3 -[NSOutlineView
    _expandItemEntry:expandChildren:startLevel:] + 1439
    23  com.apple.AppKit                 0x92d7755a -[NSOutlineView
    _expandItemEntryChildren:atStartLevel:expandChildren:andInvalidate:]
    + 865
    24  com.apple.AppKit                 0x92ecc9a3 -[NSOutlineView
    _expandItemEntry:expandChildren:startLevel:] + 1439

    ---------------
    John Nairn (1-541-737-4265, FAX:1-541-737-3385)
    Professor and Richardson Chair
    Web Page: http://woodscience.oregonstate.edu/faculty/nairn.php (under
    construction)
    FEA/MPM Web Page: http://oregonstate.edu/~nairnj
  • Are there any error messages on the console?
    I'm trying to imagine why NSObject allocWithZone: would be calling
    stringWithFormat: and the only thing I can think of is some kind of
    error, like running out of memory or stomping the heap or something.

    John Nairn wrote:
    > Is there a limit on the number of levels allowed in an outline view?
    >
    > Below is beginning of a crash log after option-clicking to fully
    > expand an outline that happened to have 115 levels (normally not a
    > useful outline, but this case was a list on someone's ancestors back
    > to Julius Caesar). The NSOutlineView expansion steps in lines 21&22
    > and 23&24, were repeated 82 times before entering the crash:
    >
    > Date/Time:      2007-11-27 12:21:30.083 -0800
    > OS Version:      Mac OS X 10.5.1 (9B18)
    > Report Version:  6
    >
    > Exception Type:  EXC_BAD_ACCESS (SIGBUS)
    > Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000000000000
    > Crashed Thread:  0
    >
    > Thread 0 Crashed:
    > 0  libSystem.B.dylib                0xffff07c7 __memcpy + 39
    > 1  libobjc.A.dylib                  0x9661b13e
    > fixupSelectorsInMethodList + 99
    > 2  libobjc.A.dylib                  0x9661c426
    > _class_getMethodNoSuper + 150
    > 3  libobjc.A.dylib                  0x966124fe
    > _class_lookupMethodAndLoadCache + 182
    > 4  libobjc.A.dylib                  0x96622736 objc_msgSend + 102
    > 5  libobjc.A.dylib                  0x96612499
    > _class_lookupMethodAndLoadCache + 81
    > 6  libobjc.A.dylib                  0x96622736 objc_msgSend + 102
    > 7  com.apple.CoreFoundation          0x92480281
    > __CFStringChangeSizeMultiple + 1985
    > 8  com.apple.CoreFoundation          0x92480996 __CFStringAppendBytes
    > + 758
    > 9  com.apple.CoreFoundation          0x92489b3c
    > _CFStringAppendFormatAndArgumentsAux + 2220
    > 10  com.apple.CoreFoundation          0x9248b548
    > _CFStringCreateWithFormatAndArgumentsAux + 120
    > 11  com.apple.Foundation              0x926a9b26 -[NSPlaceholderString
    > initWithFormat:locale:arguments:] + 86
    > 12  com.apple.Foundation              0x926a9ab8 +[NSString
    > stringWithFormat:] + 88
    > 13  com.apple.CoreFoundation          0x924e4ea8 +[NSObject
    > allocWithZone:] + 216
    > 14  com.apple.CoreFoundation          0x924e4dca +[NSObject alloc] + 42
    > 15  com.apple.CoreFoundation          0x924d18fd -[NSArray
    > objectEnumerator] + 45
    > 16  com.geditcom.GEDitCOMII          0x0005189c -[GEDCOMObject
    > findChild:remove:] + 42
    > 17  com.geditcom.GEDitCOMII          0x00024df8 -[INDIRecord
    > numberOfParents] + 44
    > 18  com.geditcom.GEDitCOMII          0x0005554b -[AncestorController
    > outlineView:isItemExpandable:] + 26
    > 19  com.apple.AppKit                  0x92d769b7 -[NSOutlineView
    > _dataSourceIsItemExpandable:] + 125
    > 20  com.apple.AppKit                  0x92d76832
    > loadItemEntryLazyInfoIfNecessary + 418
    > 21  com.apple.AppKit                  0x92d773c7 -[NSOutlineView
    > _expandItemEntryChildren:atStartLevel:expandChildren:andInvalidate:] +
    > 462
    > 22  com.apple.AppKit                  0x92ecc9a3 -[NSOutlineView
    > _expandItemEntry:expandChildren:startLevel:] + 1439
    > 23  com.apple.AppKit                  0x92d7755a -[NSOutlineView
    > _expandItemEntryChildren:atStartLevel:expandChildren:andInvalidate:] +
    > 865
    > 24  com.apple.AppKit                  0x92ecc9a3 -[NSOutlineView
    > _expandItemEntry:expandChildren:startLevel:] + 1439
    >
    > ---------------
    > John Nairn (1-541-737-4265, FAX:1-541-737-3385)
    > Professor and Richardson Chair
    > Web Page: http://woodscience.oregonstate.edu/faculty/nairn.php (under
    > construction)
    > FEA/MPM Web Page: http://oregonstate.edu/~nairnj
  • On Dec 9, 2007, at 11:59 AM, John Nairn wrote:
    > Is there a limit on the number of levels allowed in an outline view?

    No, there isn't a limit; this is likely a bug in something.

    corbin
  • I think John's on to something here.  Note that the only user code here is
    in numbers 16, 17, and 18.  The rest is pretty standard stuff, and if it was
    broken, it'd be a sure to be more widely observed than in your case.

    If you look, it tries to do the objectEnumerator and goes down the toilet
    right there.

    My guess is that something in AncestorController or those of your code that
    it calls are doing something wrong -- and not just running out of memory.
    Much uglier:  overwriting a buffer, mistaking a pointer for a string,
    accessing an object that you released, that kind of thing.

    One possibility is that your code in those routines is allocating memory and
    not checking to see if that was successful before assuming it was and
    continuing on.

    But without the code it's hard to know specifically.

    HTH,
    Chris

    On 12/10/07 8:55 AM, "John Stiles" <JStiles...> wrote:

    > Are there any error messages on the console?
    > I'm trying to imagine why NSObject allocWithZone: would be calling
    > stringWithFormat: and the only thing I can think of is some kind of
    > error, like running out of memory or stomping the heap or something.
    >
    >
    > John Nairn wrote:
    >> Is there a limit on the number of levels allowed in an outline view?
    >>
    >> Below is beginning of a crash log after option-clicking to fully
    >> expand an outline that happened to have 115 levels (normally not a
    >> useful outline, but this case was a list on someone's ancestors back
    >> to Julius Caesar). The NSOutlineView expansion steps in lines 21&22
    >> and 23&24, were repeated 82 times before entering the crash:
    >>
    >> Date/Time:      2007-11-27 12:21:30.083 -0800
    >> OS Version:      Mac OS X 10.5.1 (9B18)
    >> Report Version:  6
    >>
    >> Exception Type:  EXC_BAD_ACCESS (SIGBUS)
    >> Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000000000000
    >> Crashed Thread:  0
    >>
    >> Thread 0 Crashed:
    >> 0  libSystem.B.dylib                0xffff07c7 __memcpy + 39
    >> 1  libobjc.A.dylib                  0x9661b13e
    >> fixupSelectorsInMethodList + 99
    >> 2  libobjc.A.dylib                  0x9661c426
    >> _class_getMethodNoSuper + 150
    >> 3  libobjc.A.dylib                  0x966124fe
    >> _class_lookupMethodAndLoadCache + 182
    >> 4  libobjc.A.dylib                  0x96622736 objc_msgSend + 102
    >> 5  libobjc.A.dylib                  0x96612499
    >> _class_lookupMethodAndLoadCache + 81
    >> 6  libobjc.A.dylib                  0x96622736 objc_msgSend + 102
    >> 7  com.apple.CoreFoundation          0x92480281
    >> __CFStringChangeSizeMultiple + 1985
    >> 8  com.apple.CoreFoundation          0x92480996 __CFStringAppendBytes
    >> + 758
    >> 9  com.apple.CoreFoundation          0x92489b3c
    >> _CFStringAppendFormatAndArgumentsAux + 2220
    >> 10  com.apple.CoreFoundation          0x9248b548
    >> _CFStringCreateWithFormatAndArgumentsAux + 120
    >> 11  com.apple.Foundation              0x926a9b26 -[NSPlaceholderString
    >> initWithFormat:locale:arguments:] + 86
    >> 12  com.apple.Foundation              0x926a9ab8 +[NSString
    >> stringWithFormat:] + 88
    >> 13  com.apple.CoreFoundation          0x924e4ea8 +[NSObject
    >> allocWithZone:] + 216
    >> 14  com.apple.CoreFoundation          0x924e4dca +[NSObject alloc] + 42
    >> 15  com.apple.CoreFoundation          0x924d18fd -[NSArray
    >> objectEnumerator] + 45
    >> 16  com.geditcom.GEDitCOMII          0x0005189c -[GEDCOMObject
    >> findChild:remove:] + 42
    >> 17  com.geditcom.GEDitCOMII          0x00024df8 -[INDIRecord
    >> numberOfParents] + 44
    >> 18  com.geditcom.GEDitCOMII          0x0005554b -[AncestorController
    >> outlineView:isItemExpandable:] + 26
    >> 19  com.apple.AppKit                  0x92d769b7 -[NSOutlineView
    >> _dataSourceIsItemExpandable:] + 125
    >> 20  com.apple.AppKit                  0x92d76832
    >> loadItemEntryLazyInfoIfNecessary + 418
    >> 21  com.apple.AppKit                  0x92d773c7 -[NSOutlineView
    >> _expandItemEntryChildren:atStartLevel:expandChildren:andInvalidate:] +
    >> 462
    >> 22  com.apple.AppKit                  0x92ecc9a3 -[NSOutlineView
    >> _expandItemEntry:expandChildren:startLevel:] + 1439
    >> 23  com.apple.AppKit                  0x92d7755a -[NSOutlineView
    >> _expandItemEntryChildren:atStartLevel:expandChildren:andInvalidate:] +
    >> 865
    >> 24  com.apple.AppKit                  0x92ecc9a3 -[NSOutlineView
    >> _expandItemEntry:expandChildren:startLevel:] + 1439
    >>
    >> ---------------
    >> John Nairn (1-541-737-4265, FAX:1-541-737-3385)
    >> Professor and Richardson Chair
    >> Web Page: http://woodscience.oregonstate.edu/faculty/nairn.php (under
    >> construction)
    >> FEA/MPM Web Page: http://oregonstate.edu/~nairnj

previous month december 2007 next month
MTWTFSS
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
Go to today