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