Skip to content

Commit 2f22837

Browse files
committed
ongoing
1 parent 4294e69 commit 2f22837

File tree

5 files changed

+518
-496
lines changed

5 files changed

+518
-496
lines changed

services/web/server/src/simcore_service_webserver/garbage_collector/_core_disconnected.py

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
from ..resource_manager.registry import (
1111
RedisResourceRegistry,
1212
)
13-
from ._core_guests import remove_guest_user_with_all_its_resources
1413
from .settings import GUEST_USER_RC_LOCK_FORMAT
1514

1615
_logger = logging.getLogger(__name__)
@@ -32,15 +31,12 @@ async def remove_disconnected_user_resources(
3231
# - "resources" is a hash toto keep project and websocket ids
3332
#
3433

35-
_, all_sessions_dead = await registry.get_all_resource_keys()
36-
_logger.debug("potential dead keys: %s", all_sessions_dead)
34+
_, dead_user_sessions = await registry.get_all_resource_keys()
35+
_logger.debug("potential dead keys: %s", dead_user_sessions)
3736

3837
# clean up all resources of expired keys
39-
for dead_session in all_sessions_dead:
40-
try:
41-
user_id = int(dead_session["user_id"])
42-
except (KeyError, ValueError):
43-
continue
38+
for dead_session in dead_user_sessions:
39+
user_id = int(dead_session["user_id"])
4440

4541
if await lock_manager.lock(
4642
GUEST_USER_RC_LOCK_FORMAT.format(user_id=user_id)
@@ -108,13 +104,6 @@ async def remove_disconnected_user_resources(
108104
err,
109105
)
110106

111-
# ONLY GUESTS: if this user was a GUEST also remove it from the database
112-
# with the only associated project owned
113-
await remove_guest_user_with_all_its_resources(
114-
app=app,
115-
user_id=user_id,
116-
)
117-
118107
# (2) remove resource field in collected keys since (1) is completed
119108
_logger.info(
120109
"(2) Removing field for released resource %s:%s from registry keys: %s",

services/web/server/src/simcore_service_webserver/garbage_collector/_core_guests.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -240,8 +240,3 @@ async def remove_users_manually_marked_as_guests(
240240
app=app,
241241
user_id=guest_user_id,
242242
)
243-
244-
await remove_guest_user_with_all_its_resources(
245-
app=app,
246-
user_id=guest_user_id,
247-
)
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import pytest
2+
3+
4+
@pytest.fixture(scope="session")
5+
def fast_service_deletion_delay() -> int:
6+
"""
7+
Returns the delay in seconds for fast service deletion.
8+
This is used to speed up tests that involve service deletion.
9+
"""
10+
return 1
11+
12+
13+
@pytest.fixture
14+
def app_environment(
15+
fast_service_deletion_delay: int,
16+
monkeypatch: pytest.MonkeyPatch,
17+
app_environment: EnvVarsDict,
18+
) -> EnvVarsDict:
19+
# NOTE: undos some app_environment settings
20+
monkeypatch.delenv("WEBSERVER_GARBAGE_COLLECTOR", raising=False)
21+
app_environment.pop("WEBSERVER_GARBAGE_COLLECTOR", None)
22+
23+
return app_environment | setenvs_from_dict(
24+
monkeypatch,
25+
{
26+
"WEBSERVER_COMPUTATION": "1",
27+
"WEBSERVER_NOTIFICATIONS": "1",
28+
# sets TTL of a resource after logout
29+
"RESOURCE_MANAGER_RESOURCE_TTL_S": f"{fast_service_deletion_delay}",
30+
"GARBAGE_COLLECTOR_INTERVAL_S": "30",
31+
},
32+
)

0 commit comments

Comments
 (0)