On Mon, 8 Jan 2024 23:20:16 -0800 Ross Vandegrift <r...@kallisti.us> said:

> On Mon, Jan 08, 2024 at 11:08:55PM +0000, Carsten Haitzler wrote:
> > try run the above eina test suite and pipe to something that makes it
> > timeout... and strace it - or gdb attach to it and find out where it's
> > sitting? it should complete in < 1 sec so launch and immediately try and
> > strace and/or gdb attach and find out where it's at - if it is still around.
> > 
> > is somehow a forked child not coming back that it expects to... ?
> 
> Yea, it's something like this.  I found out it hangs for exactly 60s, which
> lead me to timeout.c.  I also learned strace -f triggers the issue.
> CK_FORK=no fixes the hang as well.
> 
> I added debug printfs to efl_check.h and timeout.c - when eina_suite tries to
> kill timeout, it kills the wrong pid:
> 
>   $ ./build/src/tests/eina/eina_suite fp
>   Running suite(s): eina_init_module
>   100%: Checks: 0, Failures: 0, Errors: 0
>   -------------------- efl_check forked timeout: 296393    <-----
>   -------------------- efl_check forked timeout: 0
>   Running suite(s): Eina
>   -------------------- timeout.c my pid: 296396            <-----
>   Max delta(multiplication): 0.007627 (0.061668%)
>   Max delta(division): 0.000173 (0.740211%)
>   100%: Checks: 4, Failures: 0, Errors: 0
>   -------------------- efl_check killing timeout child: 296393
>   -------------------- efl_check cleared timeout_pid: 0
> 
> So eina_suite.c gets the wrong pid from fork().  In a simple standalone
> program, fork() behaves as expected.
> 
> I'm going to compare the arch & debian check packages for any suspicious
> differences.  And maybe walk through more carefully with gdb.  But I'm out of
> time tonight.
> 
> Ross

some more testing. i ran:

 ./src/tests/eina/eina_suite | wc -l

and... guess what... eina_suite has gone but wc is still there waiting. this is 
far deeper... is there some cgroup, selinux or something thing getting in the 
way? is it a kernel bug? a glibc bug? i just have to say.. i the efl test 
process is gone - and wc is still waiting the problem is somewhere in the 
plumbing between these IMHO... at least that's what my brain is thinking right 
now. pstree:

        │         │         │                 │               
├─terminology─┬─zsh───wc
        │         │         │                 │               │             
└─3*[{terminology}]

:(


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
Carsten Haitzler - ras...@rasterman.com



_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to