FaviconFetcherTests random failures in silo builds
| Affects | Status | Importance | Assigned to | Milestone | |
|---|---|---|---|---|---|
| | qtbase-opensource-src (Ubuntu) |
Undecided
|
Unassigned | ||
| | webbrowser-app (Ubuntu) |
Critical
|
Olivier Tilloy | ||
Bug Description
Since yesterday (2015-09-21), FaviconFetcherTests started failing at random in silo builds (not failing all the time, but in about 50% of the builds).
Since it has been happening in several silos, it’s very unlikely that it’s a change in webbrowser-app itself that triggered the failure. It’s more likely a change somewhere else in the stack that triggered a bug that was already there.
Related branches
- Ugo Riboni (community): Approve on 2015-10-13
- PS Jenkins bot: Approve (continuous-integration) on 2015-10-08
-
Diff: 84 lines (+22/-13)1 file modifiedtests/unittests/favicon-fetcher/tst_FaviconFetcherTests.cpp (+22/-13)
| Olivier Tilloy (osomon) wrote : | #1 |
| Changed in webbrowser-app (Ubuntu): | |
| importance: | Undecided → Critical |
| status: | New → Triaged |
| status: | Triaged → In Progress |
| assignee: | nobody → Olivier Tilloy (osomon) |
| Olivier Tilloy (osomon) wrote : | #2 |
When the test fails, it appears TestHTTPServer:
On the FaviconFetcher side, the request is emitted, but immediately after I’m seeing the "QIODevice::write: device not open" warning. The test server receives the incoming connection but it is immediately disconnected so it discards the client socket.
| Olivier Tilloy (osomon) wrote : | #3 |
Mirv suggested that https:/
In doubt, I’ll mark qtbase-
| Changed in webbrowser-app (Ubuntu): | |
| status: | In Progress → Confirmed |
| status: | Confirmed → Triaged |
| Timo Jyrinki (timo-jyrinki) wrote : | #4 |
The bug fix https:/
We don't close the socket anymore in slots where it is anyway in a closed state afterwards. This prevents event/stack recursions.". Could the type change to DirectConnection cause this change of behavior?
I've rebuilt Scopes packages, unity8, and download manager to have unit test results in addition to autopilot tests that I did earlier, and it still seems to be that the only flakiness is this webbrowser-app unit test, and on x86 only: https:/
I've asked pstolowski to look whether he can see a delta with/without the patch. He mentioned there have been some 'device is open' in bug reports in the past, which is one of the symptoms being fixed by the bug fix.
It's also useful to know that this bug fix itself is a bug fix to an earlier fix https:/
To switch between with/without patch, the revert of this latter patch is in silo 054. One can use the pinning (https:/
| Olivier Tilloy (osomon) wrote : | #5 |
Seen an armhf build failure yesterday, so I’ll update the description, the issue is not specific to amd64 and i386.
| description: | updated |
| Olivier Tilloy (osomon) wrote : | #6 |
I can now easily reproduce the failure on my laptop by running the test while the system is under a heavy load (running a bunch of "cat /dev/urandom > /dev/null" processes help).
| Olivier Tilloy (osomon) wrote : | #7 |
When the test fails, the test server reports a QAbstractSocket
| Changed in webbrowser-app (Ubuntu): | |
| status: | Triaged → In Progress |
| Launchpad Janitor (janitor) wrote : | #8 |
This bug was fixed in the package webbrowser-app - 0.23+15.
---------------
webbrowser-app (0.23+15.
[ CI Train Bot ]
* New rebuild forced.
* Resync trunk.
[ Olivier Tilloy ]
* Add an exception to the generated apparmor profile to allow reading
HERE’s TOS in the browser. (LP: #1507667)
* Modify the generated apparmor profile to allow rw access to
/dev/
* Update translation template.
[ Ugo Riboni ]
* Fix inability to drag the map to pan in Google maps, on desktop.
(LP: #1503506)
* Implement support for allowing or denying access to media input
devices and for setting default media input devices. (LP: #1410996)
* Refactor the BookmarksModel to be a singleton.
-- Olivier Tilloy <email address hidden> Thu, 22 Oct 2015 15:07:49 +0000
| Changed in webbrowser-app (Ubuntu): | |
| status: | In Progress → Fix Released |


It took me a while to manage to reproduce locally, but here it is, the failing test is shouldCancelReq uests, and the failure message is:
'serverSpy- >wait() ' returned FALSE. ()
Full XML output for the failing test is:
<testcase result="fail" name="shouldCan celRequests" > "QIODevice: :write: device not open" type="qwarn" --> "' serverSpy& #x002D; >wait( )' returned FALSE. ()" result="fail"/>
<!-- message=
<failure message=
</testcase>