diff --git a/copyparty/broker_mp.py b/copyparty/broker_mp.py index cb8204ad..6978cfb9 100644 --- a/copyparty/broker_mp.py +++ b/copyparty/broker_mp.py @@ -3,6 +3,7 @@ from __future__ import print_function, unicode_literals import threading import time +import traceback import queue @@ -93,12 +94,15 @@ class BrokerMp(object): else: # new ipc invoking managed service in hub - obj = self.hub - for node in dest.split("."): - obj = getattr(obj, node) + try: + obj = self.hub + for node in dest.split("."): + obj = getattr(obj, node) - # TODO will deadlock if dest performs another ipc - rv = try_exec(retq_id, obj, *args) + # TODO will deadlock if dest performs another ipc + rv = try_exec(retq_id, obj, *args) + except: + rv = ["exception", "stack", traceback.format_exc()] if retq_id: proc.q_pend.put((retq_id, "retq", rv)) diff --git a/scripts/sfx.py b/scripts/sfx.py index b15c925f..88fac94e 100644 --- a/scripts/sfx.py +++ b/scripts/sfx.py @@ -429,7 +429,7 @@ def run_i(ld): def run_s(ld): # fmt: off - c = "import sys,runpy;" + "".join(['sys.path.insert(0,r"' + x + '");' for x in ld]) + 'runpy.run_module("copyparty",run_name="__main__")' + c = "import sys,runpy;" + "".join(['sys.path.insert(0,r"' + x.replace("\\", "/") + '");' for x in ld]) + 'runpy.run_module("copyparty",run_name="__main__")' c = [str(x) for x in [sys.executable, "-c", c] + list(sys.argv[1:])] # fmt: on msg("\n", c, "\n")