Page MenuHomePhabricator

infinity loop in EO
Open, HighPublic

Description

Constaté régulièrement sans pour definir la cause.
here is an excerpt from the console output:

ERR<15019>:eo lib/eo/eo_base_class.c:1764 efl_event_callback_call() Eo ID 0x400000002d3e is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=13e, id=b, ref=1)
ERR<14858>:eo lib/eo/eo_base_class.c:1764 efl_event_callback_call() Eo ID 0x400000002cc1 is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=c1, id=b, ref=1)
ERR<14858>:eo lib/eo/eo_base_class.c:1764 efl_event_callback_call() Eo ID 0x400000002cc1 is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=c1, id=b, ref=1)
ERR<14858>:eo lib/eo/eo_base_class.c:1764 efl_event_callback_call() Eo ID 0x400000002cc1 is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=c1, id=b, ref=1)
ERR<14858>:eo lib/eo/eo_base_class.c:1764 efl_event_callback_call() Eo ID 0x400000002cc1 is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=c1, id=b, ref=1)
ERR<14858>:eo lib/eo/eo_base_class.c:1764 efl_event_callback_call() Eo ID 0x400000002cc1 is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=c1, id=b, ref=1)
ERR<14858>:eo lib/eo/eo_base_class.c:1764 efl_event_callback_call() Eo ID 0x400000002cc1 is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=c1, id=b, ref=1)
ERR<14858>:eo lib/eo/eo_base_class.c:1764 efl_event_callback_call() Eo ID 0x400000002cc1 is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=c1, id=b, ref=1)
ERR<14858>:eo lib/eo/eo_base_class.c:1764 efl_event_callback_call() Eo ID 0x400000002cc1 is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=c1, id=b, ref=1)
ERR<14858>:eo lib/eo/eo_base_class.c:1764 efl_event_callback_call() Eo ID 0x400000002cc1 is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=c1, id=b, ref=1)
ERR<14858>:eo lib/eo/eo_base_class.c:1764 efl_event_callback_call() Eo ID 0x400000002cc1 is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=c1, id=b, ref=1)
ERR<14858>:eo lib/eo/eo_base_class.c:1764 efl_event_callback_call() Eo ID 0x400000002cc1 is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=c1, id=b, ref=1)
ERR<14858>:eo lib/eo/eo_base_class.c:1764 efl_event_callback_call() Eo ID 0x400000002cc1 is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=c1, id=b, ref=1)
ERR<14858>:eo lib/eo/eo_base_class.c:1764 efl_event_callback_call() ERR<15019>:eo lib/eo/eo_base_class.c:1764 efl_event_callback_call() Eo ID 0x400000002cc1 is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=c1, id=b, ref=1)Eo ID 0x400000002d3e is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=13e, id=b, ref=1)

ERR<14858>:eo lib/eo/eo_base_class.c:1764 efl_event_callback_call() ERR<15019>:eo lib/eo/eo_base_class.c:1764 efl_event_callback_call() Eo ID 0x400000002cc1 is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=c1, id=b, ref=1)Eo ID 0x400000002d3e is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=13e, id=b, ref=1)

ERR<14858>:eo lib/eo/eo_base_class.c:1764 efl_event_callback_call() ERR<15019>:eo lib/eo/eo_base_class.c:1764 efl_event_callback_call() Eo ID 0x400000002cc1 is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=c1, id=b, ref=1)Eo ID 0x400000002d3e is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=13e, id=b, ref=1)

ERR<14858>:eo lib/eo/eo_base_class.c:1764 efl_event_callback_call() Eo ID 0x400000002cc1 is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=c1, id=b, ref=1)
ERR<14858>:eo lib/eo/eo_base_class.c:1764 efl_event_callback_call() Eo ID 0x400000002cc1 is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=c1, id=b, ref=1)
ERR<14858>:eo lib/eo/eo_base_class.c:1764 efl_event_callback_call() Eo ID 0x400000002cc1 is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=c1, id=b, ref=1)
ERR<14858>:eo lib/eo/eo_base_class.c:1764 efl_event_callback_call() Eo ID 0x400000002cc1 is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=c1, id=b, ref=1)
ERR<14858>:eo lib/eo/eo_base_class.c:1764 efl_event_callback_call() Eo ID 0x400000002cc1 is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=c1, id=b, ref=1)
ERR<14858>:eo lib/eo/eo_base_class.c:1764 efl_event_callback_call() Eo ID 0x400000002cc1 is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=c1, id=b, ref=1)
ERR<14858>:eo lib/eo/eo_base_class.c:1764 efl_event_callback_call() Eo ID 0x400000002cc1 is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=c1, id=b, ref=1)

