From 4651b33c61ddb8219085899ab27f21575830d9f1 Mon Sep 17 00:00:00 2001 From: Ouziel Slama Date: Wed, 19 Feb 2025 09:56:17 +0000 Subject: [PATCH] just don't close db connection like recommanded by apsw --- .../counterpartycore/lib/api/apiserver.py | 8 +++--- .../counterpartycore/lib/cli/server.py | 26 +++---------------- .../counterpartycore/lib/parser/follow.py | 8 +++--- 3 files changed, 11 insertions(+), 31 deletions(-) diff --git a/counterparty-core/counterpartycore/lib/api/apiserver.py b/counterparty-core/counterpartycore/lib/api/apiserver.py index ae5b498a9e..598986389a 100644 --- a/counterparty-core/counterpartycore/lib/api/apiserver.py +++ b/counterparty-core/counterpartycore/lib/api/apiserver.py @@ -493,8 +493,9 @@ def run_apiserver( logger.info("Starting API Server process...") def handle_interrupt_signal(signum, frame): - logger.warning("Keyboard interrupt received. Shutting down...") - raise KeyboardInterrupt + pass + # logger.warning("Keyboard interrupt received. Shutting down...") + # raise KeyboardInterrupt wsgi_server = None parent_checker = None @@ -539,9 +540,6 @@ def handle_interrupt_signal(signum, frame): wsgi_server.run(server_ready_value, shared_backend_height) - except KeyboardInterrupt: - pass - finally: logger.info("Stopping API Server...") diff --git a/counterparty-core/counterpartycore/lib/cli/server.py b/counterparty-core/counterpartycore/lib/cli/server.py index 0300a8cd83..52489532a1 100755 --- a/counterparty-core/counterpartycore/lib/cli/server.py +++ b/counterparty-core/counterpartycore/lib/cli/server.py @@ -764,8 +764,8 @@ def run(self): self.follower_daemon.start() def stop(self): - logger.warning("Shutting down...") - self.db.interrupt() + logger.info("Shutting down...") + # self.db.interrupt() # Ensure all threads are stopped if self.backend_height_thread: self.backend_height_thread.stop() @@ -775,6 +775,8 @@ def stop(self): self.api_status_poller.stop() if self.apiserver_v1: self.apiserver_v1.stop() + if self.apiserver_v2: + self.apiserver_v2.stop() if self.follower_daemon: self.follower_daemon.stop() @@ -787,26 +789,6 @@ def stop(self): while not self.apiserver_v2.has_stopped(): time.sleep(0.1) - # then close the database with write access - if self.db: - database.close(self.db) - - # Now it's safe to check for WAL files - for db_name, db_path in [ - ("Ledger DB", config.DATABASE), - ("State DB", config.STATE_DATABASE), - ]: - try: - database.check_wal_file(db_path) - except exceptions.WALFileFoundError: - db_file = config.DATABASE if db_name == "Ledger DB" else config.STATE_DATABASE - db = database.get_db_connection(db_file, read_only=False, check_wal=False) - db.close() - except exceptions.DatabaseError: - logger.warning( - f"{db_name} is in use by another process and was unable to be closed correctly." - ) - log.shutdown() logger.info("Shutdown complete.") diff --git a/counterparty-core/counterpartycore/lib/parser/follow.py b/counterparty-core/counterpartycore/lib/parser/follow.py index c7291192e4..071ecfbfa0 100644 --- a/counterparty-core/counterpartycore/lib/parser/follow.py +++ b/counterparty-core/counterpartycore/lib/parser/follow.py @@ -377,11 +377,11 @@ def run(self): ) def stop(self): + logger.debug("Stopping RawMempoolParser...") self.db.interrupt() - if self.is_alive(): - logger.debug("Stopping RawMempoolParser...") - self.stop_event.set() - self.join() + # if self.is_alive(): + self.stop_event.set() + self.join() class NotSupportedTransactionsCache(metaclass=helpers.SingletonMeta):