> I'm hitting a bug in one of my composition and i'm having a hard time 
> figuring out where the problem lies.
> There seems to be a memory leak somewhere, and it crashes after more than 4 
> hours.
> I saved the crashlog this morning, the crash log refers to the composition 
> running as a QB application but I've had crashes inside the editor too.

It would be handy to have additional crash logs - leaks don't often crash 
identically each time.

> Can anyone help me decypher the crashlog?
> Process:         Cobalt_132_NightWorks_28_2 [6955]
> Path:            
> /Users/USER/Desktop/Cobalt_132_NightWorks_28_2.app/Contents/MacOS/Cobalt_132_NightWorks_28_2
> Identifier:      com.mycompanyname.Cobalt_132_NightWorks_28_2
> Version:         ??? (1.0)
> Code Type:       X86-64 (Native)

You're running 64 bit (good) - that means a system memory leak isn't likely to 
be fatal.  Further down, the total VM size is something like 3.3GB, which is 
relatively large, but not indicative of a leak in a 64bit process.

> Parent Process:  launchd [118]
> 
> Date/Time:       2012-02-29 07:38:22.657 +0100
> OS Version:      Mac OS X 10.7.2 (11C74)
> Report Version:  9
> 
> Interval Since Last Report:          136852 sec
> Crashes Since Last Report:           6
> Per-App Interval Since Last Report:  18303 sec
> Per-App Crashes Since Last Report:   1
> Anonymous UUID:                      AF017B63-6D34-4966-9BD2-814149224020
> 
> Crashed Thread:  4  CVDisplayLink

Thread 4 crashed, and you're using display link (good).

> Exception Type:  EXC_BAD_INSTRUCTION (SIGILL)
> Exception Codes: 0x0000000000000001, 0x0000000000000000

looks like an intentional crash (SIGILL instead of SIGABRT, SIGTERM, or SIGINT).

> Thread 4 Crashed:: CVDisplayLink
> 0   com.apple.ATIRadeonX3000GLDriver  0x0000000105ef0fb2 0x105eeb000 + 24498
> 1   com.apple.ATIRadeonX3000GLDriver  0x0000000105f2ce3c 0x105eeb000 + 269884

The crash was in the drivers (ATI drivers, to be specific).  It's unclear 
what's going on (because there are no symbols).  Using some internal tools to 
symbolicate the driver, it's unclear what happened;  the driver triggered an 
intentional crash because of an unknown return value when submitting a flush (a 
glFlush doesn't take any arguments, so it's not invalid input).  It's possible 
an allocation failed internal to the driver, or it could be some other bug that 
caused an unexpected error to happen.

> 2   GLEngine                          0x0000000105c267ff glFlushRender_Exec + 
> 68

There's the glFlush (glFlushRenderAPPLE most likely) ...

> 3   com.apple.CoreImage               0x00007fff8641f203 
> fe_accel_context_flush(fe_accel_context_struct*) + 39
> 4   com.apple.CoreImage               0x00007fff8641ec01 
> fe_accel_context_release(fe_accel_context_struct*) + 37
> 5   com.apple.CoreImage               0x00007fff8642b19c -[FEOpenGLContext 
> updateBuffer] + 242
> 6   com.apple.CoreImage               0x00007fff8642b62b -[FEOpenGLContext 
> _begin] + 99
> 7   com.apple.CoreImage               0x00007fff86463bb0 
> FEApplyTreeNode::render1(FETreeContext*, FEShape const&, 
> fe_kernel_target_struct*, int, float*, FETreeTexture*) + 1576
> 8   com.apple.CoreImage               0x00007fff864645a7 
> FEApplyTreeNode::render2(FETreeContext*, FEShape const*, void (*)(FEContext*, 
> void*, FEFormat), void (*)(FEContext*, void*), void*) + 1597
> 9   com.apple.CoreImage               0x00007fff86461b19 
> FETreeNode::render_(FETreeContext*, FEShape const*, void (*)(FEContext*, 
> void*, FEFormat), void (*)(FEContext*, void*), void*) + 149
> 10  com.apple.CoreImage               0x00007fff8646539e 
> FETreeNode::render(FETreeContext*, FEShape const&, void (*)(FEContext*, 
> void*, FEFormat), void (*)(FEContext*, void*), void*) + 108
> 11  com.apple.CoreImage               0x00007fff8646913a 
> FETreeContext::renderTree(FETreeNode*, FEShape const&, void (*)(FEContext*, 
> void*, FEFormat), void (*)(FEContext*, void*), void*) + 276
> 12  com.apple.CoreImage               0x00007fff8646944e 
> FETreeContext::renderImage_(FEImage*, CGRect, FEShape const*, 
> CGAffineTransform, CGColorSpace*, FEFormat, bool, void (*)(FEContext*, void*, 
> FEFormat), void (*)(FEContext*, void*), void*) + 688
> 13  com.apple.CoreImage               0x00007fff864696d7 
> FETreeContext::renderImage(FEImage*, CGRect, FEShape const*, 
> CGAffineTransform, CGColorSpace*, FEFormat, bool, void (*)(FEContext*, void*, 
> FEFormat), void (*)(FEContext*, void*), void*) + 375
> 14  com.apple.CoreImage               0x00007fff86440377 -[FEImage(Internal) 
> _renderWithContext:bounds:transform:colorSpace:format:premultiplied:setupCallback:finishCallback:callbackData:]
>  + 247
> 15  com.apple.CoreImage               0x00007fff8643fdfa -[FEImage 
> renderToContext:bounds:transform:destinationFormat:colorSpace:] + 218
> 16  com.apple.CoreImage               0x00007fff863f653e 
> renderImage(FEContext*, CGRect, CGAffineTransform, unsigned int, void*) + 137
> 17  com.apple.CoreImage               0x00007fff8640fb66 
> -[CIOpenGLContextImpl renderWithBounds:matrix:function:info:] + 258
> 18  com.apple.CoreImage               0x00007fff863f64a7 -[CIContextImpl 
> render:] + 168
> 19  com.apple.CoreImage               0x00007fff863f4728 -[CIContext 
> drawImage:inRect:fromRect:] + 1098
> 20  com.apple.CoreImage               0x00007fff863f4a51 -[CIContext 
> drawImage:atPoint:fromRect:] + 140

