Closed Bug 491898 Opened 15 years ago Closed 15 years ago

Random Test Failure (browser_passwordmgrdlg.js)

Categories

(Toolkit :: Password Manager, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla1.9.2a1

People

(Reporter: sdwilsh, Assigned: ehsan.akhgari)

References

Details

(Keywords: fixed1.9.1, intermittent-failure)

Attachments

(1 file)

TEST-UNEXPECTED-FAIL | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 2 logins should match 'secret' - Got 0, expected 2
TEST-UNEXPECTED-FAIL | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | Timed out
TEST-UNEXPECTED-FAIL | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 2 logins should match 'secret' - Got 0, expected 2
TEST-UNEXPECTED-FAIL | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | Timed out

http://tinderbox.mozilla.org/showlog.cgi?log=Firefox/1241712330.1241719484.1806.gz&fulltext=1
OS X 10.5.2 mozilla-central unit test on 2009/05/07 09:05:30
Whiteboard: [orange]
The cycle right before this was testing the same changeset, and it was green. So something somewhere is clearly random. :(
The details of the test run, for future reference:

TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | Filter box should initially be empty
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | There should be 10 passwords initially
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 0 logins should match 'pass'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 10 logins should match ''
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 7 logins should match 'moz'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 7 logins should match 'mozi'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 7 logins should match 'mozil'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 7 logins should match 'mozill'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 7 logins should match 'mozilla'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 1 logins should match 'mozilla.com'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 4 logins should match 'user'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 1 logins should match 'user '
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 2 logins should match ' user'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 10 logins should match 'http'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 1 logins should match 'https'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 0 logins should match 'secret'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 0 logins should match 'secret!'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 4 logins should match 'pass'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 10 logins should match ''
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 7 logins should match 'moz'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 7 logins should match 'mozi'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 7 logins should match 'mozil'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 7 logins should match 'mozill'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 7 logins should match 'mozilla'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 2 logins should match 'mozilla.com'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 4 logins should match 'user'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 1 logins should match 'user '
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 2 logins should match ' user'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 10 logins should match 'http'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 1 logins should match 'https'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 2 logins should match 'secret'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 0 logins should match 'secret!'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 0 logins should match 'pass'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 4 logins should match 'pass'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 10 logins should match ''
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 10 logins should match ''
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 7 logins should match 'moz'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 7 logins should match 'moz'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 7 logins should match 'mozi'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 7 logins should match 'mozi'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 7 logins should match 'mozil'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 7 logins should match 'mozil'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 7 logins should match 'mozill'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 7 logins should match 'mozill'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 7 logins should match 'mozilla'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 7 logins should match 'mozilla'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 1 logins should match 'mozilla.com'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 2 logins should match 'mozilla.com'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 4 logins should match 'user'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 4 logins should match 'user'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 1 logins should match 'user '
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 1 logins should match 'user '
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 2 logins should match ' user'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 2 logins should match ' user'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 10 logins should match 'http'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 10 logins should match 'http'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 1 logins should match 'https'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 1 logins should match 'https'
TEST-PASS | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 0 logins should match 'secret'
NEXT ERROR TEST-UNEXPECTED-FAIL | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | 2 logins should match 'secret' - Got 0, expected 2
TEST-UNEXPECTED-FAIL | chrome://mochikit/content/browser/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js | Timed out
Attached patch Patch (v1)Splinter Review
The problem here is that toggleShowPasswords uses the closing of the confirmation prompt as a sign of the completion of the filtering of passwords after the toggling completes, and tries to compensate with a setTimeout call, but it turns out that this is not enough.

This patch explicitly adds a notification after the whole operation of toggling passwords completes and uses that notification inside the test to figure out if it's time to run the callback function inside of toggleShowPasswords.
Assignee: nobody → ehsan.akhgari
Status: NEW → ASSIGNED
Attachment #376607 - Flags: review?(dolske)
Comment on attachment 376607 [details] [diff] [review]
Patch (v1)

Meh. I'm not really thrilled about adding a useless-except-for-tests notification, but this is probably easiest. The only alternative I can think of would be to have the test poll the state of the Show/Hide button every X ms until it changes, which is also kind of meh.
Attachment #376607 - Flags: review?(dolske) → review+
...despite my grumpyness at the code, thanks for looking into this so quickly!
(In reply to comment #4)
> (From update of attachment 376607 [details] [diff] [review])
> Meh. I'm not really thrilled about adding a useless-except-for-tests
> notification, but this is probably easiest. The only alternative I can think of
> would be to have the test poll the state of the Show/Hide button every X ms
> until it changes, which is also kind of meh.

I'm not thrilled about it either, but on the bright side, a notification with no listeners attached should be fairly cheap, and this is not the first place in the code where such test-only notifications are used.  :-)
http://hg.mozilla.org/mozilla-central/rev/83683c0185c8
Status: ASSIGNED → RESOLVED
Closed: 15 years ago
Flags: in-testsuite+
Resolution: --- → FIXED
Target Milestone: --- → mozilla1.9.2a1
Comment on attachment 376607 [details] [diff] [review]
Patch (v1)

This would be a very nice fix for 1.9.1 and is virtually no-risk.  It will prevent possible random oranges on the test landed in bug 451352.
Attachment #376607 - Flags: approval1.9.1?
Whiteboard: [orange] → [needs 1.9.1 approval] [orange]
Comment on attachment 376607 [details] [diff] [review]
Patch (v1)

a191=beltzner

This doesn't thrill me either, but for the good of development ...
Mike, you forgot to toggle the flag on the patch itself...

I'm going to land this anyway...
Attachment #376607 - Flags: approval1.9.1? → approval1.9.1+
http://hg.mozilla.org/releases/mozilla-1.9.1/rev/7c2ee6fff7c3
Keywords: fixed1.9.1
Whiteboard: [needs 1.9.1 approval] [orange] → [orange]
Whiteboard: [orange]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: