Home › Forums › v002 › v002 QC Plugins Support › v002 Open Kinect Beta 5 on 10.6.8
Tagged: kinect
- This topic has 6 replies, 3 voices, and was last updated 8 years, 5 months ago by .lov..
-
AuthorPosts
-
September 29, 2012 at 2:31 am #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.v002OpenKinectApplication Specific Information:
objc[2716]: FREED(id): message undoManager sent to freed object=0x21d04d30Thread 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 + 30I never saw an error like this, in my understanding QCPlugin class dealloc method wanna call an undoManager.
September 29, 2012 at 4:44 pm #6367bangnoiseKeymasterIf 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.
September 29, 2012 at 5:38 pm #6368vadeKeymasterWe could weak link self. I think I know what you mean, its easy to get retain cycles in block code unintentionally.
September 29, 2012 at 6:34 pm #6369bangnoiseKeymasterdon’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
September 30, 2012 at 10:17 pm #6370.lov.ParticipantI did a build from the GitHub repo, and the issue seems to be gone (in a quick test session).
October 1, 2012 at 4:16 am #6371bangnoiseKeymasterAh! Great.
October 1, 2012 at 1:26 pm #6372.lov.ParticipantNo, 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.
-
AuthorPosts
- You must be logged in to reply to this topic.