Page MenuHomePhabricator

eio tests sometimes deadlock when using fallback monitoring
Closed, ResolvedPublic

Description

Looks like an event is being emitted after a monitor is deleted or something? This is after D6448, which resolves other issues and fixes fallback monitoring into some semblance of working order:

#0  0x00007febc853bf27 in pthread_spin_lock () from /lib64/libpthread.so.0
#1  0x00007febc8c870f3 in eina_spinlock_take (spinlock=0x5642478f57f4) at ../src/lib/eina/eina_inline_lock_posix.x:672
#2  0x00007febc8c887a7 in ecore_thread_cancel (thread=0x5642478f5500) at lib/ecore/ecore_thread.c:750
#3  0x00007febc90c8e6b in eio_file_cancel (ls=0x7febc8527cb0 <main_arena+144>) at lib/eio/eio_file.c:742
#4  0x00007febc90cfa5b in _eio_monitor_free (monitor=0x5642478f4570) at lib/eio/eio_monitor.c:41
#5  0x00007febc90cfb4d in _eio_monitor_event_cleanup_cb (user_data=0x0, func_data=0x7febb4008130)
    at lib/eio/eio_monitor.c:76
#6  0x00007febc8c43634 in _ecore_event_message_efl_object_destructor (obj=0x4000000071cd, pd=0x5642478aea70)
    at lib/ecore/ecore_event_message.c:73
#7  0x00007febc8a13ca3 in efl_destructor (obj=0x4000000071cd) at lib/eo/efl_object.eo.c:64
#8  0x00007febc8a0c56f in _efl_del_internal (obj=0x5642478ae9c0, 
    func_name=0x7febc8a188a8 <__FUNCTION__.14725> "efl_del", file=0x7febc8a17dbd "lib/eo/eo_base_class.c", line=694)
    at lib/eo/eo_private.h:297
#9  0x00007febc8a0c9e2 in _efl_unref_internal (obj=0x5642478ae9c0, 
    func_name=0x7febc8a188a8 <__FUNCTION__.14725> "efl_del", file=0x7febc8a17dbd "lib/eo/eo_base_class.c", line=694)
    at lib/eo/eo_private.h:378
#10 0x00007febc8a0e805 in efl_del (obj=0x4000000071cd) at lib/eo/eo_base_class.c:694
#11 0x00007febc8c5167f in _efl_loop_message_handler_message_clear (obj=0x4000000015b6, pd=0x56424784c260)
    at lib/ecore/efl_loop_message_handler.c:128
#12 0x00007febc8c51ae9 in efl_loop_message_handler_message_clear (obj=0x4000000015b6)
    at lib/ecore/efl_loop_message_handler.eo.c:18
#13 0x00007febc8c38752 in _ecore_event_shutdown () at lib/ecore/ecore_events.c:325
#14 0x00007febc8c334d0 in ecore_shutdown () at lib/ecore/ecore.c:442
#15 0x00007febc90cef00 in eio_shutdown () at lib/eio/eio_main.c:404
#16 0x00005642462c3549 in _eio_suite_shutdown () at tests/eio/eio_suite.c:44
#17 0x00007febc951d500 in srunner_run_teardown (fixture_list=0x5642478305c0, fork_usage=fork_usage@entry=CK_NOFORK)
    at check_run.c:382
#18 0x00007febc951dfe3 in tcase_run_checked_teardown (tc=0x564247830470) at check_run.c:394
#19 tcase_run_tfun_fork (i=0, tfun=0x564247830910, tc=0x564247830470, sr=0x564247830380) at check_run.c:496
#20 srunner_iterate_tcase_tfuns (tc=0x564247830470, sr=0x564247830380) at check_run.c:252
#21 srunner_run_tcase (tc=0x564247830470, sr=0x564247830380) at check_run.c:401
#22 srunner_iterate_suites (print_mode=<optimized out>, exclude_tags=0x0, include_tags=0x0, tcname=<optimized out>, 
    sname=0x0, sr=0x564247830380) at check_run.c:218
#23 srunner_run_tagged (sr=0x564247830380, sname=0x0, tcname=<optimized out>, include_tags=0x0, exclude_tags=0x0, 
    print_mode=<optimized out>) at check_run.c:815
#24 0x00005642462c30fc in _efl_suite_run_end (sr=0x564247830380, name=0x5642462cf502 "Eio_Sentry")
    at tests/eio/../efl_check.h:241
#25 0x00005642462c332a in _efl_suite_build_and_run (argc=0, argv=0x7fff0a2067c0, suite_name=0x5642462cf4f2 "Eio", 
    etc=0x5642464d6c40 <etc>, init=0x5642462c34c0 <_eio_suite_init>, shutdown=0x5642462c353c <_eio_suite_shutdown>)
    at tests/eio/../efl_check.h:305
#26 0x00005642462c3641 in main (argc=1, argv=0x7fff0a2067b8) at tests/eio/eio_suite.c:62