After some debugging (thanks to access to a VM provided by Santiago), I found the probably cause here: The test command that fails is

tests/C/test-cairo-xw.c

and this is the first program that requires X11. This code here:

  XW.display = XOpenDisplay (NULL);
  XW.screennum = DefaultScreen (XW.display);

What happens is that xfvb-run does not really wait until the X server is able to be connected. From its sources:

    wait || :
    if kill -0 $XVFBPID 2>/dev/null; then
        break

which means that it just waits until the X server can answer a signal, which may be too early. So, the XOpenDisplay() in test-cairo-xw.c will fail and return NULL, which is then taken unconditionally used as parameter for DefaultScreen(), which then produces the segfault.

So, I think the reason is a buggy xvfb-run in combination with a slow machine.

Therefore, my proposal would be to re-assign this to xvfb and lower the importance to "important". Introducing artificial sleeps in the giza build would seem fishy to me.

Better ideas anyone?

Best

Ole

Reply via email to