diff --git a/rhodecode/lib/rc_cache/cache_key_meta.py b/rhodecode/lib/rc_cache/cache_key_meta.py deleted file mode 100644 --- a/rhodecode/lib/rc_cache/cache_key_meta.py +++ /dev/null @@ -1,69 +0,0 @@ -# Copyright (C) 2015-2023 RhodeCode GmbH -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License, version 3 -# (only), as published by the Free Software Foundation. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -# This program is dual-licensed. If you wish to learn more about the -# RhodeCode Enterprise Edition, including its added features, Support services, -# and proprietary license terms, please see https://rhodecode.com/licenses/ - -import atexit -import logging -import os -import signal -import sys - -import rhodecode - -log = logging.getLogger(__name__) - -cache_keys_by_pid = set() - - -def sigHandler(signo, frame): - """ - signals trigger sys.exit so there's a single handler to cleanup the code. - """ - if rhodecode.is_test: - return - - sys.exit(0) - - -def free_cache_keys(*args): - from rhodecode.model.db import CacheKey, Session - - if rhodecode.is_test: - return - - ssh_cmd = os.environ.get('RC_CMD_SSH_WRAPPER') - if ssh_cmd: - return - - if cache_keys_by_pid: - try: - for cache_proc in set(cache_keys_by_pid): - like_expression = f'{cache_proc}%' - qry = CacheKey.query().filter(CacheKey.cache_key.like(like_expression)) - count = qry.count() - log.info('Clearing %s: %s cache keys, total: %s', cache_proc, len(cache_keys_by_pid), count) - qry.delete(synchronize_session='fetch') - cache_keys_by_pid.remove(cache_proc) - Session().commit() - except Exception: - log.exception('Failed to clear keys, exiting gracefully') - -atexit.register(free_cache_keys) - -signal.signal(signal.SIGTERM, sigHandler) -signal.signal(signal.SIGINT, sigHandler) - diff --git a/rhodecode/lib/rc_cache/utils.py b/rhodecode/lib/rc_cache/utils.py --- a/rhodecode/lib/rc_cache/utils.py +++ b/rhodecode/lib/rc_cache/utils.py @@ -30,7 +30,7 @@ from rhodecode.lib.hash_utils import sha from rhodecode.lib.str_utils import safe_bytes from rhodecode.lib.type_utils import str2bool # noqa :required by imports from .utils -from . import region_meta, cache_key_meta +from . import region_meta log = logging.getLogger(__name__) @@ -352,7 +352,6 @@ class InvalidationContext(object): cache_state_uid = first_cache_obj.cache_state_uid cache_obj = CacheKey(self.cache_key, cache_args=new_cache_args, cache_state_uid=cache_state_uid) - cache_key_meta.cache_keys_by_pid.add(self.proc_key) return cache_obj