mirror of
https://github.com/internetarchive/warcprox.git
synced 2025-01-18 13:22:09 +01:00
Merge pull request #151 from vbanos/fix-runtime-error
Fix runtime error
This commit is contained in:
commit
ca3d5d4edd
@ -34,7 +34,7 @@ before_install:
|
||||
- ping -c2 trough
|
||||
|
||||
install:
|
||||
- pip install . pytest requests warcio mock
|
||||
- pip install .[trough] pytest requests warcio mock
|
||||
|
||||
before_script:
|
||||
- docker exec trough bash -c 'while ! test -e /tmp/trough-read.out ; do sleep 0.5 ; done' || true
|
||||
|
2
setup.py
2
setup.py
@ -28,7 +28,7 @@ deps = [
|
||||
'warctools>=4.10.0',
|
||||
'urlcanon>=0.3.0',
|
||||
'doublethink>=0.2.0.dev87',
|
||||
'urllib3>=1.14',
|
||||
'urllib3>=1.23',
|
||||
'requests>=2.0.1',
|
||||
'PySocks>=1.6.8',
|
||||
'cryptography>=2.3',
|
||||
|
@ -649,13 +649,17 @@ class PooledMixIn(socketserver.ThreadingMixIn):
|
||||
|
||||
def process_request(self, request, client_address):
|
||||
self.active_requests[request] = doublethink.utcnow()
|
||||
future = self.pool.submit(
|
||||
self.process_request_thread, request, client_address)
|
||||
future.add_done_callback(
|
||||
lambda f: self.active_requests.pop(request, None))
|
||||
if future.done():
|
||||
# avoid theoretical timing issue, in case process_request_thread
|
||||
# managed to finish before future.add_done_callback() ran
|
||||
try:
|
||||
future = self.pool.submit(
|
||||
self.process_request_thread, request, client_address)
|
||||
future.add_done_callback(
|
||||
lambda f: self.active_requests.pop(request, None))
|
||||
if future.done():
|
||||
# avoid theoretical timing issue, in case process_request_thread
|
||||
# managed to finish before future.add_done_callback() ran
|
||||
self.active_requests.pop(request, None)
|
||||
except RuntimeError as exc:
|
||||
self.logger.error("Error processing request %s", str(exc))
|
||||
self.active_requests.pop(request, None)
|
||||
|
||||
def get_request(self):
|
||||
|
Loading…
x
Reference in New Issue
Block a user