• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ESMCI / manage_externals
91%
master: 86%

Build:
Build:
LAST BUILD BRANCH: modified_solution
DEFAULT BRANCH: master
Repo Added 09 Apr 2018 04:58PM UTC
Files 11
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH manic-v1.1.5
branch: manic-v1.1.5
CHANGE BRANCH
x
Reset
  • manic-v1.1.5
  • catch_svn_error
  • issue-86-detached-sync-status
  • manic-v.1.1.6
  • manic-v1.1.1
  • manic-v1.1.2
  • manic-v1.1.3
  • manic-v1.1.4
  • manic-v1.1.6
  • manic-v1.1.7
  • manic-v1.1.8
  • master

pending completion
182

push

travis-ci

web-flow
Merge pull request #114 from billsacks/fix_large_output_hang

Fix hangs when a subcommand has a lot of output.
Rework execute_subprocess timeout handling to prevent hangs

The previous implementation, relying on the lower-level
subprocess.Popen, was hanging when trying to get the status of a git
repository with many changed files (see
#113). It seems that the
problem was that subprocess.Popen buffers output, and we would need to
write some extra code to periodically clear the output buffer. This
seemed tricky to get right, so I have backed up to using the
higher-level subprocess.check_output, as we did prior to
#81.

I am using a new method to detect hangs and print a useful message
(which was the point of PR #81), based on threading.Timer. I can't
figure out a way to kill the subprocess when it appears to be hanging,
but at least we can notify the user of this possible problem.

This commit brings this part of the code back to how it was prior to
d6423c6, except now we have a hang-detection timer.

As a side-benefit, it appears that this change speeds up the unit and
system tests, based on a few trial runs before and after this
change. (This is probably due to the removal of the 0.02 sec delay
associated with the previous subprocess.Popen implementation.)

User interface changes?: No

Fixes #113 (Timeout when getting status from a git repository with many changes)

Testing:
test removed: none
unit tests: pass
system tests: pass
manual testing:

(1) Tested the problem reported in #113 by putting a ton of changes in
components/clm (changing permissions on all files, and adding
about 7000 files in a testmods directory). The original hung, this
version succeeded quickly.

(2) Tested the problem reported in #79 and fixed in #81 (because this
PR undoes the changes from #81): I tested with authentication
required (on hobart, by pointing to the NGEET fates repo): I
changed the timeout to 10 seconds, ran
'manage_ex... (continued)

359 of 415 branches covered (86.51%)

Branch coverage included in aggregate %.

1079 of 1163 relevant lines covered (92.78%)

3.7 hits per line

Relevant lines Covered
Build:
Build:
1163 RELEVANT LINES 1079 COVERED LINES
3.7 HITS PER LINE
Source Files on manic-v1.1.5
  • List 0
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
182 manic-v1.1.5 Merge pull request #114 from billsacks/fix_large_output_hang Fix hangs when a subcommand has a lot of output. Rework execute_subprocess timeout handling to prevent hangs The previous implementation, relying on the lower-level subprocess.Pope... push 22 Aug 2018 04:55PM UTC web-flow travis-ci pending completion  
See All Builds (84)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc