Hi Denis,

I have confirmed that the problem is indeed due to the daemon() call
in the application. This would cause the application to do a fork()
and the child process will continue the execution.

But the child closes its World as soon as it does a fork with the
pthread fork handler and later it goes on to access the freed data.
This causes the crash.

What would be the best way to fix this issue ? How do we take care of
this special case of fork ?


Thanks

Suzuki


On Dec 11, 2007 3:00 PM, Suzuki K P <[EMAIL PROTECTED]> wrote:
> Hi Denis,
>
> On Dec 11, 2007 9:46 AM, Suzuki K P <[EMAIL PROTECTED]> wrote:
> > On Dec 11, 2007 5:09 AM, Denis Oliver Kropp <[EMAIL PROTECTED]> wrote:
> > > Suzuki K P wrote:
> > > > Hi,
> > > >
> > > > I could see the below messages as well in another crash:
> > > >
> > > >
> > > > (-) [Main Thread       7.293] (22412) IDirectFBSurfaceW:
> > > > IDirectFBSurface_Window_Release( 0x8c17c00 )
> > > > (-) [Main Thread       7.331] (22412) IDirectFBSurfaceW:
> > > > IDirectFBSurface_Window_Destruct( 0x8c17c00 )
> > > > (!) [Main Thread       7.331] (22412) *** Assertion [((FusionObject*)
> > > > object)->magic == D_MAGIC("FusionObject")] failed ***
> > > > [../../src/core/windows.h:83
> > > > in dfb_window_unref()]
> > > >
> > > > There seems to be stray pointer which is corrupting the memory area.
> > >
> > > It could also be a ref counting problem. Do you get an I/O error instead 
> > > if you comment out the D_ASSERT
> > > in lib/fusion/object.h ?
> > >
> >
> > I have started a build for the same.
>
> Yes. I do get the I/O error messages like these :
>
> (scim-panel-gtk:27907): Gdk-DirectFB-WARNING **:
> gdk_window_set_keep_above() not implemented.
>
>
> (scim-panel-gtk:27907): Gdk-DirectFB-WARNING **:
> gdk_window_set_keep_below() not implemented.
>
> (*) Direct/Thread: Running 'Fusion Dispatch' (MESSAGING, 27912)...
> (*) Direct/Thread: Running 'Fusion Dispatch' (MESSAGING, 27915)...
> (!) FUSION_REF_DOWN    --> Input/output error
> (!) FUSION_REF_DOWN    --> Input/output error
> (!) FUSION_REF_DOWN    --> Input/output error
>
>
> Thanks
>
> Suzuki
>
> >
> > >
> > > >> Backtrace:
> > > >> /home/suzie/lib/libfusion-1.0.so.0(_fusion_fd+0x1e)[0x37f32e]
> > > >> /home/suzie/lib/libfusion-1.0.so.0(fusion_ref_down+0x37)[0x389917]
> > > >> /home/suzie/lib/libdirectfb-1.0.so.0(dfb_window_unref+0x5e)[0x507053]
> > > >> /home/suzie/lib/libdirectfb-1.0.so.0(IDirectFBSurface_Window_Destruct+0x1c)[0x50710c]
> > > >> /home/suzie/lib/libdirectfb-1.0.so.0(IDirectFBSurface_Window_Release+0xad)[0x5071fd]
> > > >> /home/suzie/lib/libgdk-directfb-2.0.so.0(_gdk_directfb_move_resize_child+0xd3)[0x25c0f3]
> > > >> /home/suzie/lib/libgdk-directfb-2.0.so.0(dfb_events_process_window_event+0x809)[0x2513a9]
> > > >> /home/suzie/lib/libgdk-directfb-2.0.so.0(dfb_events_io_func+0xad)[0x25184d]
> > > >> /home/suzie/lib/libglib-2.0.so.0(g_io_unix_dispatch+4d)[0x64823d]
> > > >> /home/suzie/lib/libglib-2.0.so.0(g_main_context_dispatch+0x17c)[0x618c0c]
> > > >> /home/suzie/lib/libglib-2.0.so.0 
> > > >> (g_main_context_iterate+0x3ef)[0x61c03f]
> > > >> /home/suzie/lib/libglib-2.0.so.0(g_main_loop_run+0x1a9)[0x61c3e9]
> > > >> /home/suzie/lib/libgtk-directfb-2.0.so.0(gtk_main+0xb4)[0x8e2944]
> > > >> /home/suzie/lib/scim-1.0/scim-panel-gtk[0x805dac9]
> > > >> /lib/libc.so.6(__libc_start_main+0xe0)[0xdf0f70]
> > > >> /home/suzie/lib/scim-1.0/scim-panel-gtk(__gxx_personality_v0+0x305)[0x804e511]
> > > >>
> > > >>
> > > >> By the way, I tried different combinations with multi core support 
> > > >> enabled.
> > > >>
> > > >> directfb-1.0.0 + gtk-2.12 (linux-fusion 3.2.4/3.2.2)
> > > >> directfb-1.1.0  + gtk-2.12/gtk+-2.10.13 (linux-fusion 7.0.3)
> > > >>
> > > >>
> > > >> Everything ends up in the same crash. The log is attached with this 
> > > >> mail.
> > > >>
> > > >> It looks like we are crashing :at : lib/fusion/fusion.c:
> > > >> int
> > > >> _fusion_fd( const FusionWorldShared *shared )
> > > >> {
> > > >>      int          index;
> > > >>      FusionWorld *world;
> > > >>
> > > >>      D_MAGIC_ASSERT( shared, FusionWorldShared );
> > > >>
> > > >> with "shared" being a corrupted pointer. (0x20000000)
> > >
> > > 0x20000000 is fine, but to make sure there are no collisions with
> > > other mappings on your architecture, please send the output of
> > > "cat /proc/self/maps".
> > >
> >
> > The stack trace as well as the maps is attached below :
> > > --
> >
> > > Best regards,
> > >   Denis Oliver Kropp
> > >
> > > .------------------------------------------.
> > > | DirectFB - Hardware accelerated graphics |
> > > | http://www.directfb.org/                 |
> > > "------------------------------------------"
> > >
> >
>

_______________________________________________
directfb-dev mailing list
directfb-dev@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev

Reply via email to