mochitest-chrome: intermittent "TEST-UNEXPECTED-FAIL | .../test_space_key_pauses_resumes.xul | The download was paused, and then resumed to completion"

RESOLVED WORKSFORME

Status

SeaMonkey
Download & File Handling
RESOLVED WORKSFORME
8 years ago
6 years ago

People

(Reporter: Ian Neal, Assigned: Ian Neal)

Tracking

(Blocks: 1 bug, {intermittent-failure})

Trunk
seamonkey2.1b1
x86
Linux
intermittent-failure
Bug Flags:
in-testsuite +

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment, 2 obsolete attachments)

(Assignee)

Description

8 years ago
Created attachment 474548 [details] [diff] [review]
Remove wasFinished patch v0.1

s: cn-sea-qm-centos5-01
7503 ERROR TEST-UNEXPECTED-FAIL | chrome://mochikit/content/chrome/suite/common/downloads/tests/test_space_key_pauses_resumes.xul | The download was paused, and then resumed to completion

This is probably because we are removing the observer and then trying to trigger it.
(Assignee)

Comment 1

8 years ago
Created attachment 474553 [details] [diff] [review]
Remove wasFinished and no close patch v0.1a

Changes from 0.1:
* Don't try to close the window either.
Attachment #474548 - Attachment is obsolete: true
Attachment #474553 - Flags: review?(neil)

Comment 2

8 years ago
Comment on attachment 474553 [details] [diff] [review]
Remove wasFinished and no close patch v0.1a

This seems to be a backout of part of bug 474622, so maybe Jens understands it?
Attachment #474553 - Flags: review?(neil) → review?(jh)
Comment on attachment 474553 [details] [diff] [review]
Remove wasFinished and no close patch v0.1a

The test fails for me locally on Win7 with or without the patch, but only reproducibly on the first run (i.e. it always fails directly when loaded from the command line, but succeeds after following reloads more often than not). It seems to be a timing issue.

Your patch is making changes to code that is only executed after the test already failed (ok()). The reason why it fails is that the actual download never reaches the paused nor the resumed state, so this.wasResumed is never set (this.wasPaused is set irrespective of whether the DL was actually paused, which is a bit unclean). Basically, when the test fails, the download transitions from Downloading to Finished before the simulated key press is executed and takes effect (triggers the Paused state, which is a prerequisite for the other stages like resuming).

This is the aDownload.state order I see here when the test fails:
5 (Queued) -> 0 (Downloading) -> 7 (Scanning) P -> 1 (Finished) P
and when it succeeds:
5 -> 0 -> 4 (Paused) P -> 0 P R -> 7 P R -> 1 P R
where P and R are wasPaused and wasResumed, respectively.

I guess we'd somehow need to download a bigger file, or slow down the download artificially. For example I got consistently better results when downloading http://example.com/tests/fonts/mplus/mplus-1p-regular.ttf (500K) instead of http://example.com/httpd.js (147K). I guess the faster the machine the bigger the file needs to be or the test will fail. Guess what, I've got an i7 930 using fast HDs (SSD) here...
I wouldn't know how to slow down a download, though. Maybe the FF devs have suggestions for a better file to download or how to slow down a download.

BTW: I don't see any reason not to close the DM window. If that change had an effect on the outcome, OK, but it hasn't.
Attachment #474553 - Flags: review?(jh) → review-
(Assignee)

Comment 4

8 years ago
Created attachment 476534 [details] [diff] [review]
Use larger file for download and set variables when synthesizeKey is issued patch v0.2 [Checked in: Comment 7]

This patch:
* Moves removal of listener to after final call to it;
* Uses larger file as suggested by the reviewer;
* Re-wrote some of the code to provide more information about where in the test it is failing.
Attachment #474553 - Attachment is obsolete: true
Attachment #476534 - Flags: review?(jh)
This failure is intermittent, not perma-orange.
Example:
http://tinderbox.mozilla.org/showlog.cgi?log=SeaMonkey/1284792960.1284796168.15928.gz
Linux comm-central-trunk debug test mochitest-other on 2010/09/17 23:56:00
Blocks: 452942
Component: Testing Infrastructure → Download & File Handling
QA Contact: testing-infrastructure → download
Summary: [SM 2.1]TEST-UNEXPECTED-FAIL test_space_key_pauses_resumes.xul → mochitest-chrome: intermittent "TEST-UNEXPECTED-FAIL | .../test_space_key_pauses_resumes.xul | The download was paused, and then resumed to completion"
Whiteboard: [sm-perma][orange] → [orange]
Comment on attachment 476534 [details] [diff] [review]
Use larger file for download and set variables when synthesizeKey is issued patch v0.2 [Checked in: Comment 7]

