fix(ssot): 기록에만 있던 2026-09-17 실측 넷을 SSOT 에도 넣는다
기록과 SSOT 를 대조해 한쪽에만 들어간 실측을 찾았다. 넷이 기록에만 있었다. - A-0 시험 0c 의 `9 + 5 = 14` 와 DB 총계 대조 - A-8 의 `created_on` 은 그대로이고 `last_session_refresh` 만 117초 뒤로 간 것 - 토큰 길이가 판마다 다르다는 것 (`612자`·`758자` 대 `1187자`·`2043자`) 나머지 실측은 양쪽에 다 들어가 있는 것을 확인했다. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
024362d096
commit
4a457afde9
@@ -606,6 +606,22 @@ COMMIT 이 WAL 디스크 기록을 기다리지 않고 즉시 반환한다. 그
|
||||
|
||||
`persistent-user-sessions` 를 켜는 진짜 이유가 여기에 있다.
|
||||
|
||||
**★ 2026-09-17 에 다시 쟀다**(observed). 세션 수 대신 **행의 두 시각**을 견줘서 같은
|
||||
것을 더 좁게 보였다.
|
||||
|
||||
```
|
||||
재시작 전 대조군 200
|
||||
재시작 (파드 둘 교체) AGE 31s · 63s · IP 10.42.1.47→.49, 10.42.0.20→.21
|
||||
재시작 뒤 같은 refresh 200 · session_state 가 같은 sid
|
||||
DB 행 created_on 1789625835 그대로
|
||||
last_session_refresh 1789625835 → 1789625952
|
||||
캐시 재시작 전후 모두 sessions 0
|
||||
```
|
||||
|
||||
**`created_on` 은 안 바뀌고 `last_session_refresh` 만 117초 뒤로 갔다.** 새로 만든
|
||||
세션이 아니라 **남아 있던 행을 새 파드가 읽어서 갱신한 것**이고, 「세션은 살아남고
|
||||
캐시만 사라진다」의 가장 좁은 증거다.
|
||||
|
||||

|
||||
|
||||
캐시와 세션을 분리하지 않으면 재시작 후 로그인이 유지되는 이유를 설명할 수 없다.
|
||||
@@ -5129,7 +5145,13 @@ AT=$(echo "$R" | sed -n 's/.*"access_token":"\([^"]*\)".*/\1/p')
|
||||
echo "refresh=${#RT}자 access=${#AT}자"
|
||||
```
|
||||
|
||||
`refresh=1187자 access=2043자` 같은 모양이 나온다. 길이가 `0자` 면 로그인이
|
||||
`refresh=1187자 access=2043자` 같은 모양이 나온다.
|
||||
|
||||
**★ 그 두 수를 기준값으로 삼지 않는다.** 2026-09-17 에 다시 세운 실험대에서는
|
||||
`refresh=612자 access=758자` 였다(observed). 담긴 클레임과 서명 길이에 따라 달라지므로
|
||||
**보는 것은 `0자` 가 아니라는 것 하나**다.
|
||||
|
||||
길이가 `0자` 면 로그인이
|
||||
실패한 것이고 `echo "$R"` 로 에러 본문을 본다.
|
||||
|
||||
JWT 의 가운데 토막이 클레임이다. 가이드는 **먼저 통째로 디코드해 눈으로 보고**
|
||||
@@ -5358,6 +5380,20 @@ keycloak-0 에 로그인 5회 7.0 5.0
|
||||
대각선이다. **한 번에 한 쪽만 는다.** 그리고 **7 + 5 = 12** 로 DB 총계와 정확히
|
||||
맞으므로 어느 엔트리도 두 번 세어지지 않았다.
|
||||
|
||||
**★ 2026-09-17 에 같은 모양이 다시 나왔다**(observed). 로그인 수만 달라 숫자가 다르다.
|
||||
|
||||
```
|
||||
단계 k0 entries k1 entries
|
||||
시작 4 0
|
||||
keycloak-1 에 로그인 5회 4 5
|
||||
keycloak-0 에 로그인 5회 9 5
|
||||
|
||||
대조: PostgreSQL 의 online 세션 14 ← 9 + 5 = 14
|
||||
```
|
||||
|
||||
캐시 합계와 DB 총계가 맞으므로 어느 엔트리도 두 번 세어지지 않았다. **판정에 쓰는 것은
|
||||
숫자가 아니라 「한 번에 한 쪽만 늘고, 두 캐시의 합이 DB 총계와 같다」 두 가지다.**
|
||||
|
||||
```bash
|
||||
kubectl -n keycloak-lab exec deploy/postgres -- psql -U keycloak -d keycloak \
|
||||
-c "select count(*) from offline_user_session where offline_flag='0'"
|
||||
|
||||
Reference in New Issue
Block a user