From 9cfcab6b6f81a2ca729827557d0de0f4330484ea Mon Sep 17 00:00:00 2001 From: Michele Simionato Date: Thu, 28 May 2026 19:44:37 +0200 Subject: [PATCH 1/2] Do not break due to logging --- openquake/server/db/actions.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/openquake/server/db/actions.py b/openquake/server/db/actions.py index 6ac46e935ab9..1a21fc2e5616 100644 --- a/openquake/server/db/actions.py +++ b/openquake/server/db/actions.py @@ -399,8 +399,13 @@ def log(db, job_id, timestamp, level, process, message): :param message: message to store in the log record """ - db('INSERT INTO log (job_id, timestamp, level, process, message) ' - 'VALUES (?X)', (job_id, timestamp, level, process, message)) + try: + db('INSERT INTO log (job_id, timestamp, level, process, message) ' + 'VALUES (?X)', (job_id, timestamp, level, process, message)) + except Exception as exc: + # not so serious to break the calculation + print(exc) + def get_log(db, job_id): From 1b0f01c1b5196dce2774d1037af1cfadc6889fe2 Mon Sep 17 00:00:00 2001 From: Michele Simionato Date: Fri, 29 May 2026 02:49:39 +0200 Subject: [PATCH 2/2] Fixed the error "cannot pickle sqlite3.Cursor" --- openquake/baselib/parallel.py | 4 ++++ openquake/server/dbserver.py | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/openquake/baselib/parallel.py b/openquake/baselib/parallel.py index 119531e7c89c..9c91aa5cf6a1 100644 --- a/openquake/baselib/parallel.py +++ b/openquake/baselib/parallel.py @@ -188,6 +188,7 @@ def count(word): import socket import signal import pickle +import sqlite3 import getpass import inspect import logging @@ -455,6 +456,9 @@ def new(cls, func, args, mon, sentbytes=0): _etype, exc, tb = sys.exc_info() res = Result(exc, mon, ''.join(traceback.format_tb(tb))) else: + if isinstance(val, sqlite3.Cursor): + # happens when the DbServer performs an UPDATE command + val = val.lastrowid res = Result(val, mon) return res diff --git a/openquake/server/dbserver.py b/openquake/server/dbserver.py index 04dd1cb1d6de..f5b89fe31284 100644 --- a/openquake/server/dbserver.py +++ b/openquake/server/dbserver.py @@ -61,9 +61,11 @@ def dworker(self, sock): try: func = getattr(actions, cmd) except AttributeError: # SQL string - sock.send(p.safely_call(self.db, (cmd,) + args)) + res = p.safely_call(self.db, (cmd,) + args) + sock.send(res) else: # action - sock.send(p.safely_call(func, (self.db,) + args)) + res = p.safely_call(func, (self.db,) + args) + sock.send(res) def start(self): """