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

Reply via email to