[Bf-committers] sequencer crash

Ton Roosendaal ton at blender.org
Sun Mar 12 00:06:45 CET 2006


Hi Peter,

Thanks for the lecture. :)
I just spoke with Toni, and he said this issue only happens on his  
system... a compile from another linux system in our studio runs fine  
at his box. Seems like something else is wrong... not the code.

BTW; it happens for him on any exr file Blender writes, used in  
sequencer. Quite simple to test. But I bet it will work fine on your  
system too, sofar nobody was able to reproduce.

-Ton-


On 10 Mar, 2006, at 20:20, Peter Schlaile wrote:

> Hi,
>
> since I'm the only C++-coder around, I dived into the code:
>
> The interesting part of openexr_api.cpp is starting at line 625:
> I commented the code a little bit, to explain the crash:
>
> if (!(flags & IB_test))
> {
>       FrameBuffer frameBuffer; // here we construct a temporary
>                                // FrameBuffer object on the stack
> 	                       // there is a stl::map in it, that uses the
> 	                       // heap, which is later globbered...
>
>       // ... here we add Slices to the frameBuffer, that tell  
> readPixels
>       // where to write the data...
>
>       // (*)
>       // Somewhere in here, most probably we added pointers / sizes  
> that
>       // point outside the limits.
>
>       file->setFrameBuffer (frameBuffer);
>       // tell the input-object, where
>       // we want to write the data
>
>       file->readPixels (dw.min.y, dw.max.y);
>       // read the data, probably thereby globbering the malloc-heap
>
>       IMB_rect_from_float(ibuf);
>
> } // here frameBuffer loses scope and is destructed automatically
>   // triggering the segmentation fault
>
> To investigate this further:
> - First try: please remove file->readPixels and see if it doesn't crash
>   anymore. Yes -> then I'm right, we made something wrong with the  
> slices.
>   Add it again and ...
> - then: There are several frameBuffer.insert - method calls located  
> here
>   (*).
>   It is probably the best to remove these calls one by one and look,
>   when the segfault goes away.
>
> The bug is most probably triggered by a specific openexr-file. It is  
> most
> likely a good idea to add some "fprintf-debug"-Statements, that show
> xstride, ystride, width, height, dw.min.x, dw.min.y etc.
>
> If that doesn't help, send me an email (or give me an account on the
> machine affected / send the openexr-file to me).
>
> Greetings,
> Peter
>
>
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at projects.blender.org
> http://projects.blender.org/mailman/listinfo/bf-committers
>
>
------------------------------------------------------------------------ 
--
Ton Roosendaal  Blender Foundation ton at blender.org  
http://www.blender.org



More information about the Bf-committers mailing list