This works reliably now, and only enters the states that are expected (order: Downloading, Paused (P), Downloading (PR), Finished (PR). Nice!

You could get rid of one "else" if you used "return" instead of "break", and "default" isn't really needed either, but I'll leave both to you since it's a matter of preference and only a test anyway.

I was at first a little concerned about setting wasPaused/wasResumed prior to carrying out the action, but then we won't reach the respective state anyway if the keypress is not fired. And again, it's just a test.
Attachment #476534 - Flags: review?(jh) → review+
(Assignee)

Comment 7

8 years ago
Comment on attachment 476534 [details] [diff] [review]
Use larger file for download and set variables when synthesizeKey is issued patch v0.2 [Checked in: Comment 7]

http://hg.mozilla.org/comm-central/rev/d0ebf190146f
Attachment #476534 - Attachment description: Use larger file for download and set variables when synthesizeKey is issued patch v0.2 → Use larger file for download and set variables when synthesizeKey is issued patch v0.2 [Checked in: Comment 7]
(Assignee)

Updated

8 years ago
Status: ASSIGNED → RESOLVED
Last Resolved: 8 years ago
Resolution: --- → FIXED
Flags: in-testsuite+
(Assignee)

Comment 8

8 years ago
Still failing, so re-opening.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
http://hg.mozilla.org/comm-central/rev/f99a3a6d6374
"Add extra output to try and diagnose issue"
IanN, for future, please use |info()| in Mochitests instead of |ok(true, msg)| since we're not actually TESTING something, and instead just want extra spew.

[http://hg.mozilla.org/comm-central/rev/f99a3a6d6374]

see-also an example us at: http://mxr.mozilla.org/comm-central/source/mozilla/toolkit/components/places/tests/browser/browser_bug399606.js#64
Failed again:
s: cn-sea-qm-centos5-01
http://tinderbox.mozilla.org/showlog.cgi?log=SeaMonkey/1285688428.1285692068.26166.gz

7501 INFO TEST-START | chrome://mochikit/content/chrome/suite/common/downloads/tests/test_space_key_pauses_resumes.xul
SSLTUNNEL(0x8623eb8): poll timeout, looping
SSLTUNNEL(0x8623eb8): polling flags csock(0)=--, ssock(1)=R-
SSLTUNNEL(0x8623eb8): poll timeout, looping
SSLTUNNEL(0x8623eb8): polling flags csock(0)=--, ssock(1)=R-
SSLTUNNEL(0x8623eb8): poll timeout, looping
SSLTUNNEL(0x8623eb8): polling flags csock(0)=--, ssock(1)=R-
SSLTUNNEL(0x8623eb8): poll timeout, looping
SSLTUNNEL(0x8623eb8): polling flags csock(0)=--, ssock(1)=R-
--DOMWINDOW == 48 (0xdd29178) [serial = 815] [outer = 0xae2ff10] [url = chrome://mochikit/content/chrome/suite/common/downloads/tests/test_drag.xul]
--DOMWINDOW == 47 (0xb7a9aa0) [serial = 817] [outer = 0xd57d0e0] [url = about:blank]
--DOMWINDOW == 46 (0xd57d118) [serial = 816] [outer = (nil)] [url = chrome://communicator/content/downloads/downloadmanager.xul]
--DOMWINDOW == 45 (0xc490190) [serial = 818] [outer = 0xae2ff10] [url = chrome://mochikit/content/chrome/suite/common/downloads/tests/test_enter_dblclick_opens.xul]
--DOMWINDOW == 44 (0xddeef48) [serial = 820] [outer = 0xe2bd1b8] [url = about:blank]
--DOMWINDOW == 43 (0xe2bd1f0) [serial = 819] [outer = (nil)] [url = chrome://communicator/content/downloads/downloadmanager.xul]
--DOMWINDOW == 42 (0xaa9cfe8) [serial = 821] [outer = 0xae2ff10] [url = chrome://mochikit/content/chrome/suite/common/downloads/tests/test_multi_select.xul]
--DOMWINDOW == 41 (0xdc8b748) [serial = 823] [outer = 0xc1f5f10] [url = about:blank]
--DOMWINDOW == 40 (0xc1f5f48) [serial = 822] [outer = (nil)] [url = chrome://communicator/content/downloads/downloadmanager.xul]
--DOMWINDOW == 39 (0xca7ff18) [serial = 824] [outer = 0xae2ff10] [url = chrome://mochikit/content/chrome/suite/common/downloads/tests/test_multiword_search.xul]
--DOMWINDOW == 38 (0xca52e50) [serial = 826] [outer = 0xd367eb8] [url = about:blank]
--DOMWINDOW == 37 (0xd367ef0) [serial = 825] [outer = (nil)] [url = chrome://communicator/content/downloads/downloadmanager.xul]
--DOMWINDOW == 36 (0xc8fb000) [serial = 827] [outer = 0xae2ff10] [url = chrome://mochikit/content/chrome/suite/common/downloads/tests/test_open_properties.xul]
--DOMWINDOW == 35 (0xd5711f8) [serial = 829] [outer = 0xd9cba38] [url = about:blank]
--DOMWINDOW == 34 (0xd9cba70) [serial = 828] [outer = (nil)] [url = chrome://communicator/content/downloads/downloadmanager.xul]
--DOMWINDOW == 33 (0xe5dbeb0) [serial = 831] [outer = 0xdc9bfe8] [url = about:blank]
--DOMWINDOW == 32 (0xdc9c020) [serial = 830] [outer = (nil)] [url = chrome://communicator/content/downloads/progressDialog.xul]
--DOMWINDOW == 31 (0xdef1828) [serial = 833] [outer = 0xd381000] [url = about:blank]
--DOMWINDOW == 30 (0xd381038) [serial = 832] [outer = (nil)] [url = chrome://communicator/content/downloads/progressDialog.xul]
--DOMWINDOW == 29 (0xdb92930) [serial = 812] [outer = 0xae2ff10] [url = chrome://mochikit/content/chrome/suite/common/downloads/tests/test_delete_key_removes.xul]
--DOMWINDOW == 28 (0xd912a40) [serial = 814] [outer = 0xe2d7240] [url = about:blank]
--DOMWINDOW == 27 (0xe2d7278) [serial = 813] [outer = (nil)] [url = chrome://communicator/content/downloads/downloadmanager.xul]
--DOCSHELL 0xd3ebb20 == 10
--DOCSHELL 0xde0dea8 == 9
--DOCSHELL 0xdb7a180 == 8
WARNING: NS_ENSURE_TRUE(sf) failed: file /builds/slave/comm-central-trunk-linux-debug/build/mozilla/docshell/base/nsDocShell.cpp, line 4915
WARNING: NS_ENSURE_TRUE(sf) failed: file /builds/slave/comm-central-trunk-linux-debug/build/mozilla/docshell/base/nsDocShell.cpp, line 4915
++DOMWINDOW == 28 (0xc490190) [serial = 846] [outer = 0xae2ff10]
SSLTUNNEL(0x8623eb8): poll timeout, looping
SSLTUNNEL(0x8623eb8): polling flags csock(0)=--, ssock(1)=R-
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80040111: file /builds/slave/comm-central-trunk-linux-debug/build/mozilla/toolkit/components/downloads/src/nsDownloadManager.cpp, line 1459
pldhash: for the table at address 0xbccb880, the given entrySize of 48 probably favors chaining over double hashing.
++DOCSHELL 0xbccb818 == 9
++DOMWINDOW == 29 (0xc18f948) [serial = 847] [outer = (nil)]
WARNING: Subdocument container has no content: file /builds/slave/comm-central-trunk-linux-debug/build/mozilla/layout/base/nsDocumentViewer.cpp, line 2403
WARNING: Context has no global.: file /builds/slave/comm-central-trunk-linux-debug/build/mozilla/dom/base/nsJSEnvironment.cpp, line 2410
++DOMWINDOW == 30 (0xdbcf950) [serial = 848] [outer = 0xc18f910]
WARNING: NS_ENSURE_TRUE(sf) failed: file /builds/slave/comm-central-trunk-linux-debug/build/mozilla/docshell/base/nsDocShell.cpp, line 4915
WARNING: NS_ENSURE_TRUE(sf) failed: file /builds/slave/comm-central-trunk-linux-debug/build/mozilla/docshell/base/nsDocShell.cpp, line 4915
WARNING: Subdocument container has no content: file /builds/slave/comm-central-trunk-linux-debug/build/mozilla/layout/base/nsDocumentViewer.cpp, line 2403
WARNING: 1 sort operation has occurred for the SQL statement '0xd4b9300'.  See https://developer.mozilla.org/En/Storage/Warnings details.: file /builds/slave/comm-central-trunk-linux-debug/build/mozilla/storage/src/mozStoragePrivateHelpers.cpp, line 138
7502 INFO TEST-INFO | chrome://mochikit/content/chrome/suite/common/downloads/tests/test_space_key_pauses_resumes.xul | before wait for focus -- loaded: complete active window: ([object ChromeWindow @ 0xd357618 (native @ 0xc18f948)]) chrome://communicator/content/downloads/downloadmanager.xul focused window: ([object ChromeWindow @ 0xd357618 (native @ 0xc18f948)]) chrome://communicator/content/downloads/downloadmanager.xul desired window: ([object ChromeWindow @ 0xd357618 (native @ 0xc18f948)]) chrome://communicator/content/downloads/downloadmanager.xul child window: ([object ChromeWindow @ 0xd357618 (native @ 0xc18f948)]) chrome://communicator/content/downloads/downloadmanager.xul docshell visible: true
7503 INFO TEST-INFO | chrome://mochikit/content/chrome/suite/common/downloads/tests/test_space_key_pauses_resumes.xul | already focused
7504 INFO TEST-INFO | chrome://mochikit/content/chrome/suite/common/downloads/tests/test_space_key_pauses_resumes.xul | maybe run tests <load:true, focus:true> -- loaded: complete active window: ([object ChromeWindow @ 0xd357618 (native @ 0xc18f948)]) chrome://communicator/content/downloads/downloadmanager.xul focused window: ([object ChromeWindow @ 0xd357618 (native @ 0xc18f948)]) chrome://communicator/content/downloads/downloadmanager.xul desired window: ([object ChromeWindow @ 0xd357618 (native @ 0xc18f948)]) chrome://communicator/content/downloads/downloadmanager.xul child window: ([object ChromeWindow @ 0xd357618 (native @ 0xc18f948)]) chrome://communicator/content/downloads/downloadmanager.xul docshell visible: true
7505 INFO TEST-PASS | chrome://mochikit/content/chrome/suite/common/downloads/tests/test_space_key_pauses_resumes.xul | State value = 5
SSLTUNNEL(0x8623eb8): poll timeout, looping
SSLTUNNEL(0x8623eb8): polling flags csock(0)=--, ssock(1)=R-
SSLTUNNEL(0x8623eb8): poll timeout, looping
SSLTUNNEL(0x8623eb8): polling flags csock(0)=--, ssock(1)=R-
7506 INFO TEST-PASS | chrome://mochikit/content/chrome/suite/common/downloads/tests/test_space_key_pauses_resumes.xul | State value = 0
7507 INFO TEST-PASS | chrome://mochikit/content/chrome/suite/common/downloads/tests/test_space_key_pauses_resumes.xul | The download was started successfully
7508 INFO TEST-PASS | chrome://mochikit/content/chrome/suite/common/downloads/tests/test_space_key_pauses_resumes.xul | State value = 1
NEXT ERROR 7509 ERROR TEST-UNEXPECTED-FAIL | chrome://mochikit/content/chrome/suite/common/downloads/tests/test_space_key_pauses_resumes.xul | The download was paused, and then resumed to completion
7510 INFO SimpleTest finished chrome://mochikit/content/chrome/suite/common/downloads/tests/test_space_key_pauses_resumes.xul in 7950ms
SSLTUNNEL(0x8623eb8): poll timeout, looping
SSLTUNNEL(0x8623eb8): polling flags csock(0)=--, ssock(1)=R-
Comment hidden (Treeherder Robot)
Comment hidden (Treeherder Robot)
Mass marking whiteboard:[orange] bugs WFM (to clean up TBPL bug suggestions) that:
* Haven't changed in > 6months
* Whose whiteboard contains none of the strings: {disabled,marked,random,fuzzy,todo,fails,failing,annotated,leave open,time-bomb}
* Passed a (quick) manual inspection of bug summary/whiteboard to ensure they weren't a false positive.

I've also gone through and searched for cases where the whiteboard wasn't labelled correctly after test disabling, by using attachment description & basic comment searches. However if the test for which this bug was about has in fact been disabled/annotated/..., please accept my apologies & reopen/mark the whiteboard appropriately so this doesn't get re-closed in the future (and please ping me via IRC or email so I can try to tweak the saved searches to avoid more edge cases).

Sorry for the spam! Filter on: #FFA500
Status: REOPENED → RESOLVED
Last Resolved: 8 years ago6 years ago
Resolution: --- → WORKSFORME
Keywords: intermittent-failure
Whiteboard: [orange]
You need to log in before you can comment on or make changes to this bug.