thierry1970 added a comment.EditedApr 17 2019, 2:29 AM

This fix seems to solve the problem.
To check!!!

--- a/src/lib/eo/eo_base_class.c
+++ b/src/lib/eo/eo_base_class.c
@@ -1726,7 +1726,7 @@ end:
 
    pd->callback_stopped = callback_already_stopped;
 
-   return ret;
+   return EINA_FALSE;
 restart:
    EINA_INLIST_FOREACH(pd->current, lookup)
      {
thierry1970 triaged this task as High priority.Apr 19 2019, 1:44 AM

Unfunctional patch ...

thierry1970 closed this task as Resolved.May 17 2019, 8:29 AM
thierry1970 claimed this task.

Resolved by D7744

thierry1970 reopened this task as Open.May 17 2019, 9:37 AM

Bug not resolved just less frequent.

ERR<8415>:eo lib/eo/eo_base_class.c:1782 efl_event_callback_call() Eo ID 0x40000000219f is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=19f, id=8, ref=1)
ERR<8415>:eo lib/eo/eo_base_class.c:1782 efl_event_callback_call() Eo ID 0x40000000219f is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=19f, id=8, ref=1)
ERR<8415>:eo lib/eo/eo_base_class.c:1782 efl_event_callback_call() Eo ID 0x400000002e9a is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=29a, id=b, ref=1)
ERR<8415>:eo lib/eo/eo_base_class.c:1782 efl_event_callback_call() Eo ID 0x400000002e9a is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=29a, id=b, ref=1)
ERR<8415>:eo lib/eo/eo_base_class.c:1782 efl_event_callback_call() Eo ID 0x400000002e9a is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=29a, id=b, ref=1)
ERR<8415>:eo lib/eo/eo_base_class.c:1782 efl_event_callback_call() Eo ID 0x40000000219f is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=19f, id=8, ref=1)
ERR<8415>:eo lib/eo/eo_base_class.c:1782 efl_event_callback_call() Eo ID 0x40000000219f is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=19f, id=8, ref=1)
ERR<8415>:eo lib/eo/eo_base_class.c:1782 efl_event_callback_call() Eo ID 0x40000000219f is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=19f, id=8, ref=1)
ERR<8415>:eo lib/eo/eo_base_class.c:1782 efl_event_callback_call() Eo ID 0x400000002e9a is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=29a, id=b, ref=1)
ERR<8415>:eo lib/eo/eo_base_class.c:1782 efl_event_callback_call() Eo ID 0x400000002e9a is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=29a, id=b, ref=1)
ERR<8415>:eo lib/eo/eo_base_class.c:1782 efl_event_callback_call() Eo ID 0x400000002e9a is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=29a, id=b, ref=1)
ERR<8415>:eo lib/eo/eo_base_class.c:1782 efl_event_callback_call() Eo ID 0x40000000219f is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=19f, id=8, ref=1)
ERR<8415>:eo lib/eo/eo_base_class.c:1782 efl_event_callback_call() Eo ID 0x40000000219f is not a valid object. Current thread: main. This ID has probably been deleted

Do you have any scenario that trigger it? Or any way for me to see it in a public application?

The problem appeared by switching to EFL-121.1 and E22.
When I go down in version it disappears.
I did not find how to reproduce it, I did not find any factor causing the problem.
I do not understand the opening of this loop, since it was only at the opening of the apps that I found it.

This code reproduces part of the problem.

/**
 *    Compile with gcc -o ecore_exe_emixer ecore_exe_emixer.c `pkg-config --cflags --libs ecore`
 **/

#include <stdio.h>
#include <string.h>
#include <Ecore.h>

Ecore_Exe *_econnection_exe = NULL;

Eina_Bool
_cb_exe_del(void *data EINA_UNUSED, int evtype EINA_UNUSED, void *evinfo)
{  
   Ecore_Exe_Event_Del *ev = evinfo;
   if (!ev->exe) return ECORE_CALLBACK_RENEW;
   ecore_main_loop_quit();
   return ECORE_CALLBACK_CANCEL;
}

int
main(void)
{
   
   if (!ecore_init())
        goto exit;
          
   Ecore_Event_Handler *_handler_exe_del = ecore_event_handler_add(ECORE_EXE_EVENT_DEL, _cb_exe_del, NULL);
 
   _econnection_exe = ecore_exe_run("emixer", NULL);
   
   ecore_main_loop_begin();

   ecore_event_handler_del(_handler_exe_del);
   ecore_shutdown();
exit:
   return EXIT_FAILURE;
}