Closed
Bug 498535
Opened 16 years ago
Closed 16 years ago
Make mozmill test timeouts more realistic,
Categories
(Thunderbird :: General, defect)
Thunderbird
General
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: asuth, Assigned: asuth)
Details
Attachments
(1 file)
7.66 KB,
patch
|
standard8
:
review+
|
Details | Diff | Splinter Review |
Mozmill tests were failing on my Mac Mini due to insufficient timeout durations. This resolves that issue for me.
I believe there may be another issue related to re-definition of Cc/Ci/Cu that davida is pursuing.
This patch does include one other minor change, which is that it removes some ill-advised exception-catching detritus in runtest.py. The exception handler was originally used to compel us to dump our results even when an exception happens. (On linux, mozmill frequently tries to kill an already-dead process, which results in an exception.) This need was later obviated by using the atexit module instead.
The motivating exception for the change is an ECONNREFUSED exception that is sometimes observed. I think I actually know what is happening, but it would be good to know for sure/be able to diagnose future exceptions without having to make this change then (and have people curse my name for having that useless catch there):
1) Thunderbird starts up, jsbridge accepts connections.
2) jsbridge's wait_and_create_network method successfully connects to that Thunderbird instance. (It has an initial loop that expects socket failures up until the time when it connects successfully.)
3) Thunderbird restart logic shuts down thunderbird and the jsbridge listener.
4) The jsbridge logic tries to connect (thinking Thunderbird is now up for good), but since Thunderbird and jsbridge are dead, it gets ECONNREFUSED and dies.
5) Thunderbird comes back, but it doesn't matter because runtest.py is dead.
Ideally, we could avoid running Thunderbird in a situation where it needs to restart, so the situation is avoided entirely. Unfortunately, I'm pretty sure things don't work at all if we preclude reloads. We should probably be able to get away with forcing an explicit earlier step that causes the required XPCOM registrations to happen, although I vaguely recall trying that and having difficulties.
The jsbridge problem should likely be a different bug... feel free to copy-and-paste my analysis or clone the bug or whatever.
Attachment #383388 -
Flags: review?(bugzilla)
Comment 1•16 years ago
|
||
Comment on attachment 383388 [details] [diff] [review]
v1 make timeouts for mozmill window helper support code more reasonable
>diff --git a/mail/test/mozmill/runtest.py b/mail/test/mozmill/runtest.py
>--- a/mail/test/mozmill/runtest.py
>+++ b/mail/test/mozmill/runtest.py
>@@ -269,12 +269,9 @@ def prettyPrintResults():
> for failure in result['fails']:
> if 'exception' in failure:
> prettyPrintException(failure['exception'])
>
> import atexit
> atexit.register(prettyPrintResults)
>
> if __name__ == '__main__':
>- try:
>- ThunderTestCLI().run()
>- except Exception, e:
>- print 'There was an exception', e
>+ ThunderTestCLI().run()
This part is already in
Updated•16 years ago
|
Attachment #383388 -
Flags: review?(bugzilla) → review+
Comment 3•16 years ago
|
||
Comment on attachment 383388 [details] [diff] [review]
v1 make timeouts for mozmill window helper support code more reasonable
r=Standard8 on the basis I get the same results before and after with this patch.
Assignee | ||
Comment 4•16 years ago
|
||
Status: ASSIGNED → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•