Bug 133516

Summary: [GTK] TestWebKitAPI/Tests/WebKit2Gtk/TestPrinting time outs when some of the GTK Print backends are not built.
Product: WebKit Reporter: Carlos Alberto Lopez Perez <clopez>
Component: Tools / TestsAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: bugs-noreply, cgarcia, gns, mrobinson
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   

Description Carlos Alberto Lopez Perez 2014-06-04 10:03:26 PDT
On the 32-bits GTK Release bot, the API test TestWebKitAPI/WebKit2Gtk/TestPrinting times out

Log: http://build.webkit.org/builders/GTK%20Linux%2032-bit%20Release/builds/44458/steps/API%20tests/logs/stdio

Possible cause: unknown.

I don't have at hand a 32-bit machine now to test it.
Comment 1 Carlos Alberto Lopez Perez 2014-09-01 18:20:06 PDT
I've debugging this issue. The failure is not 32-bit specific.

The issue happens (on any architecture) when GTK+ was built without enabling the CUPS backend (gtk-3.6) or the cloudprint backend (gtk-3.12).

The 32-bit build bot is building GTK+ like this:

        GTK+ 3.6.0
        ===========

        GDK backends:         x11
        X11 extensions:       XKB Xinerama XI2.2 XRANDR XFIXES Composite DAMAGE
        Print backends:       file lpr
        [...] http://build.webkit.org/builders/GTK%20Linux%2032-bit%20Release/builds/46618/steps/jhbuild/logs/stdio


The 64-bit build bot is however building the CUPS backend:

        GTK+ 3.6.0
        ===========

        GDK backends:         x11
        X11 extensions:       XKB Xinerama XI2.2 XRANDR XFIXES Composite DAMAGE
        Print backends:       file lpr cups
        [...] http://build.webkit.org/builders/GTK%20Linux%2064-bit%20Release%20%28Tests%29/builds/2471/steps/jhbuild/logs/stdio


The test timeouts on the first case (cups is not built).

I tried to build manually gtk+ with "--disable-cups" and I can reproduce the issue. I can also reproduce it by temporally moving the cups module file (WebKitBuild/Dependencies/Root/lib64/gtk-3.0/3.0.0/printbackends/libprintbackend-cups.so) to a temporally directory, so GTK+ can't load it.

In the test, the timeout seems to be in the callback to printFinishedCallback: is not triggered.

I tried with gtk-3.12 and the same thing happens, but instead of happening with the cups backend, now happens with the cloudprint one.

I'm not sure about what is happening, but at first sight it seems a bug in GTK+
Comment 2 Carlos Alberto Lopez Perez 2014-09-02 06:05:17 PDT
This fixed the test on my tries:

$ apt-get install libcups2-dev cups-daemon
$ Tools/jhbuild/jhbuild-wrapper --gtk buildone --force gtk+


For some reason (at least on Debian), cups-daemon is required, otherwise the test still time outs.
Comment 3 Carlos Alberto Lopez Perez 2014-09-02 07:56:46 PDT
(In reply to comment #2)
> This fixed the test on my tries:
> 
> $ apt-get install libcups2-dev cups-daemon

kov installed this on the 32-bit buildbot. Now the test passes. The bot is green :)
Comment 4 Carlos Alberto Lopez Perez 2014-09-02 08:16:09 PDT
(In reply to comment #3)
> (In reply to comment #2)
> > This fixed the test on my tries:
> > 
> > $ apt-get install libcups2-dev cups-daemon
> 
> kov installed this on the 32-bit buildbot. Now the test passes. The bot is green :)

It also fixed it on the ARM buildbot.