forked from goodboy/tractor
				
			Don't set `Context._error` to expected `ContextCancelled`
If the one side of an inter-actor context cancels the other then that side should always expect back a `ContextCancelled` message. However we should not set this error in this case (where the cancel request was sent and a `ContextCancelled` msg was received back) since it may override some other error that caused the cancellation request to be sent out in the first place. As an example when a context opens another context to a peer and some error happens which causes the second peer context to be cancelled but we want to propagate the original error. Fixes the issue found in https://github.com/pikers/piker/issues/244expected_ctx_cancelled
							parent
							
								
									9650b010de
								
							
						
					
					
						commit
						e2139c2bf0
					
				|  | @ -425,7 +425,17 @@ class Context: | ||||||
|                 f'Remote context error for {self.chan.uid}:{self.cid}:\n' |                 f'Remote context error for {self.chan.uid}:{self.cid}:\n' | ||||||
|                 f'{msg["error"]["tb_str"]}' |                 f'{msg["error"]["tb_str"]}' | ||||||
|             ) |             ) | ||||||
|             self._error = unpack_error(msg, self.chan) |             error = unpack_error(msg, self.chan) | ||||||
|  |             if ( | ||||||
|  |                 isinstance(error, ContextCancelled) and | ||||||
|  |                 self._cancel_called | ||||||
|  |             ): | ||||||
|  |                 # this is an expected cancel request response message | ||||||
|  |                 # and we don't need to raise it in scope since it will | ||||||
|  |                 # potentially override a real error | ||||||
|  |                 return | ||||||
|  | 
 | ||||||
|  |             self._error = error | ||||||
| 
 | 
 | ||||||
|             # TODO: tempted to **not** do this by-reraising in a |             # TODO: tempted to **not** do this by-reraising in a | ||||||
|             # nursery and instead cancel a surrounding scope, detect |             # nursery and instead cancel a surrounding scope, detect | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue