Actually it's even more broken, because with a new build after your
unfix I don't experience the bug with fullscree rage anymore but I get
other segfaults. The backtrace attached is generated when I try to just
scroll a Libreoffice window.
Now I see that you just commit another change. I'm gonna try it and tell
you what happens :)
Carsten Haitzler (The Rasterman) ha scritto il 15/06/2015 alle 04:02:
> On Sun, 14 Jun 2015 09:59:27 +0200 Massimo Maiurana <[email protected]> said:
>
>> Thnaks again :)
>
> you have to unthank me. i broke it again once i found that my fix actually
> creates a leak and things neever get freed (thus why it fixed things). :) so
> it's back to b0rken again until i fugre out the refcounting problem. i found
> some possible refcount issues during a code read/review, and i fixed them up,
> but it seems we have more.
>
>> Carsten Haitzler (The Rasterman) ha scritto il 14/06/2015 alle 09:09:
>>> On Sat, 13 Jun 2015 08:47:25 +0200 Massimo Maiurana <[email protected]>
>>> said:
>>>
>>> fixed. commit 4e5521b4d82063a2fbf6632a117fda201cc1687d
>>>
>>> e comp - fix refcounting for e_comp and comp clients
>>>
>>> the refcoutning for e_comp and e comp clients seemed to be a bit off -
>>> i read over every ref and unref carefully and fix it. this leads to
>>> the com-_data being null (properly now), so now check for that too.
>>>
>>> :)
>>>
>>>> With a recent build of E, EFL and rage, I have a segfault every time I
>>>> close a rage fullscreen window. No problems if exit from fullscreen
>>>> before closing rage.
>>>> Attached is the generated backtrace.
>>>>
>>>> --
>>>> Massimo Maiurana
>>>> Ragusa (RG)
>>>
>>>
>>
>>
>> --
>> Massimo Maiurana
>> Ragusa (RG)
>>
>
>
--
Massimo Maiurana
Ragusa (RG)
Thread 3 (Thread 0x7fa94bcab700 (LWP 2419)):
#0 pthread_cond_wait@@GLIBC_2.3.2 () at
../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
No locals.
#1 0x00007fa95901515c in eina_condition_wait (cond=<optimized out>) at
../src/lib/eina/eina_inline_lock_posix.x:415
No locals.
#2 evas_thread_worker_func (data=0x7fa9593012cc
<evas_thread_queue_condition+12>, thread=128) at
lib/evas/common/evas_thread_render.c:75
cmd = 0xf35e50
len = 1493258528
max = 4294966784
__FUNCTION__ = "evas_thread_worker_func"
__PRETTY_FUNCTION__ = "evas_thread_worker_func"
#3 0x00007fa9597935d5 in _eina_internal_call (context=0xf35e50) at
lib/eina/eina_thread.c:117
c = 0xf35e50
r = <optimized out>
#4 0x00007fa9595480a4 in start_thread (arg=0x7fa94bcab700) at
pthread_create.c:309
__res = <optimized out>
pd = 0x7fa94bcab700
now = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140365097776896,
-5797140949675156073, 0, 140365343965280, 1, 140365097776896,
5827372663521009047, 5827334302054473111}, mask_was_saved = 0}}, priv = {pad =
{0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = <optimized out>
pagesize_m1 = <optimized out>
sp = <optimized out>
freesize = <optimized out>
__PRETTY_FUNCTION__ = "start_thread"
#5 0x00007fa955e3e04d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:111
No locals.
Thread 2 (Thread 0x7fa94808e700 (LWP 2426)):
#0 0x00007fa955e372b3 in select () at ../sysdeps/unix/syscall-template.S:81
No locals.
#1 0x00007fa95634cbfe in _drm_tick_core (data=0x19, thread=0xfc10a0) at
lib/ecore_x/xlib/ecore_x_vsync.c:310
wfds = {fds_bits = {0 <repeats 16 times>}}
ret = -514
tv = {tv_sec = 0, tv_usec = 91447}
rfds = {fds_bits = {16777216, 0 <repeats 15 times>}}
exfds = {fds_bits = {0 <repeats 16 times>}}
ref = 0x2bcad20
tick = 1
__FUNCTION__ = "_drm_tick_core"
#2 0x00007fa958c9b529 in _ecore_direct_worker (work=0xfc10a0) at
lib/ecore/ecore_thread.c:424
No locals.
#3 0x00007fa9597935d5 in _eina_internal_call (context=0x1002a30) at
lib/eina/eina_thread.c:117
c = 0x1002a30
r = <optimized out>
#4 0x00007fa9595480a4 in start_thread (arg=0x7fa94808e700) at
pthread_create.c:309
__res = <optimized out>
pd = 0x7fa94808e700
now = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140365034743552,
-5797140949675156073, 0, 140365343965280, 2, 140365034743552,
5827371035191532951, 5827334302054473111}, mask_was_saved = 0}}, priv = {pad =
{0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = <optimized out>
pagesize_m1 = <optimized out>
sp = <optimized out>
freesize = <optimized out>
__PRETTY_FUNCTION__ = "start_thread"
#5 0x00007fa955e3e04d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:111
No locals.
Thread 1 (Thread 0x7fa95a7138c0 (LWP 2418)):
#0 0x00007fa95954f24d in pause () at ../sysdeps/unix/syscall-template.S:81
No locals.
#1 <signal handler called>
No locals.
#2 0x00007fa955d8d107 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
resultvar = 0
pid = 2418
selftid = 2418
#3 0x00007fa955d8e4e8 in __GI_abort () at abort.c:89
save_stage = 2
act = {__sigaction_handler = {sa_handler = 0x4d430000, sa_sigaction =
0x4d430000}, sa_mask = {__val = {50328240, 8, 0, 0, 0, 0, 0, 1296236544,
50328240, 8, 206158430256, 140726510055664, 140726510055424,
9223373845036048245, 140365304041897, 9223373845036048245}}, sa_flags =
1906602160, sa_restorer = 0x2d52ab0}
sigs = {__val = {32, 0 <repeats 15 times>}}
#4 0x00007fa955dcb204 in __libc_message (do_abort=do_abort@entry=1,
fmt=fmt@entry=0x7fa955ebdfe0 "*** Error in `%s': %s: 0x%s ***\n") at
../sysdeps/posix/libc_fatal.c:175
ap = {{gp_offset = 40, fp_offset = 32681, overflow_arg_area =
0x7ffd71a472b0, reg_save_area = 0x7ffd71a47240}}
fd = 2
on_2 = <optimized out>
list = <optimized out>
nlist = <optimized out>
cp = <optimized out>
written = <optimized out>
#5 0x00007fa955dd09de in malloc_printerr (action=1, str=0x7fa955ebe0e8 "double
free or corruption (!prev)", ptr=<optimized out>) at malloc.c:4996
buf = "00000000031ee580"
cp = <optimized out>
#6 0x00007fa955dd16e6 in _int_free (av=<optimized out>, p=<optimized out>,
have_lock=0) at malloc.c:3840
size = <optimized out>
fb = <optimized out>
nextchunk = <optimized out>
nextsize = <optimized out>
nextinuse = <optimized out>
prevsize = <optimized out>
bck = <optimized out>
fwd = <optimized out>
errstr = <optimized out>
locked = <optimized out>
__func__ = "_int_free"
#7 0x00000000004d5208 in e_object_free (obj=<optimized out>) at
src/bin/e_object.c:150
No locals.
#8 e_object_unref (obj=0x972) at src/bin/e_object.c:152
__FUNCTION__ = "e_object_unref"
#9 0x00000000004580e7 in _e_comp_object_done_defer (data=0x30f9840,
obj=<optimized out>, emission=<optimized out>, source=<optimized out>) at
src/bin/e_comp_object.c:667
cw = 0x30f9840
__FUNCTION__ = "_e_comp_object_done_defer"
#10 0x00007fa9583f0421 in edje_match_callback_exec_check_finals
(prop=<optimized out>, ed=<optimized out>, source=0x7fa9597b33ca
<_eina_stringshare_single+202> "e", sig=0x2cf697c "e,action,show,done",
source_states=<optimized out>, signal_states=<optimized out>,
matches=<optimized out>, ssp=0x2cf75f0) at lib/edje/edje_match.c:556
idx = <optimized out>
run = {version = 1, data = 0x2d58960, total = 4, count = 1, step = 4,
__magic = 2557874747}
i = <optimized out>
cb = <optimized out>
j = <optimized out>
r = <optimized out>
#11 edje_match_callback_exec (ssp=0x2cf75f0, matches=<optimized out>,
sig=0x2cf697c "e,action,show,done", source=0x7fa9597b33ca
<_eina_stringshare_single+202> "e", ed=<optimized out>, prop=0 '\000') at
lib/edje/edje_match.c:711
signal_result = <optimized out>
source_result = <optimized out>
r = 0
#12 0x00007fa9583f66d7 in _edje_emit_cb (prop=<optimized out>, data=<optimized
out>, src=<optimized out>, sig=<optimized out>, ed=<optimized out>) at
lib/edje/edje_program.c:1423
m = 0x2fb1f10
match = 0x3038356565313330
ssp = 0x2cf75f0
r = 0
#13 _edje_emit_handle (ed=0x3005730, sig=0x2cf697c "e,action,show,done",
src=0x7fa9597b33ca <_eina_stringshare_single+202> "e",
sdata=0xffffffffffffffff, prop=48 '0') at lib/edje/edje_program.c:1376
No locals.
#14 0x00007fa9583f175f in _edje_message_queue_process () at
lib/edje/edje_message_queue.c:787
em = 0x30f0ce0
ed = 0x3005730
i = <optimized out>
__FUNCTION__ = "_edje_message_queue_process"
#15 0x00007fa9583f1907 in _edje_job (data=<optimized out>) at
lib/edje/edje_message_queue.c:154
No locals.
#16 0x00007fa958c94e3b in _ecore_job_event_handler (data=<optimized out>,
type=<optimized out>, ev=<optimized out>) at lib/ecore/ecore_job.c:121
job = <optimized out>
#17 0x00007fa958c8f895 in _ecore_call_handler_cb (event=<optimized out>,
type=<optimized out>, data=<optimized out>, func=<optimized out>) at
lib/ecore/ecore_private.h:386
r = <optimized out>
#18 _ecore_event_call () at lib/ecore/ecore_events.c:565
ret = 0 '\000'
e = 0x31d8d40
handle_count = 1
l = <optimized out>
l_next = <optimized out>
eh = 0xf212e0
#19 0x00007fa958c97308 in _ecore_main_loop_iterate_internal
(once_only=once_only@entry=0) at lib/ecore/ecore_main.c:1927
next_time = <optimized out>
#20 0x00007fa958c974e7 in ecore_main_loop_begin () at lib/ecore/ecore_main.c:983
No locals.
#21 0x00000000004379eb in main (argc=0, argv=0x1) at src/bin/e_main.c:1039
waslocked = 1 '\001'
s = 0x1 <error: Cannot access memory at address 0x1>
buff = "1434368276.4", '\000' <repeats 19 times>
action = {__sigaction_handler = {sa_handler = 0x4e80e0 <e_sigabrt_act>,
sa_sigaction = 0x4e80e0 <e_sigabrt_act>}, sa_mask = {__val = {0 <repeats 16
times>}}, sa_flags = -1073741820, sa_restorer = 0x0}
__FUNCTION__ = "main"
------------------------------------------------------------------------------
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel