abandon listing tags in browser when db busy

This commit is contained in:
ed 2021-06-20 21:19:47 +02:00
parent 357347ce3a
commit 2fcd0e7e72

View file

@ -1765,36 +1765,44 @@ class HttpCli(object):
fn = f["name"] fn = f["name"]
rd = f["rd"] rd = f["rd"]
del f["rd"] del f["rd"]
if icur: if not icur:
if vn != dbv: break
_, rd = vn.get_dbv(rd)
if vn != dbv:
_, rd = vn.get_dbv(rd)
q = "select w from up where rd = ? and fn = ?"
r = None
try:
r = icur.execute(q, (rd, fn)).fetchone()
except Exception as ex:
if "database is locked" in str(ex):
break
q = "select w from up where rd = ? and fn = ?"
r = None
try: try:
r = icur.execute(q, (rd, fn)).fetchone() args = s3enc(idx.mem_cur, rd, fn)
except Exception as ex: r = icur.execute(q, args).fetchone()
if "database is locked" not in str(ex):
try:
args = s3enc(idx.mem_cur, rd, fn)
r = icur.execute(q, args).fetchone()
except:
self.log("tag list error:\n" + min_ex())
tags = {}
f["tags"] = tags
if not r:
continue
w = r[0][:16]
q = "select k, v from mt where w = ? and k != 'x'"
try:
for k, v in icur.execute(q, (w,)):
taglist[k] = True
tags[k] = v
except: except:
self.log("tag read error:\n" + min_ex()) m = "tag list error, {}/{}\n{}"
self.log(m.format(rd, fn, min_ex()))
break
tags = {}
f["tags"] = tags
if not r:
continue
w = r[0][:16]
q = "select k, v from mt where w = ? and k != 'x'"
try:
for k, v in icur.execute(q, (w,)):
taglist[k] = True
tags[k] = v
except:
m = "tag read error, {}/{} [{}]:\n{}"
self.log(m.format(rd, fn, w, min_ex()))
break
if icur: if icur:
taglist = [k for k in vn.flags.get("mte", "").split(",") if k in taglist] taglist = [k for k in vn.flags.get("mte", "").split(",") if k in taglist]