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


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

Reply via email to