Show More
@@ -28,3 +28,5 b' a47ccfb020cda78c8680e3844aaf0b82b1390f3b' | |||||
28 | 347ae9ae544bba8deb417995285287a3b6be1611 v4.10.4 |
|
28 | 347ae9ae544bba8deb417995285287a3b6be1611 v4.10.4 | |
29 | 9b257ac49841f850434be0d518baca0827e6c8cc v4.10.5 |
|
29 | 9b257ac49841f850434be0d518baca0827e6c8cc v4.10.5 | |
30 | e8bf26eea118694edc4ffe50c6c5aa91022bc434 v4.10.6 |
|
30 | e8bf26eea118694edc4ffe50c6c5aa91022bc434 v4.10.6 | |
|
31 | 71fa9274ba59fb982104f0b9b3d0d024c78675f7 v4.11.0 | |||
|
32 | 92471577ef25636e5babe8001d47fc8e51521522 v4.11.1 |
@@ -653,7 +653,7 b'' | |||||
653 | }; |
|
653 | }; | |
654 | }; |
|
654 | }; | |
655 | rhodecode-vcsserver = super.buildPythonPackage { |
|
655 | rhodecode-vcsserver = super.buildPythonPackage { | |
656 |
name = "rhodecode-vcsserver-4.11. |
|
656 | name = "rhodecode-vcsserver-4.11.1"; | |
657 | buildInputs = with self; [pytest py pytest-cov pytest-sugar pytest-runner pytest-catchlog pytest-profiling gprof2dot pytest-timeout mock WebTest cov-core coverage configobj]; |
|
657 | buildInputs = with self; [pytest py pytest-cov pytest-sugar pytest-runner pytest-catchlog pytest-profiling gprof2dot pytest-timeout mock WebTest cov-core coverage configobj]; | |
658 | doCheck = true; |
|
658 | doCheck = true; | |
659 | propagatedBuildInputs = with self; [Beaker configobj decorator dulwich hgsubversion hg-evolve infrae.cache mercurial msgpack-python pyramid pyramid-jinja2 pyramid-mako repoze.lru simplejson subprocess32 subvertpy six translationstring WebOb wheel zope.deprecation zope.interface ipdb ipython gevent greenlet gunicorn waitress pytest py pytest-cov pytest-sugar pytest-runner pytest-catchlog pytest-profiling gprof2dot pytest-timeout mock WebTest cov-core coverage]; |
|
659 | propagatedBuildInputs = with self; [Beaker configobj decorator dulwich hgsubversion hg-evolve infrae.cache mercurial msgpack-python pyramid pyramid-jinja2 pyramid-mako repoze.lru simplejson subprocess32 subvertpy six translationstring WebOb wheel zope.deprecation zope.interface ipdb ipython gevent greenlet gunicorn waitress pytest py pytest-cov pytest-sugar pytest-runner pytest-catchlog pytest-profiling gprof2dot pytest-timeout mock WebTest cov-core coverage]; |
@@ -23,10 +23,13 b' along with git_http_backend.py Project.' | |||||
23 | If not, see <http://www.gnu.org/licenses/>. |
|
23 | If not, see <http://www.gnu.org/licenses/>. | |
24 | """ |
|
24 | """ | |
25 | import os |
|
25 | import os | |
|
26 | import logging | |||
26 | import subprocess32 as subprocess |
|
27 | import subprocess32 as subprocess | |
27 | from collections import deque |
|
28 | from collections import deque | |
28 | from threading import Event, Thread |
|
29 | from threading import Event, Thread | |
29 |
|
30 | |||
|
31 | log = logging.getLogger(__name__) | |||
|
32 | ||||
30 |
|
33 | |||
31 | class StreamFeeder(Thread): |
|
34 | class StreamFeeder(Thread): | |
32 | """ |
|
35 | """ | |
@@ -117,7 +120,7 b' class InputStreamChunker(Thread):' | |||||
117 | s = self.source |
|
120 | s = self.source | |
118 | t = self.target |
|
121 | t = self.target | |
119 | cs = self.chunk_size |
|
122 | cs = self.chunk_size | |
120 | ccm = self.chunk_count_max |
|
123 | chunk_count_max = self.chunk_count_max | |
121 | keep_reading = self.keep_reading |
|
124 | keep_reading = self.keep_reading | |
122 | da = self.data_added |
|
125 | da = self.data_added | |
123 | go = self.go |
|
126 | go = self.go | |
@@ -127,14 +130,14 b' class InputStreamChunker(Thread):' | |||||
127 | except ValueError: |
|
130 | except ValueError: | |
128 | b = '' |
|
131 | b = '' | |
129 |
|
132 | |||
|
133 | timeout_input = 20 | |||
130 | while b and go.is_set(): |
|
134 | while b and go.is_set(): | |
131 | if len(t) > ccm: |
|
135 | if len(t) > chunk_count_max: | |
132 | keep_reading.clear() |
|
136 | keep_reading.clear() | |
133 |
keep_reading.wait( |
|
137 | keep_reading.wait(timeout_input) | |
134 |
|
138 | if len(t) > chunk_count_max + timeout_input: | ||
135 | if not keep_reading.wait(10): |
|
139 | log.error("Timed out while waiting for input from subprocess.") | |
136 | raise Exception( |
|
140 | os._exit(-1) # this will cause the worker to recycle itself | |
137 | "Timed out while waiting for input to be read.") |
|
|||
138 |
|
141 | |||
139 | t.append(b) |
|
142 | t.append(b) | |
140 | da.set() |
|
143 | da.set() |
General Comments 0
You need to be logged in to leave comments.
Login now