Page MenuHomePhabricator

evas_suite segfaults with invalid eina_cow_free
Closed, ResolvedPublic

Description

I'm trying to run
CK_FORK=no test/evas/.libs/lt-evas_suite "Object Textblock"

to debug T6986 but I'm getting intermittent segfaults now

Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007fc1b1911674 in eina_cow_free (cow=0x0, data=0x560452dcda10) at lib/eina/eina_cow.c:428
428	   if (cow->default_value == *data) return;

(gdb) bt
#0  0x00007fc1b1911674 in eina_cow_free (cow=0x0, data=0x560452dcda10) at lib/eina/eina_cow.c:428
#1  0x00007fc1b13b6a7d in _efl_canvas_filter_internal_efl_object_destructor (eo_obj=0x40000000405f, pd=0x560452dcda10)
    at lib/evas/canvas/evas_filter_mixin.c:751
#2  0x00007fc1b16ecb19 in efl_destructor (obj=0x40000000405f) at lib/eo/efl_object.eo.c:64
#3  0x00007fc1b1299eff in _efl_canvas_text_efl_object_destructor (eo_obj=0x40000000405f, o=0x560452dcd790) at lib/evas/canvas/evas_object_textblock.c:13298
#4  0x00007fc1b16ecb19 in efl_destructor (obj=0x40000000405f) at lib/eo/efl_object.eo.c:64
#5  0x00007fc1b16e53d9 in _efl_del_internal (obj=0x560452dcd5d0, func_name=0x7fc1b16f12f8 <__FUNCTION__.14670> "efl_del", 
    file=0x7fc1b16f080d "lib/eo/eo_base_class.c", line=694) at lib/eo/eo_private.h:297
#6  0x00007fc1b16e584c in _efl_unref_internal (obj=0x560452dcd5d0, func_name=0x7fc1b16f12f8 <__FUNCTION__.14670> "efl_del", 
    file=0x7fc1b16f080d "lib/eo/eo_base_class.c", line=694) at lib/eo/eo_private.h:378
#7  0x00007fc1b16e766f in efl_del (obj=0x40000000405f) at lib/eo/eo_base_class.c:694
#8  0x00007fc1b124a00d in evas_object_del (obj=0x40000000405f) at lib/evas/canvas/evas_object_main.c:1043
#9  0x00007fc1b12233c3 in evas_layer_pre_free (lay=0x560452da2490) at lib/evas/canvas/evas_layer.c:96
#10 0x00007fc1b1224f02 in _evas_canvas_efl_object_invalidate (eo_e=0x400000001c56, e=0x560452dfd840) at lib/evas/canvas/evas_main.c:349
#11 0x00007fc1b16ecd2f in efl_invalidate (obj=0x400000001c56) at lib/eo/efl_object.eo.c:72
#12 0x00007fc1b16e5adf in _efl_invalidate (obj=0x560452dfd7b0) at lib/eo/eo_base_class.c:171
#13 0x00007fc1b16e780d in _efl_object_parent_set (obj=0x400000001c56, pd=0x560452dfd7f0, parent_id=0x0) at lib/eo/eo_base_class.c:735
#14 0x00007fc1b16ebd5e in efl_parent_set (obj=0x400000001c56, parent=0x0) at lib/eo/efl_object.eo.c:12
#15 0x00007fc1b16e5b8d in _efl_invalidate (obj=0x560452d737e0) at lib/eo/eo_base_class.c:183
#16 0x00007fc1b16db05e in _efl_del_internal (obj=0x560452d737e0, func_name=0x7fc1b16efe88 <__FUNCTION__.14933> "efl_unref", 
    file=0x7fc1b16eec5a "lib/eo/eo.c", line=1935) at lib/eo/eo_private.h:290
#17 0x00007fc1b16db51f in _efl_unref_internal (obj=0x560452d737e0, func_name=0x7fc1b16efe88 <__FUNCTION__.14933> "efl_unref", 
    file=0x7fc1b16eec5a "lib/eo/eo.c", line=1935) at lib/eo/eo_private.h:378
#18 0x00007fc1b16e150b in efl_unref (obj_id=0x40000000004f) at lib/eo/eo.c:1935
#19 0x00007fc1af51fcc9 in efl_replace (storage=0x7fc1af781cb0 <_mainloop_singleton>, new_obj=0x0) at ../src/lib/eo/Eo.h:2077
#20 0x00007fc1af520a17 in _ecore_main_loop_shutdown () at lib/ecore/ecore_main.c:1088
#21 0x00007fc1af514c94 in ecore_shutdown () at lib/ecore/ecore.c:446
#22 0x00007fc1b1224782 in evas_shutdown () at lib/evas/canvas/evas_main.c:167
#23 0x00005604513582f2 in _evas_suite_shutdown () at tests/evas/evas_suite.c:41
#24 0x00007fc1b1ba5500 in srunner_run_teardown () from /lib64/libcheck.so.0
#25 0x00007fc1b1ba5a10 in tcase_run_tfun_nofork.isra () from /lib64/libcheck.so.0
#26 0x00007fc1b1ba5eee in srunner_run_tagged () from /lib64/libcheck.so.0
#27 0x0000560451357e79 in _efl_suite_run_end (sr=0x560452d72e30, name=0x0) at tests/evas/../efl_check.h:241
#28 0x0000560451358171 in _efl_suite_build_and_run (argc=1, argv=0x7ffcf91cb860, suite_name=0x5604513891ff "Evas", etc=0x56045159bc40 <etc>, 
    init=0x5604513581c9 <_evas_suite_init>, shutdown=0x5604513582b7 <_evas_suite_shutdown>) at tests/evas/../efl_check.h:329
#29 0x0000560451358414 in main (argc=2, argv=0x7ffcf91cb858) at tests/evas/evas_suite.c:56

I tried applying D6346 as it looked like it might resolve this, but it didn't.