From 0767d956742dad6b57ae3124ef86637b51dea449 Mon Sep 17 00:00:00 2001 From: ed Date: Fri, 4 Sep 2026 18:51:15 +0000 Subject: [PATCH] up2k: fix !e2d reload blocking uploads --- copyparty/up2k.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/copyparty/up2k.py b/copyparty/up2k.py index d8253df78..3d0ce4c8f 100644 --- a/copyparty/up2k.py +++ b/copyparty/up2k.py @@ -174,6 +174,7 @@ class Up2k(object): self.pp: Optional[ProgressPrinter] = None self.rescan_cond = threading.Condition() self.need_rescan: set[str] = set() + self.have_e2d = False self.db_act = 0.0 self.reg_mutex = threading.Lock() @@ -253,6 +254,10 @@ class Up2k(object): with self.reload_mutex: if self.reload_flag < n: self.reload_flag = n + if not self.have_e2d and not self.reloading: + self.reloading = True + Daemon(self._reload_thr) + return with self.rescan_cond: self.rescan_cond.notify_all() @@ -290,7 +295,7 @@ class Up2k(object): def deferred_init(self) -> None: all_vols = self.asrv.vfs.all_vols - have_e2d = self.init_indexes(all_vols, [], False) + self.init_indexes(all_vols, [], False) if self.stop: # up-mt consistency not guaranteed if init is interrupted; @@ -308,7 +313,7 @@ class Up2k(object): return Daemon(self._snapshot, "up2k-snapshot") - if have_e2d: + if self.have_e2d: Daemon(self._hasher, "up2k-hasher") Daemon(self._sched_rescan, "up2k-rescan") if self.mtag: @@ -891,7 +896,7 @@ class Up2k(object): def init_indexes( self, all_vols: dict[str, VFS], scan_vols: list[str], fscan: bool, gid: int = 0 - ) -> bool: + ) -> None: if not gid: with self.mutex: gid = self.gid @@ -1128,7 +1133,7 @@ class Up2k(object): else: self.unpp() - return have_e2d + self.have_e2d = self.have_e2d or have_e2d def register_vpath( self, ptop: str, flags: dict[str, Any]