issue #369: fix KeyError during new context start.
Update _via_by_context earlier; fixes: Traceback (most recent call last): File "/Users/dmw/src/mitogen/mitogen/service.py", line 519, in _on_service_call return invoker.invoke(method_name, kwargs, msg) File "/Users/dmw/src/mitogen/mitogen/service.py", line 253, in invoke response = self._invoke(method_name, kwargs, msg) File "/Users/dmw/src/mitogen/mitogen/service.py", line 239, in _invoke ret = method(**kwargs) File "/Users/dmw/src/mitogen/ansible_mitogen/services.py", line 454, in get reraise(*result) File "/Users/dmw/src/mitogen/ansible_mitogen/services.py", line 412, in _wait_or_start response = self._connect(key, spec, via=via) File "/Users/dmw/src/mitogen/ansible_mitogen/services.py", line 363, in _connect self._update_lru(context, spec, via) File "/Users/dmw/src/mitogen/ansible_mitogen/services.py", line 266, in _update_lru self._update_lru_unlocked(new_context, spec, via) File "/Users/dmw/src/mitogen/ansible_mitogen/services.py", line 253, in _update_lru_unlocked if self._refs_by_context[context] == 0: KeyError: Context(1008, u'ssh.localhost.sudo.mitogen__user3')
This commit is contained in:
parent
fcdf4a0f35
commit
d280bba02b
|
@ -244,6 +244,8 @@ class ContextService(mitogen.service.Service):
|
||||||
by `kwargs`, destroying the most recently created context if the list
|
by `kwargs`, destroying the most recently created context if the list
|
||||||
is full. Finally add `new_context` to the list.
|
is full. Finally add `new_context` to the list.
|
||||||
"""
|
"""
|
||||||
|
self._via_by_context[new_context] = via
|
||||||
|
|
||||||
lru = self._lru_by_via.setdefault(via, [])
|
lru = self._lru_by_via.setdefault(via, [])
|
||||||
if len(lru) < self.max_interpreters:
|
if len(lru) < self.max_interpreters:
|
||||||
lru.append(new_context)
|
lru.append(new_context)
|
||||||
|
@ -257,7 +259,6 @@ class ContextService(mitogen.service.Service):
|
||||||
'but they are all marked as in-use.', via)
|
'but they are all marked as in-use.', via)
|
||||||
return
|
return
|
||||||
|
|
||||||
self._via_by_context[new_context] = via
|
|
||||||
self._shutdown_unlocked(context, lru=lru, new_context=new_context)
|
self._shutdown_unlocked(context, lru=lru, new_context=new_context)
|
||||||
|
|
||||||
def _update_lru(self, new_context, spec, via):
|
def _update_lru(self, new_context, spec, via):
|
||||||
|
|
Loading…
Reference in New Issue