You are not allowed to make most EFL calls outside of the main thread. Watch out if you have more.
-- Tom. On Sat, Aug 29, 2015 at 11:54 PM, Andrew Williams <a...@andywilliams.me> wrote: > Hi, > > Turned out to be lack of locking - some Eo calls were being made outwith > the main_thread context - helgrind found it pretty fast. > > Thanks for all the help, > Andrew > > On Tue, 11 Aug 2015 19:58 Andrew Williams <a...@andywilliams.me> wrote: > > > Hi JackDanielZ > > > > Thanks for looking into this, I appreciate the help. I think you're > seeing > > this other bug: https://phab.enlightenment.org/T2136 > > > > I have no idea yet why this is being freed but I have noticed that the > > widget sometimes disappears before crash which I guess means something is > > actually removing the widget. Any ideas how I could track that down? > > > > Thanks, > > Andrew > > > > On Mon, 10 Aug 2015 08:24 Daniel Zaoui <daniel.za...@samsung.com> wrote: > > > >> Hi Andy, > >> > >> I installed and tried. A few times work well for me. Many many switches > >> make the job. However I have an issue with gdb, as bt contains more than > >> 1800 frames (http://pastebin.com/L34yR7b7) :-))) > >> > >> For some reason, someone unrefs some object during its destruction, > >> leading to some Eo error message sent via Eina_Log and caught by > >> _edi_logpanel_print_cb that appends the message to something that will > >> trigger _elm_interface_scrollable_content_viewport_geometry_get that > will > >> finally eo_unref and trigger a new error message sent via Eina_Log... > >> again... you got the point :-) > >> > >> Summary, ARGHHHHHH!!!!!!!!!! > >> > >> Can you check we are on the same issue? > >> > >> JackDanielZ > >> > >> On Sun, 09 Aug 2015 08:53:59 +0000 > >> Andrew Williams <a...@andywilliams.me> wrote: > >> > >> > Hi, > >> > > >> > Yeah it's weird. I suspect it may be non-deterministic which might > >> > explain the behavior when debugging. > >> > The editor->entry looks to have the same pointer value as when the > >> > entry widget is created. > >> > > >> > To reproduce open a few files in edi (make sure you've built with > >> > libclang so syntax highlighting runs). Make a small change (eg enter, > >> > backspace) then switch tab. Doing that a few times usually triggers > >> > the crash. > >> > > >> > Thanks for the help, > >> > Andy > >> > > >> > On Sun, 9 Aug 2015 06:19 Daniel Zaoui <daniel.za...@samsung.com> > >> > wrote: > >> > > >> > > Hi Andrew, > >> > > > >> > > This is really weird that that eo_class_name_get crashes when > >> > > eo_class_name_get(eo_class_get()) doesn't. > >> > > > >> > > What is the value of the editor->entry? > >> > > Can you send us instructions on how to reproduce it locally? > >> > > > >> > > JackDanielZ > >> > > > >> > > > >> > > On Fri, 07 Aug 2015 13:30:33 +0000 > >> > > Andrew Williams <a...@andywilliams.me> wrote: > >> > > > >> > > > Hi, > >> > > > > >> > > > >From what I can tell the widget has been freed by elm/evas in a > >> > > > >smart_del > >> > > > callback and so removed from the lookups. > >> > > > Currently I have no idea why as the widget is still on screen. > >> > > > > >> > > > Looking further... > >> > > > > >> > > > Andrew > >> > > > > >> > > > On Fri, 7 Aug 2015 at 09:59 Tom Hacohen <t...@osg.samsung.com> > >> > > > wrote: > >> > > > > >> > > > > On 06/08/15 23:27, Andrew Williams wrote: > >> > > > > > Hi guys, > >> > > > > > > >> > > > > > Thanks for the help - still rather confuse though - no more > >> > > > > > info as far as I can see... > >> > > > > > > >> > > > > > (gdb) p eo_data_scope_get(editor->entry, > >> > > > > > elm_code_widget_class_get()) $3 = (void *) 0x0 > >> > > > > > (gdb) p eo_class_name_get(eo_class_get(editor->entry)) > >> > > > > > $4 = 0x0 > >> > > > > > (gdb) p eo_class_name_get(editor->entry) > >> > > > > > > >> > > > > > Program received signal SIGSEGV, Segmentation fault. > >> > > > > > 0x00007fffec54c48e in vfprintf () from /usr/lib/libc.so.6 > >> > > > > > The program being debugged was signaled while in a function > >> > > > > > called from > >> > > > > GDB. > >> > > > > > GDB remains in the frame where the signal was received. > >> > > > > > To change this behavior use "set unwindonsignal on". > >> > > > > > Evaluation of the expression containing the function > >> > > > > > (eo_class_name_get) will be abandoned. > >> > > > > > When the function is done executing, GDB will silently stop. > >> > > > > > > >> > > > > > Still confused, switching to valgrind to try and figure > >> > > > > > something out. > >> > > > > > >> > > > > For all I remember, we test validity for both cases, so it's > >> > > > > weird it would crash. The pointer definitely seems wrong, but I > >> > > > > wonder how it can be so corrupt that it crashes. Looking > >> > > > > forward to your report. > >> > > > > > >> > > > > -- > >> > > > > Tom. > >> > > > > > >> > > > > > > >> > > > > > Cheers, > >> > > > > > Andy > >> > > > > > > >> > > > > > On Wed, 22 Jul 2015 at 08:50 Daniel Zaoui > >> > > > > > <daniel.za...@samsung.com <mailto:daniel.za...@samsung.com>> > >> > > > > > wrote: > >> > > > > > > >> > > > > > On Wed, 22 Jul 2015 08:31:35 +0100 > >> > > > > > Tom Hacohen <t...@osg.samsung.com > >> > > > > > <mailto:t...@osg.samsung.com>> > >> > > > > wrote: > >> > > > > > > >> > > > > > According to git, Jeremy did that two years ago. > >> > > > > > Personally, I like it this way as it is easier for > >> > > > > > debugging. And well, I never needed to get the name of a > >> > > > > > class, but always of an object. > >> > > > > > > >> > > > > > > When was that changed? Isn't it kinda wrong to do it > >> > > > > > > now that > >> > > > > both Eo > >> > > > > > > classes and objects are "Eo *"? Because when you invoke > >> > > > > > > this on classes you want to get the class class, how do > >> > > > > > > you do the > >> > > > > detection? > >> > > > > > > Feels a bit inconsistent to me. > >> > > > > > > > >> > > > > > > -- > >> > > > > > > Tom. > >> > > > > > > > >> > > > > > > > >> > > > > > > On 22/07/15 08:28, Daniel Zaoui wrote: > >> > > > > > > > On Wed, 22 Jul 2015 08:21:02 +0100 > >> > > > > > > > Tom Hacohen <t...@osg.samsung.com > >> > > > > > > > <mailto:t...@osg.samsung.com>> > >> > > > > > wrote: > >> > > > > > > > > >> > > > > > > > Hey boy, you don't need anymore eo_class_get in the > >> > > > > > > > middle! ;-) > >> > > > > > > > > >> > > > > > > >> p eo_class_name_get(eo_class_get(editory->entry)) > >> > > > > > > >> > >> > > > > > > >> As Daniel said though, this shouldn't and can't > >> > > > > > > >> happen. The > >> > > > > only > >> > > > > > > >> reason why this function would return NULL is an > >> > > > > > > >> error. It > >> > > > > > works by > >> > > > > > > >> adding an offset to the data pointer, so as long as > >> > > > > > > >> it passes (basic) validation, it should at least > >> > > > > > > >> return something. > >> > > > > > > >> > >> > > > > > > >> -- > >> > > > > > > >> Tom. > >> > > > > > > >> > >> > > > > > > >> On 22/07/15 07:31, Daniel Zaoui wrote: > >> > > > > > > >>> Hi, > >> > > > > > > >>> > >> > > > > > > >>> I never saw this kind of behavior, except if your > >> > > > > > > >>> object has > >> > > > > been > >> > > > > > > >>> freed (should see error prints) or your pointer is > >> > > > > > > >>> NULL or > >> > > > > > even if > >> > > > > > > >>> your object is not of the correct type. > >> > > > > > > >>> > >> > > > > > > >>> Do you see any Eo error messages? Can you "p > >> > > > > > > >>> eo_class_name_get(editor->entry)"? Can you enter > >> > > > > > > >>> the function > >> > > > > and > >> > > > > > > >>> give more info on what happens inside? Maybe some > >> > > > > > > >>> thread > >> > > > > deletes > >> > > > > > > >>> the object when another tries to access? > >> > > > > > > >>> > >> > > > > > > >>> JackDanielZ > >> > > > > > > >>> > >> > > > > > > >>> On Tue, 21 Jul 2015 23:19:07 +0000 > >> > > > > > > >>> Andrew Williams <a...@andywilliams.me > >> > > > > > <mailto:a...@andywilliams.me>> wrote: > >> > > > > > > >>> > >> > > > > > > >>>> Hi, > >> > > > > > > >>>> > >> > > > > > > >>>> I'm trying to trace down a really annoying bug but > >> > > > > > > >>>> it's > >> > > > > proving > >> > > > > > > >>>> illusive. I have some Eo objects (the > >> > > > > > > >>>> Elm_Code_Widget) that stores a lot of information > >> > > > > > > >>>> in it's associated data object. > >> > > > > This > >> > > > > > > >>>> works most of the time but on some occasions - > >> > > > > > > >>>> potentially > >> > > > > > in the > >> > > > > > > >>>> vicinity of different thread access, but not > >> > > > > > > >>>> reliably reproducible > >> > > > > > > >>>> - the data seems to be NULL. > >> > > > > > > >>>> > >> > > > > > > >>>> p eo_data_scope_get(editor->entry, > >> > > > > elm_code_widget_class_get()) > >> > > > > > > >>>> $5 = (void *) 0x0 > >> > > > > > > >>>> (this call normally returns a pointer to an > >> > > > > Elm_Code_Widget_Data > >> > > > > > > >>>> struct) > >> > > > > > > >>>> > >> > > > > > > >>>> Can anyone suggest why this could happen - what > >> > > > > > > >>>> sort of > >> > > > > error is > >> > > > > > > >>>> it likely I have created that could cause this > >> > > > > > > >>>> behaviour? It's driving me crazy as for the most > >> > > > > > > >>>> part it works fine but > >> > > > > > some > >> > > > > > > >>>> combination of time and/or memory setup and/or > >> > > > > > > >>>> threading > >> > > > > > seems to > >> > > > > > > >>>> trip it up. > >> > > > > > > >>>> > >> > > > > > > >>>> Many thanks for any suggestions, > >> > > > > > > >>>> Andrew > >> > > > > > > >>>> > >> > > > > > > >> > > > > > >> > > > >> > ------------------------------------------------------------------------------ > >> > > > > > > >>>> Don't Limit Your Business. Reach for the Cloud. > >> > > > > > > >>>> GigeNET's Cloud Solutions provide you with the > >> > > > > > > >>>> tools and > >> > > > > support > >> > > > > > > >>>> that you need to offload your IT needs and focus > >> > > > > > > >>>> on growing > >> > > > > your > >> > > > > > > >>>> business. Configured For All Businesses. Start > >> > > > > > > >>>> Your Cloud > >> > > > > Today. > >> > > > > > > >>>> https://www.gigenetcloud.com/ > >> > > > > > > >>>> _______________________________________________ > >> > > > > > > >>>> enlightenment-devel mailing list > >> > > > > > > >>>> enlightenment-devel@lists.sourceforge.net > >> > > > > > <mailto:enlightenment-devel@lists.sourceforge.net> > >> > > > > > > >>>> > >> > > > > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > >> > > > > > > >>> > >> > > > > > > >>> > >> > > > > > > >>> > >> > > > > > > >> > > > > > >> > > > >> > ------------------------------------------------------------------------------ > >> > > > > > > >>> Don't Limit Your Business. Reach for the Cloud. > >> > > > > > > >>> GigeNET's Cloud Solutions provide you with the > >> > > > > > > >>> tools and > >> > > > > support > >> > > > > > > >>> that you need to offload your IT needs and focus on > >> > > > > > > >>> growing > >> > > > > your > >> > > > > > > >>> business. Configured For All Businesses. Start Your > >> > > > > > > >>> Cloud > >> > > > > Today. > >> > > > > > > >>> https://www.gigenetcloud.com/ > >> > > > > > > >>> _______________________________________________ > >> > > > > > > >>> enlightenment-devel mailing list > >> > > > > > > >>> enlightenment-devel@lists.sourceforge.net > >> > > > > > <mailto:enlightenment-devel@lists.sourceforge.net> > >> > > > > > > >>> > >> > > > > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > >> > > > > > > >>> > >> > > > > > > >> > >> > > > > > > >> > >> > > > > > > >> > >> > > > > > > >> > > > > > >> > > > >> > ------------------------------------------------------------------------------ > >> > > > > > > >> Don't Limit Your Business. Reach for the Cloud. > >> > > > > > > >> GigeNET's Cloud Solutions provide you with the > >> > > > > > > >> tools and > >> > > > > support > >> > > > > > > >> that you need to offload your IT needs and focus on > >> > > > > > > >> growing > >> > > > > your > >> > > > > > > >> business. Configured For All Businesses. Start Your > >> > > > > > > >> Cloud > >> > > > > Today. > >> > > > > > > >> https://www.gigenetcloud.com/ > >> > > > > > > >> _______________________________________________ > >> > > > > > > >> enlightenment-devel mailing list > >> > > > > > > >> enlightenment-devel@lists.sourceforge.net > >> > > > > > <mailto:enlightenment-devel@lists.sourceforge.net> > >> > > > > > > >> > >> > > > > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > >> > > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > > >> > > > > > > >> > > > > > >> > > > >> > ------------------------------------------------------------------------------ > >> > > > > > Don't Limit Your Business. Reach for the Cloud. > >> > > > > > GigeNET's Cloud Solutions provide you with the tools and > >> > > > > > support that you need to offload your IT needs and focus on > >> > > > > > growing your business. Configured For All Businesses. Start > >> > > > > > Your Cloud Today. https://www.gigenetcloud.com/ > >> > > > > > _______________________________________________ > >> > > > > > enlightenment-devel mailing list > >> > > > > > enlightenment-devel@lists.sourceforge.net > >> > > > > > <mailto:enlightenment-devel@lists.sourceforge.net> > >> > > > > > > >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > >> > > > > > > >> > > > > * > >> > > > > > >> > > > > >> > > > >> > ------------------------------------------------------------------------------ > >> > > > _______________________________________________ > >> > > > enlightenment-devel mailing list > >> > > > enlightenment-devel@lists.sourceforge.net > >> > > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > >> > > > >> > > > >> > >> > > ------------------------------------------------------------------------------ > _______________________________________________ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > ------------------------------------------------------------------------------ _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel