Skip to content

fix(test-upgrade): shadow-baza z obrazu produkcji, start kandydata, praca bez nadzoru - #43

Merged
mpasternak merged 1 commit into
mainfrom
fix/test-upgrade-shadow-stack
Nov 3, 2026
Merged

mpasternak merged 1 commit into
mainfrom
fix/test-upgrade-shadow-stack

Conversation

@mpasternak

Copy link
Copy Markdown
Member

Co i dlaczego

make test-upgrade był niesprawny: shadow-baza startowała z wycofanego obrazu iplweb/bpp_dbserver:psql-* (dla PG 18.4 obrazu najpewniej nie ma), a kontrola miejsca używała docker compose exec dbserver psql, co nie działa przy bazie zewnętrznej.

  • Shadow-baza = obraz produkcyjnego dbserver (odczytany z działającego kontenera) + autotune z dbserver/, przypięty PGDATA, ICU pl-PL. Przy bazie zewnętrznej Debianowy postgres:<major>.
  • Rozmiar bazy mierzony przed kontrolą miejsca: du na wolumenie produkcyjnym (:ro); external: pg_database_size przez sentinela.
  • Kontrola RAM: baza + redis + max(migracja, kandydat) vs MemAvailable z kontenera (na macOS to VM Dockera).
  • Nowa definicja sukcesu: migracje przeszły i kandydat wstał na kopii bazy (/health/ + strona główna 2xx/3xx). Bez monitoringu, workerów i nginx.
  • pg_restore --no-privileges: GRANT-y dla ról, których nie ma w shadow (np. użytkownik monitoringu), nie wywracają próby.
  • Praca bez nadzoru: blokada na hosta (exit 2); po błędzie bez TTY shadow stack jest sprzątany po wypisaniu logu kandydata (KEEP_SHADOW=0|1 nadpisuje); make db-backup dostał exec -T.
  • Naprawa: nieudany df pod pipefail cicho kończył skrypt.

Testy

  • scripts/test-docker-versions.sh: lokalnie 72/72. Nowe: pełny przebieg test-upgrade na atrapie dockera (obraz shadow-bazy, autotune, brak miejsca/RAM, migracja pada, kandydat nie wstaje / pada / 500, tryb external, blokada zajęta/osierocona, sprzątanie bez TTY).
  • Na żywo sprawdzone: start shadow-bazy z autotune (bierze limit cgroup mimo POSTGRESQL_RAM_THIS_MUCH_GB w .env), du na wolumenie, odczyt MemAvailable z kontenera, compose exec bez TTY.
  • Niesprawdzone lokalnie: tests/test_makefile.sh (zawiesił się na apt-get w kontenerze — mirror Debiana prawie nie odpowiadał) i mkdocs build --strict (brak mkdocs na hoście) — czekam na CI.
  • Brak przebiegu na prawdziwej instalacji — pierwsze make test-upgrade na hoście z produkcją jest właściwym testem end-to-end.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Mr7s9p7jn3yYVDU3vAERiF

…raca bez nadzoru

- Shadow-baza startuje z tego samego obrazu co produkcyjny dbserver
  (odczytany z dzialajacego kontenera) + autotune z dbserver/, przypiety
  PGDATA i kolacja ICU - zamiast wycofanego iplweb/bpp_dbserver:psql-*.
  Baza zewnetrzna: Debianowy postgres:<major>.
- Rozmiar bazy mierzony przed kontrola miejsca: du na wolumenie
  produkcyjnym (external: pg_database_size przez sentinela).
- Kontrola RAM: suma limitow shadow stacka vs MemAvailable z kontenera.
- Sukces = migracje przeszly I kandydat wstal na kopii bazy
  (/health/ + strona glowna 2xx/3xx). Bez monitoringu/workerow/nginx.
- pg_restore --no-privileges: GRANT-y dla nieistniejacych rol nie
  wywracaja proby.
- Bez nadzoru: blokada na hosta (exit 2), po bledzie bez TTY sprzatanie
  shadow stacka (KEEP_SHADOW nadpisuje). db-backup: exec -T.
- Naprawa: nieudany df pod pipefail cicho konczyl skrypt.
- Testy: pelny przebieg test-upgrade na atrapie dockera.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Mr7s9p7jn3yYVDU3vAERiF
@mpasternak
mpasternak merged commit 7897eb8 into main Nov 3, 2026
7 checks passed
@mpasternak
mpasternak deleted the fix/test-upgrade-shadow-stack branch November 3, 2026 22:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant