On Sun, Jan 02, 2011 at 12:50:05PM +0000, Mick wrote:
> On Sunday 02 January 2011 11:22:23 P Purkayastha wrote:
> > I am experiencing repeated crashes on exiting or restarting e17.  It
> > is 100% reproducible here. I think it started about a week to two
> > weeks ago. One major update that happened just before the crashes
> > started was a system update in gentoo with "-hal" USE flag
> > (enlightenment was also updated). However, I did compile
> > enlightenment and e_dbus with hal USE flag and hald is running on my
> > system.

I seem to have the same problem, running r55795 of libs & e.
Besides on e restart/exit, it also happens when rotating the screen with
xrandr.  Attached are two gdb backtraces.

> > I tracked down the crashes to the places module. Other gadgets do
> > not seem to trigger the crash. places module can't even be unloaded
> > once it is loaded (it gives no crashes on loading). The bt on trying
> > to unload places module is attached in the file gdb.places.txt

I don't think it's caused by the places module, as I don't have it
loaded.  The problem seems to be in e_gadcon.c, there the id_del func is
called with an invalid parameter (gcc->cf->id is invalid, because
gcc->cf is NULL, see the bottom of my backtraces).

> I don't have a fix I'm afraid, but can confirm that I have been
> getting similar crashes when I try to remove some gadgets.  The
> gadgets (e.g. weather, everything, etc) cannot be removed without
> having first removed the respective module.  However, I have no
> crashes on starting or exiting E17.
>
> I am running revision 55768.

Than it's very recent...  looks like this bug is caused(/exposed?)
by r55771[1] where a 'gcc->cf = NULL' is added.

regards,
Peter

[1]: http://trac.enlightenment.org/e/changeset/55771
(gdb) bt full
#0  0x000000000048d485 in _e_gadcon_client_free (gcc=0x21d00d0)
    at e_gadcon.c:1638
No locals.
#1  0x00000000004b3913 in e_object_unref (obj=0x7fc64c190040) at e_object.c:106
No locals.
#2  0x000000000048b40f in e_gadcon_unpopulate (gc=0x20e94d0) at e_gadcon.c:485
        gcc = 0x21d00d0
#3  0x00007fc64e40ead3 in gadman_shutdown () at e_mod_gadman.c:106
        gc = 0x20e94d0
        layer = 0
#4  0x00007fc64e40c108 in e_modapi_shutdown (m=<value optimized out>)
    at e_mod_main.c:126
No locals.
#5  0x00000000004b19a6 in e_module_shutdown () at e_module.c:54
        m = 0x20e5680
#6  0x000000000042eee2 in _e_main_shutdown (errorcode=0) at e_main.c:1245
        i = 1274592992
#7  0x0000000000431e6f in main (argc=<value optimized out>, 
    argv=<value optimized out>) at e_main.c:1174
        i = <value optimized out>
        safe_mode = 0
        buf = 
"/usr/local/share/enlightenment/data/icons\000\000\000\000\000\000\000\f\000\000\000\000\000\000\000\221\365r[\306\177\000\000\300r\342\267\377\177\000\000\000\000\300\342\304o\377\377\000\000V*\021\270\214\377\340d)\\\306\177\000\000\004\000\000\000\000\000\000\000\020\365r[\306\177\000\000\300r\342\267\377\177\000\000\000\000
 \343\304o\377\377\000\000V*\021\270\214\377%\000\000\000$\000\000\000\022", 
'\000' <repeats 11 times>, "\017\000\000\000\035", '\000' <repeats 11 times>, 
"\t", '\000' <repeats 11 times>, 
"\026\000\000\000\n\000\000\000\v\000\000\000\061", '\000' <repeats 11 times>, 
"\r\000\000\000\024\000\000\000A\016\t\\\306\177\000\000\000\000\000\000\021\000\000\000\350\070\224[\306\177"...
        s = <value optimized out>
        action = {__sigaction_handler = {
            sa_handler = 0x4c49a0 <e_sigabrt_act>, 
            sa_sigaction = 0x4c49a0 <e_sigabrt_act>}, sa_mask = {__val = {
              0 <repeats 16 times>}}, sa_flags = -1073741820, sa_restorer = 0}
        t = 0
        tstart = <value optimized out>
(gdb) l
1633            gcc->menu = NULL;
1634         }
1635       e_gadcon_client_edit_end(gcc);
1636       gcc->client_class->func.shutdown(gcc);
1637       if (gcc->client_class->func.id_del)
1638         gcc->client_class->func.id_del((E_Gadcon_Client_Class 
*)gcc->client_class, gcc->cf->id);
1639       gcc->gadcon->clients = eina_list_remove(gcc->gadcon->clients, gcc);
1640       if (gcc->o_box) evas_object_del(gcc->o_box);
1641       if (gcc->o_frame) evas_object_del(gcc->o_frame);
1642       eina_stringshare_del(gcc->name);
(gdb) p gcc->cf
$2 = (E_Config_Gadcon_Client *) 0x0

