v002 Open Kinect Beta 5 on 10.6.8

Home Forums v002 v002 QC Plugins Support v002 Open Kinect Beta 5 on 10.6.8

Tagged: 

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • #6365
    .lov.
    Participant

    Hey,

    I found an issue with the latest beta release of Open Kinect. It gives me a solid crash in CoGe on 10.6.8, when removing the composition using the plugin (this sends a release message to the QCRenderer on the same thread its created). Here are the details:

    Exception Type: EXC_BAD_INSTRUCTION (SIGILL)
    Exception Codes: 0x0000000000000001, 0x0000000000000000
    Crashed Thread: 14 Dispatch queue: info.v002.v002OpenKinect

    Application Specific Information:
    objc[2716]: FREED(id): message undoManager sent to freed object=0x21d04d30

    Thread 14 Crashed: Dispatch queue: info.v002.v002OpenKinect
    0 libobjc.A.dylib 0x92c444fd _objc_error + 116
    1 libobjc.A.dylib 0x92c44533 __objc_error + 52
    2 libobjc.A.dylib 0x92c4283a _freedHandler + 58
    3 com.apple.QuartzComposer 0x9238d769 -[QCPlugIn dealloc] + 38
    4 info.v002.v002-Open-Kinect 0x24c01d70 -[v002_Open_KinectPlugIn dealloc] + 384
    5 com.apple.CoreFoundation 0x917c2832 sendRelease + 34
    6 info.v002.v002-Open-Kinect 0x24c024fc __destroy_helper_block_ + 28
    7 libSystem.B.dylib 0x976b3862 _Block_release + 143
    8 libSystem.B.dylib 0x976ae521 _dispatch_source_invoke + 545
    9 libSystem.B.dylib 0x976acf59 _dispatch_queue_invoke + 163
    10 libSystem.B.dylib 0x976ad495 _dispatch_queue_drain + 258
    11 libSystem.B.dylib 0x976acee8 _dispatch_queue_invoke + 50
    12 libSystem.B.dylib 0x976accfe _dispatch_worker_thread2 + 240
    13 libSystem.B.dylib 0x976ac781 _pthread_wqthread + 390
    14 libSystem.B.dylib 0x976ac5c6 start_wqthread + 30

    I never saw an error like this, in my understanding QCPlugin class dealloc method wanna call an undoManager.

    #6367
    bangnoise
    Keymaster

    If anyone wants to fix this, it is possible QC doesn’t like non-QC code releasing a QCPlugIn instance, in which case a solution would be to avoid the reference to self in the block used by the dispatch timer, so the QCPlugIn object is not retained on the timer’s queue – a new object could be created which can be retained and have its properties set/got by the plugin and timer both.

    #6368
    vade
    Keymaster

    We could weak link self. I think I know what you mean, its easy to get retain cycles in block code unintentionally.

    #6369
    bangnoise
    Keymaster

    don’t use a weak reference to self in the block as a dispatch source may still be in use after you cancel it – but yea

    #6370
    .lov.
    Participant

    I did a build from the GitHub repo, and the issue seems to be gone (in a quick test session).

    #6371
    bangnoise
    Keymaster

    Ah! Great.

    #6372
    .lov.
    Participant

    No, after a bit more testing the issue is still exists 🙁 But now I’m sure this is not a CoGe related issue, the crash happens in other QC hosts as well, but only on 10.6.8. 10.7 and 10.8 seems to be not affected.

Viewing 7 posts - 1 through 7 (of 7 total)
  • You must be logged in to reply to this topic.