Lul, don't overwrite 'tb_str' with src actor's..

This is what was breaking the nested debugger test (where it was failing
on the traceback content matching) and it makes sense.. XD
=> We always want to use the locally boxed `RemoteActorError`'s
traceback content NOT overwrite it with that from the src actor..

Also gets rid of setting the `'relay_uid'` since it's pulled from the
final element in the `'relay_path'` anyway.
mv_to_new_trio_py3.11
Tyler Goodlet 2024-03-20 11:36:39 -04:00
parent 290b0a86b1
commit 8e66f45e23
1 changed files with 8 additions and 7 deletions

View File

@ -111,7 +111,6 @@ class RemoteActorError(Exception):
reprol_fields: list[str] = [
'src_uid',
'relay_path',
# 'relay_uid',
]
def __init__(
@ -487,14 +486,11 @@ def pack_error(
else:
tb_str = traceback.format_exc()
our_uid: tuple = current_actor().uid
error_msg: dict[
error_msg: dict[ # for IPC
str,
str | tuple[str, str]
] = {
'tb_str': tb_str,
'relay_uid': our_uid,
}
] = {}
our_uid: tuple = current_actor().uid
if (
isinstance(exc, RemoteActorError)
@ -535,6 +531,11 @@ def pack_error(
[],
).append(our_uid)
# XXX NOTE: always ensure the traceback-str is from the
# locally raised error (**not** the prior relay's boxed
# content's `.msgdata`).
error_msg['tb_str'] = tb_str
pkt: dict = {'error': error_msg}
if cid:
pkt['cid'] = cid