Program received signal SIGSEGV, Segmentation fault.
0x000000000048d485 in _e_gadcon_client_free (gcc=0x11a3930) at e_gadcon.c:1638
1638         gcc->client_class->func.id_del((E_Gadcon_Client_Class 
*)gcc->client_class, gcc->cf->id);
(gdb) bt full
#0  0x000000000048d485 in _e_gadcon_client_free (gcc=0x11a3930)
    at e_gadcon.c:1638
No locals.
#1  0x00000000004b3913 in e_object_unref (obj=0x7f705029d040) at e_object.c:106
No locals.
#2  0x000000000048b40f in e_gadcon_unpopulate (gc=0xffe260) at e_gadcon.c:485
        gcc = 0x11a3930
#3  0x00007f70506b4bdc in on_shape_change (data=<value optimized out>, 
    es=<value optimized out>, ch=<value optimized out>) at e_mod_gadman.c:889
        l = 0xff0df0
        g = 0xff2a10
        gc = 0xffe260
        cf_gcc = <value optimized out>
        con = <value optimized out>
        layer = 1342805120
#4  0x000000000045c53c in _e_container_shape_change_call (es=0x12ecba0, 
    ch=E_CONTAINER_SHAPE_RESIZE) at e_container.c:1105
        l = 0xff0df0
        cb = 0x7f7050099480
#5  0x0000000000449464 in _e_border_eval (bd=0x14f27f0) at e_border.c:7140
        x = 0
        y = 0
        xx = 640
        yy = 424
        pnd = <value optimized out>
        rem_change = <value optimized out>
#6  0x000000000044a940 in e_border_idler_before () at e_border.c:2947
        bl = 0x129f450
        bd = 0x14f27f0
        ml = <value optimized out>
        cl = 0xe48e80
        man = <value optimized out>
        con = <value optimized out>
#7  0x0000000000432bc5 in _e_main_cb_idler_before (data=<value optimized out>)
    at e_main.c:1616
        l = <value optimized out>
        pl = <value optimized out>
        eb = <value optimized out>
#8  0x00007f705e246073 in _ecore_idle_enterer_call ()
    at ecore_idle_enterer.c:146
No locals.
#9  0x00007f705e247e2d in _ecore_main_loop_iterate_internal (once_only=0)
    at ecore_main.c:1397
        next_time = <value optimized out>
#10 0x00007f705e248217 in ecore_main_loop_begin () at ecore_main.c:663
No locals.
#11 0x0000000000431d90 in main (argc=<value optimized out>, 
    argv=<value optimized out>) at e_main.c:1158
        i = <value optimized out>
        safe_mode = 0
        buf = 
"/usr/local/share/enlightenment/data/icons\000\000\000\000\000\000\000\f\000\000\000\000\000\000\000\221\225\336]p\177\000\000p\300k\251\377\177\000\000\000\000\340}\227r\377\377\000\000vj\350\274\340\376\340\004\225^p\177\000\000\004\000\000\000\000\000\000\000\020\225\336]p\177\000\000p\300k\251\377\177\000\000\000\...@~\227r\377\377\000\000vj\350\274\340\376%\000\000\000$\000\000\000\022",
 '\000' <repeats 11 times>, "\017\000\000\000\035", '\000' <repeats 11 times>, 
"\t", '\000' <repeats 11 times>, 
"\026\000\000\000\n\000\000\000\v\000\000\000\061", '\000' <repeats 11 times>, 
"\r\000\000\000\024\000\000\000A\256t^p\177\000\000\000\000\000\000\021\000\000\000\350\330\377]"...
        s = <value optimized out>
        action = {__sigaction_handler = {
            sa_handler = 0x4c49a0 <e_sigabrt_act>, 
            sa_sigaction = 0x4c49a0 <e_sigabrt_act>}, sa_mask = {__val = {
              0 <repeats 16 times>}}, sa_flags = -1073741820, sa_restorer = 0}
        t = 7.8585765425495337e-317
        tstart = <value optimized out>
(gdb) l
1633            gcc->menu = NULL;
1634         }
1635       e_gadcon_client_edit_end(gcc);
1636       gcc->client_class->func.shutdown(gcc);
1637       if (gcc->client_class->func.id_del)
1638         gcc->client_class->func.id_del((E_Gadcon_Client_Class 
*)gcc->client_class, gcc->cf->id);
1639       gcc->gadcon->clients = eina_list_remove(gcc->gadcon->clients, gcc);
1640       if (gcc->o_box) evas_object_del(gcc->o_box);
1641       if (gcc->o_frame) evas_object_del(gcc->o_frame);
1642       eina_stringshare_del(gcc->name);
(gdb) p gcc->cf
$1 = (E_Config_Gadcon_Client *) 0x0
------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
enlightenment-users mailing list
enlightenment-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-users

Reply via email to