... and it was called by CoreImage ...

> 21  com.apple.QuartzComposer          0x00007fff871ebd90 
> -[QCProvider_CoreImage 
> createTextureBufferForManager:withFormat:target:transformation:bounds:colorSpace:options:]
>  + 1368

... who in turn was called by QC to create a texture from a CIImage.  This is a 
normal operation, but it's possible that textures are leaking.  Use OpenGL 
Driver Monitor to look at the number of textures, and see if it grows without 
bound.

> VM Region Summary:
> ReadOnly portion of Libraries: Total=191.5M resident=130.4M(68%) 
> swapped_out_or_unallocated=61.1M(32%)
> Writable regions: Total=3.0G written=292.3M(9%) resident=865.4M(28%) 
> swapped_out=0K(0%) unallocated=2.2G(72%)
> 
> REGION TYPE                        VIRTUAL
> ===========                        =======
> CG backing stores                    5260K
> CG image                              120K
> CG shared images                     1192K
> CoreGraphics                           16K
> CoreServices                          924K
> IOKit                                 1.1G
> IOKit (reserved)                     3072K        reserved VM address space 
> (unallocated)
> JS JIT generated code               128.0M
> JS JIT generated code (reserved)    896.0M        reserved VM address space 
> (unallocated)
> JS VM register file                  4096K
> JS garbage collector                  208K
> MALLOC                              903.7M
> MALLOC guard page                      32K
> Memory tag=240                          4K
> Memory tag=242                         12K
> Memory tag=251                         36K
> STACK GUARD                          56.0M
> Stack                                11.0M
> VM_ALLOCATE                          16.2M
> __CI_BITMAP                            80K
> __DATA                               16.9M
> __IMAGE                              1256K
> __LINKEDIT                           49.8M
> __TEXT                              141.7M
> __UNICODE                             544K
> mapped file                          27.7M
> shared memory                        4304K
> ===========                        =======
> TOTAL                                 3.3G
> TOTAL, minus reserved VM space        2.4G

As for system memory (not vram), this looks mostly ok - however, IOKit being 
1.1GB is a little alarming (OpenGL textures are reported there I think), and 
it's right about at your GPU's limit...

> Model: MacBookPro8,2, BootROM MBP81.0047.B24, 4 processors, Intel Core i7, 
> 2.4 GHz, 4 GB, SMC 1.69f3
> Graphics: AMD Radeon HD 6770M, AMD Radeon HD 6770M, PCIe, 1024 MB

... here the GPU reports 1GB of vram  (and 4GB of system memory).

You could try running this on a different GPU to see if the problem persists 
(preferably an intel or nvidia GPU, so you'll definitely get a different driver 
with different allocation/paging behavior).  If it does, it could be a texture 
leak.  If it doesn't persist, it might be a driver bug.

--
Christopher Wright
[email protected]



 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Quartzcomposer-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/quartzcomposer-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to