mirror of
https://github.com/9001/copyparty.git
synced 2025-08-17 09:02:15 -06:00
up2k: fix put-hasher dying + a harmless race
* hasher thread could die if a client would rapidly upload and delete files (so very unlikely) * two unprotected calls to register_vpath which was almost-definitely safe because the volumes already existed in the registry
This commit is contained in:
parent
08d8c82167
commit
feecb3e0b8
|
@ -811,7 +811,9 @@ class Up2k(object):
|
|||
self.volstate[vol.vpath] = "online (mtp soon)"
|
||||
|
||||
for vol in need_vac:
|
||||
reg = self.register_vpath(vol.realpath, vol.flags)
|
||||
with self.mutex, self.reg_mutex:
|
||||
reg = self.register_vpath(vol.realpath, vol.flags)
|
||||
|
||||
assert reg
|
||||
cur, _ = reg
|
||||
with self.mutex:
|
||||
|
@ -825,7 +827,9 @@ class Up2k(object):
|
|||
if vol.flags["dbd"] == "acid":
|
||||
continue
|
||||
|
||||
reg = self.register_vpath(vol.realpath, vol.flags)
|
||||
with self.mutex, self.reg_mutex:
|
||||
reg = self.register_vpath(vol.realpath, vol.flags)
|
||||
|
||||
try:
|
||||
assert reg
|
||||
cur, db_path = reg
|
||||
|
@ -4251,7 +4255,7 @@ class Up2k(object):
|
|||
raise Exception("invalid hash task")
|
||||
|
||||
try:
|
||||
if not self._hash_t(task):
|
||||
if not self._hash_t(task) and self.stop:
|
||||
return
|
||||
except Exception as ex:
|
||||
self.log("failed to hash %s: %s" % (task, ex), 1)
|
||||
|
|
Loading…
Reference in a new issue