Closed
Bug 1088590
Opened 10 years ago
Closed 9 years ago
Add support for timeouts in tools
Categories
(Release Engineering :: Release Automation: Other, defect, P2)
Release Engineering
Release Automation: Other
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: massimo, Assigned: massimo)
References
Details
Attachments
(2 files, 8 obsolete files)
17.32 KB,
patch
|
rail
:
review+
massimo
:
checked-in+
|
Details | Diff | Splinter Review |
1.16 KB,
patch
|
massimo
:
review+
pmoore
:
checked-in+
|
Details | Diff | Splinter Review |
Recently, during the release process for Firefox 34.0b3, we had two hg timeouts checking out locales. We have retry() function around most of the hg operations but if a request takes too long, the process is terminated by buildbot, so retry() never happens. We should add an optional timeout parameter in retry(), so if a retried operation is not completed after a given amount of time, it raises an exception and retry takes care of re-running it. retry code in tools: https://mxr.mozilla.org/build/source/tools/lib/python/util/retry.py
Assignee | ||
Comment 1•10 years ago
|
||
Actually, we have run_cmd_periodic_poll() which can be used to manipulate a process if it runs for longer than 'warning_interval' seconds, so there's no need to update retry() This patch enables the use of run_cmd_periodic_poll() in apply_and_push() so now tag-release.py can terminate a hg push if it takes longer than 120 seconds.
Assignee: nobody → mgervasini
Attachment #8514478 -
Flags: review?(nthomas)
Comment 2•10 years ago
|
||
Comment on attachment 8514478 [details] [diff] [review] [tools] Bug 1088590 - Add a timeout for retries.patch Seems fine to me, and 120 seconds should be plenty for the small number of changesets we push in tagging. catlee, you know this code well, could you take a look too ?
Attachment #8514478 -
Flags: review?(nthomas)
Attachment #8514478 -
Flags: review?(catlee)
Attachment #8514478 -
Flags: review+
Comment 3•10 years ago
|
||
Comment on attachment 8514478 [details] [diff] [review] [tools] Bug 1088590 - Add a timeout for retries.patch Review of attachment 8514478 [details] [diff] [review]: ----------------------------------------------------------------- ::: lib/python/util/commands.py @@ +259,5 @@ > +def terminate_on_timeout(start_time, elapsed, proc): > + """a callback to use with run_cmd_periodic_poll, that terminates the process > + after a given timeout""" > + log.debug("operation timeout after %s seconds)" % (str(elapsed))) > + log.debug("terminating %s" % (proc)) I would use something like log.warn or even log.error here. Also a small style nit: using log.debug("terminating %s", proc) is preferred over log.debug("terminating %s" % (proc)) if we're using standard python logging.
Attachment #8514478 -
Flags: review?(catlee) → review+
Assignee | ||
Comment 4•10 years ago
|
||
Comment on attachment 8514478 [details] [diff] [review] [tools] Bug 1088590 - Add a timeout for retries.patch Thanks Nick & Chris for the reviews. Landed with changes in comment #3
Attachment #8514478 -
Flags: checked-in+
Comment 5•10 years ago
|
||
Comment on attachment 8514478 [details] [diff] [review] [tools] Bug 1088590 - Add a timeout for retries.patch I backed this out at 71c12bc85a1c. hg.m.o seems to accept changes quickly, then be slow to sync them out to the webheads. If we retry before it's done we get multiple tags like this http://hg.mozilla.org/releases/mozilla-beta/pushloghtml?fromchange=8e812440658b&tochange=ee3571fc463c (pushlog isn't showing relbranches at the moment) Reading back on this bug, it was originally filed for cloning timeouts and we patched pushing. Something changed ?
Attachment #8514478 -
Flags: checked-in+ → checked-in-
Assignee | ||
Comment 6•10 years ago
|
||
(In reply to Nick Thomas [:nthomas] from comment #5) > Comment on attachment 8514478 [details] [diff] [review] > [tools] Bug 1088590 - Add a timeout for retries.patch > > I backed this out at 71c12bc85a1c. hg.m.o seems to accept changes quickly, > then be slow to sync them out to the webheads. If we retry before it's done > we get multiple tags like this > http://hg.mozilla.org/releases/mozilla-beta/ > pushloghtml?fromchange=8e812440658b&tochange=ee3571fc463c > (pushlog isn't showing relbranches at the moment) > > Reading back on this bug, it was originally filed for cloning timeouts and > we patched pushing. Something changed ? Sorry, I had it wrong in the first comment, we had timeouts pushing, not cloning. I haven't thought about the use case where the push actually works but there's no answer from the server, in this case retry will create multiple tags. This patch was meant to mitigate the issue where we cannot complete the tagging job because pushing a locale repository gets stuck and buildbot terminates the full job. How about increasing the warning_interval to a much higher value, close to the timeout without output limit? In this case we might end up with multiple tags but we could save the tagging job. In any case we should improve the tagging process with Bug 607392 - "split tagging into en-US and other" and Bug 1072079 - 'stop blocking on tagging official builds"
Assignee | ||
Comment 7•10 years ago
|
||
Using the same push timeout logic for cloning operations. Now the clone will be terminated if the operation takes more than 7200 seconds (not sure what's the best timeout value, here)
Attachment #8514478 -
Attachment is obsolete: true
Attachment #8527868 -
Flags: feedback?(nthomas)
Updated•10 years ago
|
Summary: Add a timeout for retries → Add a timeout for hg push operations during release process
Comment 8•10 years ago
|
||
I'm sorry I haven't gotten to this feedback request. At this point I won't be able to until mid-january, so feel free to ask someone like rail or ben in the meantime.
Comment 9•9 years ago
|
||
Comment on attachment 8527868 [details] [diff] [review] [tools] Bug 1088590 - add a timeout for clone opertations.patch Review of attachment 8527868 [details] [diff] [review]: ----------------------------------------------------------------- Seems reasonable to me, based on similar code already in these files. ::: lib/python/mozilla_buildtools/test/test_util_hg.py @@ +1175,5 @@ > + # The operation will be interrupted by the timeout. Retry should > + # intercept the failure and re-start the clone a few times but, > + # at the end, the clone must fail. > + self.assertRaises(subprocess.CalledProcessError, clone, self.repodir, > + self.wc, timeout=0.01, poll_interval=0.05) Seems strange to have a timeout shorter than the poll_interval, might lead to incomplete testing. Are there other tests we could add ? ::: lib/python/util/commands.py @@ +211,5 @@ > + > + now = time.time() > + if now - start_time > timeout: > + elapsed = now - start_time > + log.info("clone process, is taking too long: %ss (timeout %s). Terminating" % Could be used for other things, so 'process took too long ...'. @@ +217,5 @@ > + proc.terminate() > + proc.wait() > + raise subprocess.CalledProcessError(proc.returncode, cmd, > + output='timeout, process terminated') > + Missing the time.sleep(poll_interval) here. ::: lib/python/util/hg.py @@ +87,4 @@ > return get_output(['hg'] + cmd, env=env, **kwargs) > > > +def hg_terminate_on_timeout(cmd, timeout=7200, poll_interval=0.25, maybe get_hg_output_with_timeout(). 2 hours is a pretty long timeout, even for cloning a big gecko repo. What do we set for max job time, and max time without output in tagging jobs ?
Attachment #8527868 -
Flags: feedback?(nthomas) → feedback+
Comment 10•9 years ago
|
||
I believe :gps wants "--traceback" added to all of the hg invocations, especially in a case like this. ni to him for any additional changes.
Flags: needinfo?(gps)
Comment 11•9 years ago
|
||
Yes, adding --traceback is useful to track down exactly what caused some failures in Mercurial. We shouldn't see many Mercurial failures, so adding --traceback globally shouldn't hurt.
Flags: needinfo?(gps)
Assignee | ||
Comment 12•9 years ago
|
||
Hi Nick, changes in this patch: * updated poll_interval in tests to 0.01s. Instead of setting a very short timeout, we could actually have a clone operation that takes some seconds, but I haven't found a decent way to do it. Any idea? * updated terminate process log message * added missing time.sleep(poll_interval) * renamed hg_terminate_on_timeout => get_hg_output_with_timeout * about the timeout: on buildbot we have script_timeout = 3h and script_max_time = 40 mins. A fresh clone of m-c takes around 20 mins on a windows slave, so I have set the new default for this script to 30 mins * added --traceback option to all clone, pull and push operations as requested in comment #10 and #11
Attachment #8527868 -
Attachment is obsolete: true
Attachment #8549678 -
Flags: review?(nthomas)
Comment 13•9 years ago
|
||
(In reply to Massimo Gervasini [:mgerva|pto => 02.02.2015] from comment #12) > changes in this patch: > * updated poll_interval in tests to 0.01s. Instead of setting a very short > timeout, we could actually have a clone operation that takes some seconds, > but I haven't found a decent way to do it. Any idea? The way the changes are structured you need a 'hg sleep 2', or to invent some long running operation (which is still quick to setup, to keep test runtime as short as possible). 'hg serve' could be a (hacky) substitute. The sort of tests I was hoping for was for poll_interval to be shorter than the timeout, and check the number of time.sleep calls (which would have caught it being missing, I think). test_util_commands.py has tests for run_cmd() and run_cmd_periodic_poll() with the sort of thing I mean. Perhaps it isn't much work to modify run_cmd_periodic_poll to add a timeout, as well as the existing warning. The existing usage is at http://mxr.mozilla.org/build/source/tools/buildfarm/release/release-runner.py#179, so we'd have to have a timeout=None in the function definition. Ben, do you have any opinion on this at all ? > * about the timeout: on buildbot we have script_timeout = 3h and > script_max_time = 40 mins. A fresh clone of m-c takes around 20 mins on a > windows slave, so I have set the new default for this script to 30 mins These seems a fine value for timeout on hg clone's.
Flags: needinfo?(bhearsum)
Comment 14•9 years ago
|
||
(In reply to Nick Thomas [:nthomas] from comment #13) > (In reply to Massimo Gervasini [:mgerva|pto => 02.02.2015] from comment #12) > > changes in this patch: > > * updated poll_interval in tests to 0.01s. Instead of setting a very short > > timeout, we could actually have a clone operation that takes some seconds, > > but I haven't found a decent way to do it. Any idea? > > The way the changes are structured you need a 'hg sleep 2', or to invent > some long running operation (which is still quick to setup, to keep test > runtime as short as possible). 'hg serve' could be a (hacky) substitute. > > The sort of tests I was hoping for was for poll_interval to be shorter than > the timeout, and check the number of time.sleep calls (which would have > caught it being missing, I think). test_util_commands.py has tests for > run_cmd() and run_cmd_periodic_poll() with the sort of thing I mean. Perhaps > it isn't much work to modify run_cmd_periodic_poll to add a timeout, as well > as the existing warning. The existing usage is at > http://mxr.mozilla.org/build/source/tools/buildfarm/release/release-runner. > py#179, so we'd have to have a timeout=None in the function definition. > > Ben, do you have any opinion on this at all ? Sounds totally fine to me. Maybe it's a bad idea to have run_cmd_periodic_poll default to killing things after a period of time? Ie, make timeout=None the default, and pass an int to opt-in to that behaviour.
Flags: needinfo?(bhearsum)
Comment 15•9 years ago
|
||
Comment on attachment 8549678 [details] [diff] [review] [tools] Bug 1088590 - add a timeout for hg clone; add --extend option to hg operations.patch OK. mgerva, please look at extending run_cmd_periodic_poll to optionally terminate after a timeout. Sorry for the change of direction at this point.
Attachment #8549678 -
Flags: review?(nthomas) → review-
Assignee | ||
Comment 16•9 years ago
|
||
Thanks Ben, thanks Nick! changes in this patch: * added a timeout to run_cmd_periodic_poll() and get_hg_output(). Default timeout is set to 1 day. I have decided to add a very high value for timeout rather than set it to None, to avoid another code branch ("if timeout is None:") - so by default, the above functions are terminating the process if it takes too long but in reality this will never happen (buildbot will take care of terminating stuck commands) * removed get_output_and_terminate_on_timeout() * tests: added testOutputTimeout() and testSuccessTerminateAfterTimeout(); removed testCloneTimeout() - there's no need to simulate a slow clone with testSuccessTerminateAfterTimeout()
Attachment #8549678 -
Attachment is obsolete: true
Attachment #8557965 -
Flags: review?(nthomas)
Comment 17•9 years ago
|
||
Comment on attachment 8557965 [details] [diff] [review] [tools] Bug 1088590 - add a timeout for hg clone; add --traceback option to hg operations II.patch Review of attachment 8557965 [details] [diff] [review]: ----------------------------------------------------------------- f+ as I think it needs a little more. ::: lib/python/mozilla_buildtools/test/test_util_commands.py @@ +72,4 @@ > warning_interval=2), > 0) > > + def testSuccessTerminateAfterTimeout(self): How about testTerminatedByTimeout() ? Would be good to add a 'class TestGetOutput' just before 'def testOutput' too. @@ +74,5 @@ > > + def testSuccessTerminateAfterTimeout(self): > + self.assertRaises( > + subprocess.CalledProcessError, run_cmd_periodic_poll, > + ['bash', '-c', 'sleep 3 && true'], warning_interval=1, timeout=2) In the interests of test running faster, how about sleep 1 and timeout=0.5 ::: lib/python/util/commands.py @@ +117,3 @@ > # reset last_check to avoid spamming callback > last_check = now > elapsed = now - start_time I'd calculate elapsed just before the warning test, and use it wherever the now - start_time is needed. @@ +139,5 @@ > + (now - start_time, timeout)) > + proc.terminate() > + proc.wait() > + raise subprocess.CalledProcessError(proc.returncode, cmd, > + output=TERMINATED_PROCESS_MSG) Won't see anything from the process output here, I think. See comments for get_output(). @@ +200,5 @@ > + > + now = time.time() > + if now - start_time > timeout: > + elapsed = now - start_time > + log.info("process, is taking too long: %ss (timeout %s). Terminating" % Please use '(timeout %ss)' too., so they both have units. @@ +203,5 @@ > + elapsed = now - start_time > + log.info("process, is taking too long: %ss (timeout %s). Terminating" % > + (now - start_time, timeout)) > + proc.terminate() > + proc.wait() Hopefully we won't need to do proc.kill() after a while, lets see what happens. There's a potential deadlock in .wait() if the buffer is full though. @@ +205,5 @@ > + (now - start_time, timeout)) > + proc.terminate() > + proc.wait() > + raise subprocess.CalledProcessError(proc.returncode, cmd, > + output='timeout, process terminated') Should be TERMINATED_PROCESS_MSG, I think. Also will be useful to see the output from the process, so .communicate() is probably the way to go. ::: lib/python/util/hg.py @@ +68,4 @@ > return urlsplit(repo).path.lstrip("/") > > > +def get_hg_output(cmd, timeout=1800, poll_interval=0.25, **kwargs): poll_interval probably isn't needed here, just timeout. @@ +162,5 @@ > > > def clone(repo, dest, branch=None, revision=None, update_dest=True, > + clone_by_rev=False, mirrors=None, bundles=None, timeout=7200, > + poll_interval=0.25): poll_interval probably isn't needed here, just timeout. @@ +188,5 @@ > + subprocess will be terminated. This features allows to terminate hung clones > + before buildbot kills the full jobs. When a timeout terminates the process, > + the exception is caught by `retrier`. > + > + `poll_interval` determines how frequently the hg clone process is polled. ... so this comment could be removed. @@ +381,4 @@ > > > def push(src, remote, push_new_branches=True, force=False, **kwargs): > + cmd = ['hg', 'push', '--traceback'] unbundle() needs --traceback, and a longer timeout than 30 minutes.
Attachment #8557965 -
Flags: review?(nthomas) → feedback+
Assignee | ||
Comment 18•9 years ago
|
||
Thanks for the feedback, Nick! Changes in this version: * fixes requested in comment 17 * get_output logs the output of the terminated process * new tests
Attachment #8557965 -
Attachment is obsolete: true
Attachment #8566140 -
Flags: review?(nthomas)
Assignee | ||
Comment 19•9 years ago
|
||
Changes from previous and current patch
Comment 20•9 years ago
|
||
Comment on attachment 8566140 [details] [diff] [review] [tools] Bug 1088590 - add a timeout in get_output and in run_cmd_periodic_poll; add --traceback option to hg operations III.patch Review of attachment 8566140 [details] [diff] [review]: ----------------------------------------------------------------- Just minor stuff now, f+ In test_util_commands.py I'd really like to see three classes: TestRunCmd, TestRunCmdPeriodicPoll, and TestGetOutput; then only test the matching function in each. They're a bit mixed up at the moment. It would be really good to get a list of timeouts on each of the hg operations, as not all use get_hg_output() and some call run_cmd directly. Please update the bug summary with that in mind, since I don't believe push() will be changed here (that's fine!). ::: lib/python/mozilla_buildtools/test/test_util_commands.py @@ +83,5 @@ > + cmd = ['bash', '-c', 'echo "%s" && echo "%s" 1>&2 && sleep 1 && true' % (text_s, text_e)] > + try: > + get_output(cmd, timeout=0.5) > + except subprocess.CalledProcessError as error: > + print error Nit, leftover debugging ? @@ +85,5 @@ > + get_output(cmd, timeout=0.5) > + except subprocess.CalledProcessError as error: > + print error > + self.assertTrue(text_s in error.output) > + self.assertTrue(text_e not in error.output) Don't you need an else to fail if the exception doesn't happen, like testOutputTimeout does ? @@ +94,5 @@ > + cmd = ['bash', '-c', 'echo "%s" && echo "%s" 1>&2 && sleep 1 && true' % (text_s, text_e)] > + try: > + get_output(cmd, include_stderr=True, timeout=0.5) > + except subprocess.CalledProcessError as error: > + print error Nit, leftover debugging ? @@ +96,5 @@ > + get_output(cmd, include_stderr=True, timeout=0.5) > + except subprocess.CalledProcessError as error: > + print error > + self.assertTrue(text_s in error.output) > + self.assertTrue(text_e in error.output) Missing else again. ::: lib/python/util/commands.py @@ -107,3 @@ > # reset last_check to avoid spamming callback > last_check = now > - elapsed = now - start_time I wasn't very clear about this, but meant to put it just after |now = time.time()|. @@ +153,5 @@ > is set, stderr will be included in the output, otherwise it will be sent to > the caller's stderr stream. > > Warning that you shouldn't use this function to capture a large amount of > + output (> a few thousand bytes), it will deadlock. Is this still true ? You're using Popen and communicate as https://docs.python.org/2/library/subprocess.html recommends. @@ +197,5 @@ > + else: > + raise subprocess.CalledProcessError(proc.returncode, cmd, output=output) > + > + now = time.time() > + if now - start_time > timeout: As above, please calculate elapsed between the now assignment and if, then adjust later code. @@ +199,5 @@ > + > + now = time.time() > + if now - start_time > timeout: > + elapsed = now - start_time > + log.info("process, is taking too long: %ss (timeout %ss).Terminating" % Nit, a space before Terminating ::: lib/python/util/hg.py @@ +161,4 @@ > > > def clone(repo, dest, branch=None, revision=None, update_dest=True, > + clone_by_rev=False, mirrors=None, bundles=None, timeout=7200, ): Nit, remove trailing comma+space. @@ +251,4 @@ > exc = None > for _ in retrier(attempts=RETRY_ATTEMPTS): > try: > + get_hg_output(cmd=cmd, include_stderr=True, timeout=timeout, ) Nit, remove trailing comma+space.
Attachment #8566140 -
Flags: review?(nthomas) → feedback+
Assignee | ||
Comment 21•9 years ago
|
||
Updated as requested in comment 20 * added a new test to check get_output() does not hangs on huge output * set hg unbundle timeout to 2700 seconds
Attachment #8566140 -
Attachment is obsolete: true
Attachment #8566142 -
Attachment is obsolete: true
Attachment #8567161 -
Flags: review?(nthomas)
Comment 22•9 years ago
|
||
Comment on attachment 8567161 [details] [diff] [review] [tools] Bug 1088590 - add a timeout in get_output and in run_cmd_periodic_poll; add --traceback option to hg operations IV.patch Review of attachment 8567161 [details] [diff] [review]: ----------------------------------------------------------------- r+, thanks for your patience! (In reply to Nick Thomas [:nthomas] from comment #20) > In test_util_commands.py I'd really like to see three classes: TestRunCmd, > TestRunCmdPeriodicPoll, and TestGetOutput; then only test the matching > function in each. They're a bit mixed up at the moment. > > It would be really good to get a list of timeouts on each of the hg > operations, as not all use get_hg_output() and some call run_cmd directly. > Please update the bug summary with that in mind, since I don't believe > push() will be changed here (that's fine!). Would still love to see these happen if you have time (before landing, and bug comment respectively).
Attachment #8567161 -
Flags: review?(nthomas) → review+
Assignee | ||
Comment 23•9 years ago
|
||
Thanks for the review, Nick. changes in this patch: * now we have TestRunCmd TestRunCmdPeriodicPoll and TestGetOutput * set unbundle timeout to 1h Some timeouts introduced by this patch: command | timeout [s] ---------+------------- clone | 3600 pull | 1800 push | ---- unbundle | 3600 update | 3600
Attachment #8567161 -
Attachment is obsolete: true
Attachment #8571386 -
Flags: review?(nthomas)
Assignee | ||
Updated•9 years ago
|
Summary: Add a timeout for hg push operations during release process → Add support for timeouts in tools
Comment 24•9 years ago
|
||
Comment on attachment 8571386 [details] [diff] [review] Bug 1088590 - add a timeout in get_output and in run_cmd_periodic_poll; add --traceback option to hg operations V.patch Review of attachment 8571386 [details] [diff] [review]: ----------------------------------------------------------------- Please move these tests from TestRunCmd to TestGetOutput: testOutput, testStdErr, testNoStdErr, testBadOutput. They all use get_output().
Attachment #8571386 -
Attachment filename: timeout in get_output and in run_cmd_periodic_poll; add --traceback option to hg operations V.patch → timeout in get_output and in run_cmd_periodic_poll; add --traceback option to hg operations V.patch
Attachment #8571386 -
Flags: review?(nthomas) → review+
Assignee | ||
Comment 25•9 years ago
|
||
Comment on attachment 8571386 [details] [diff] [review] Bug 1088590 - add a timeout in get_output and in run_cmd_periodic_poll; add --traceback option to hg operations V.patch landed with changes requested in comment 24 https://hg.mozilla.org/build/tools/rev/056a5dcb6e72
Attachment #8571386 -
Flags: checked-in+
Comment 26•9 years ago
|
||
Comment on attachment 8571386 [details] [diff] [review] Bug 1088590 - add a timeout in get_output and in run_cmd_periodic_poll; add --traceback option to hg operations V.patch backed out remote: https://hg.mozilla.org/build/tools/rev/899065ceb7a4 remote: https://hg.mozilla.org/build/tools/rev/d6d28635bcc6 suspected as the culprit in: https://treeherder.mozilla.org/logviewer.html#?job_id=1106855&repo=mozilla-central snippet: command: START command: hg pull --traceback -r 21f00dd7bda6 https://hg.mozilla.org/build/mozharness command: cwd: /builds/hg-shared/build/mozharness command: env: {'HGPLAIN': '1'} Traceback (most recent call last): File "/tools/checkouts/build-tools/buildfarm/utils/hgtool.py", line 94, in <module> autoPurge=options.auto_purge) File "/tools/checkouts/build-tools/buildfarm/utils/../../lib/python/util/hg.py", line 503, in mercurial mirrors=mirrors, bundles=bundles, autoPurge=False) File "/tools/checkouts/build-tools/buildfarm/utils/../../lib/python/util/hg.py", line 463, in mercurial mirrors=mirrors) File "/tools/checkouts/build-tools/buildfarm/utils/../../lib/python/util/hg.py", line 329, in pull get_hg_output(cmd=cmd, cwd=dest, include_stderr=True) File "/tools/checkouts/build-tools/buildfarm/utils/../../lib/python/util/hg.py", line 86, in get_hg_output return get_output(['hg'] + cmd, timeout=timeout, env=env, **kwargs) File "/tools/checkouts/build-tools/buildfarm/utils/../../lib/python/util/commands.py", line 204, in get_output raise subprocess.CalledProcessError(proc.returncode, cmd, output=output) TypeError: __init__() got an unexpected keyword argument 'output' program finished with exit code 1 elapsedTime=16.752785 ========= Finished 'python /tools/checkouts/build-tools/buildfarm/utils/hgtool.py ...' failed
Attachment #8571386 -
Flags: checked-in+ → checked-in-
Comment 27•9 years ago
|
||
Apparently the output argument was added subprocess.CalledProcessError between Python 2.6 and 2.7, not that https://docs.python.org/2/library/subprocess.html#subprocess.CalledProcessError will tell you so.
Assignee | ||
Comment 28•9 years ago
|
||
Fixes for python 2.6 Changes from last patch: * changed subprocess.CalledProcessError(proc.returncode, cmd, option=option) calls to: error = subprocess.CalledProcessError(proc.returncode, cmd) error.output = output raise error * using: nose.plugins.skip.SkipTest instead of @unittest.skipIf, (skipIf is not available in python 2.6)
Attachment #8571386 -
Attachment is obsolete: true
Attachment #8572590 -
Flags: review?(rail)
Comment 29•9 years ago
|
||
Comment on attachment 8572590 [details] [diff] [review] [tools] Bug 1088590 - add a timeout in get_output and in run_cmd_periodic_poll; add --traceback option to hg operations VII.patch Review of attachment 8572590 [details] [diff] [review]: ----------------------------------------------------------------- I looked at the interdiff with the previous patch and it looks good to me.
Attachment #8572590 -
Flags: review?(rail) → review+
Assignee | ||
Comment 30•9 years ago
|
||
Comment on attachment 8572590 [details] [diff] [review] [tools] Bug 1088590 - add a timeout in get_output and in run_cmd_periodic_poll; add --traceback option to hg operations VII.patch Thanks rail! https://hg.mozilla.org/build/tools/rev/46721e25c5fc
Attachment #8572590 -
Flags: checked-in+
Comment 31•9 years ago
|
||
Minor spelling corrections
Attachment #8573207 -
Flags: review?(mgervasini)
Assignee | ||
Comment 32•9 years ago
|
||
Comment on attachment 8573207 [details] [diff] [review] bug1088590_tools_spelling_corrections.patch Thanks Pete!
Attachment #8573207 -
Flags: review?(mgervasini) → review+
Comment 33•9 years ago
|
||
Comment on attachment 8573207 [details] [diff] [review] bug1088590_tools_spelling_corrections.patch https://hg.mozilla.org/build/tools/rev/f80d81584851
Attachment #8573207 -
Flags: checked-in+
Comment 34•9 years ago
|
||
I'm assuming this is ok, since there has been no backout or reports of problems etc. Therefore closing.
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•