audits: calcom memory (R-703) + PG 16->18 bench and box proofs

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
2026-09-28 11:48:45 +02:00
parent 648f200cdf
commit b9af5b3913
33 changed files with 4293 additions and 2 deletions
@@ -0,0 +1,6 @@
## 2026-09-28T09:25:41Z bench #2 create (calcom)
Configuration file 'nodes/demo-hp/lxc/9401.conf' does not exist
download of 'http://download.proxmox.com/images/system/debian-13-standard_13.6-1_amd64.tar.zst' to '/var/lib/vz/template/cache/debian-13-standard_13.6-1_amd64.tar.zst' finished
done: SHA256:hyEeF9EXYd7hD94nZVkp4+JAkhpJ58LREVLfP7mkpyg root@upgrade-harness
Docker version 26.1.5+dfsg1, build a72d7cd
traefik-public-net
@@ -0,0 +1,10 @@
## 2026-09-28T09:45:03Z bench #2 destroy
hostname: upgrade-harness
purging CT 9401 from related configurations..
destroyed-9401
template-removed
VMID Status Lock Name
9201 running demo-hp
9202 running demo-hp-scratch
local-lvm lvmthin active 56487936 31418590 25069345 55.62%
nvme-scratch dir active 983379700 50676788 882676300 5.15%
@@ -0,0 +1,153 @@
[09:27:00] scratch drive folders cleared before FROM (R-656): none existed
[09:27:00] MV-calcom: deploying calcom at FROM {'calcom': 'calcom/cal.com:v6.2.0', 'calcom-postgres': 'postgres:16-alpine'}
[09:29:51] FROM settled=True in 36.2s :: {"calcom": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "calcom-postgres": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
[09:29:51] fixture: the BOX walk's own (Calcom), through upgrade_boxport
[09:29:56] calcom: /api/auth/setup http=200 :: {"message":"First admin user created successfully."}
[09:29:56] calcom: seeded user drill3ee780
[09:29:57] calcom: readback — the seeded user's page http=200
[09:29:57] C1 (seed reads back BEFORE): True
[09:29:57] MV-calcom: PostgreSQL major move {'service': 'calcom-postgres', 'engine': 'postgres', 'from': 16, 'to': 18} — converting on the bench before the swap
[09:30:32] CONVERTED calcom-postgres PostgreSQL 16 -> 18 in 35.0s (dump 0.77s / 533193 B, load 4.1s, check equal over 122 tables)
[09:30:32] MV-calcom: swapping to TO {'calcom': 'calcom/cal.com:v6.2.0', 'calcom-postgres': 'postgres:18-alpine'}
[09:30:35] TO up -d rc=0
[09:31:06] TO settled=True in 31.0s :: {"calcom": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "calcom-postgres": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
[09:31:06] engine state calcom-postgres: 18
[09:31:07] migration lines observed: 6
[09:31:08] calcom: readback — the seeded user's page http=200
[09:31:08] RESULT (seed reads back AFTER): True
[09:31:08] memory watch: 600s, 4 callers on 1 path(s) at 172.18.0.2:3000
[09:31:23] + 15s calcom=1535M/1536M peak=1536M kills=0 rs=0 calcom-postgres=159M/256M peak=172M kills=0 rs=0 reqs=256
[09:31:38] + 30s calcom=1472M/1536M peak=1536M kills=0 rs=0 calcom-postgres=159M/256M peak=172M kills=0 rs=0 reqs=518
[09:31:53] + 45s calcom=1431M/1536M peak=1536M kills=0 rs=0 calcom-postgres=159M/256M peak=172M kills=0 rs=0 reqs=782
[09:32:08] + 61s calcom=1470M/1536M peak=1536M kills=0 rs=0 calcom-postgres=160M/256M peak=172M kills=0 rs=0 reqs=1047
[09:32:24] + 76s calcom=1438M/1536M peak=1536M kills=0 rs=0 calcom-postgres=160M/256M peak=172M kills=0 rs=0 reqs=1309
[09:32:39] + 91s calcom=1405M/1536M peak=1536M kills=0 rs=0 calcom-postgres=160M/256M peak=172M kills=0 rs=0 reqs=1574
[09:32:54] + 106s calcom=1438M/1536M peak=1536M kills=0 rs=0 calcom-postgres=160M/256M peak=172M kills=0 rs=0 reqs=1840
[09:33:09] + 121s calcom=1403M/1536M peak=1536M kills=0 rs=0 calcom-postgres=160M/256M peak=172M kills=0 rs=0 reqs=2104
[09:33:24] + 136s calcom=1444M/1536M peak=1536M kills=0 rs=0 calcom-postgres=160M/256M peak=172M kills=0 rs=0 reqs=2368
[09:33:39] + 152s calcom=1406M/1536M peak=1536M kills=0 rs=0 calcom-postgres=160M/256M peak=172M kills=0 rs=0 reqs=2632
[09:33:55] + 167s calcom=1454M/1536M peak=1536M kills=0 rs=0 calcom-postgres=160M/256M peak=172M kills=0 rs=0 reqs=2899
[09:34:10] + 182s calcom=1422M/1536M peak=1536M kills=0 rs=0 calcom-postgres=160M/256M peak=172M kills=0 rs=0 reqs=3165
[09:34:25] + 197s calcom=1459M/1536M peak=1536M kills=0 rs=0 calcom-postgres=160M/256M peak=172M kills=0 rs=0 reqs=3429
[09:34:40] + 212s calcom=1427M/1536M peak=1536M kills=0 rs=0 calcom-postgres=160M/256M peak=172M kills=0 rs=0 reqs=3695
[09:34:55] + 227s calcom=1474M/1536M peak=1536M kills=0 rs=0 calcom-postgres=160M/256M peak=172M kills=0 rs=0 reqs=3960
[09:35:10] + 242s calcom=1439M/1536M peak=1536M kills=0 rs=0 calcom-postgres=160M/256M peak=172M kills=0 rs=0 reqs=4225
[09:35:25] + 258s calcom=1409M/1536M peak=1536M kills=0 rs=0 calcom-postgres=160M/256M peak=172M kills=0 rs=0 reqs=4490
[09:35:41] + 273s calcom=1450M/1536M peak=1536M kills=0 rs=0 calcom-postgres=160M/256M peak=172M kills=0 rs=0 reqs=4756
[09:35:56] + 288s calcom=1418M/1536M peak=1536M kills=0 rs=0 calcom-postgres=162M/256M peak=172M kills=0 rs=0 reqs=5022
[09:36:11] + 303s calcom=1454M/1536M peak=1536M kills=0 rs=0 calcom-postgres=163M/256M peak=172M kills=0 rs=0 reqs=5288
[09:36:26] + 318s calcom=1423M/1536M peak=1536M kills=0 rs=0 calcom-postgres=164M/256M peak=172M kills=0 rs=0 reqs=5552
[09:36:41] + 333s calcom=1465M/1536M peak=1536M kills=0 rs=0 calcom-postgres=165M/256M peak=172M kills=0 rs=0 reqs=5820
[09:36:56] + 348s calcom=1429M/1536M peak=1536M kills=0 rs=0 calcom-postgres=165M/256M peak=172M kills=0 rs=0 reqs=6084
[09:37:11] + 364s calcom=1396M/1536M peak=1536M kills=0 rs=0 calcom-postgres=167M/256M peak=172M kills=0 rs=0 reqs=6349
[09:37:27] + 379s calcom=1442M/1536M peak=1536M kills=0 rs=0 calcom-postgres=168M/256M peak=172M kills=0 rs=0 reqs=6615
[09:37:42] + 394s calcom=1404M/1536M peak=1536M kills=0 rs=0 calcom-postgres=169M/256M peak=172M kills=0 rs=0 reqs=6880
[09:37:57] + 409s calcom=1446M/1536M peak=1536M kills=0 rs=0 calcom-postgres=169M/256M peak=172M kills=0 rs=0 reqs=7146
[09:38:12] + 424s calcom=1413M/1536M peak=1536M kills=0 rs=0 calcom-postgres=169M/256M peak=172M kills=0 rs=0 reqs=7411
[09:38:27] + 439s calcom=1451M/1536M peak=1536M kills=0 rs=0 calcom-postgres=169M/256M peak=172M kills=0 rs=0 reqs=7674
[09:38:42] + 454s calcom=1419M/1536M peak=1536M kills=0 rs=0 calcom-postgres=169M/256M peak=172M kills=0 rs=0 reqs=7940
[09:38:57] + 469s calcom=1463M/1536M peak=1536M kills=0 rs=0 calcom-postgres=169M/256M peak=173M kills=0 rs=0 reqs=8205
[09:39:12] + 485s calcom=1436M/1536M peak=1536M kills=0 rs=0 calcom-postgres=169M/256M peak=173M kills=0 rs=0 reqs=8471
[09:39:28] + 500s calcom=1474M/1536M peak=1536M kills=0 rs=0 calcom-postgres=169M/256M peak=173M kills=0 rs=0 reqs=8734
[09:39:43] + 515s calcom=1439M/1536M peak=1536M kills=0 rs=0 calcom-postgres=169M/256M peak=173M kills=0 rs=0 reqs=9000
[09:39:58] + 530s calcom=1405M/1536M peak=1536M kills=0 rs=0 calcom-postgres=169M/256M peak=173M kills=0 rs=0 reqs=9266
[09:40:13] + 545s calcom=1443M/1536M peak=1536M kills=0 rs=0 calcom-postgres=169M/256M peak=173M kills=0 rs=0 reqs=9532
[09:40:28] + 560s calcom=1413M/1536M peak=1536M kills=0 rs=0 calcom-postgres=169M/256M peak=173M kills=0 rs=0 reqs=9796
[09:40:43] + 576s calcom=1454M/1536M peak=1536M kills=0 rs=0 calcom-postgres=169M/256M peak=173M kills=0 rs=0 reqs=10061
[09:40:59] + 591s calcom=1418M/1536M peak=1536M kills=0 rs=0 calcom-postgres=169M/256M peak=173M kills=0 rs=0 reqs=10326
[09:41:14] + 606s calcom=1462M/1536M peak=1536M kills=0 rs=0 calcom-postgres=169M/256M peak=173M kills=0 rs=0 reqs=10592
[09:41:14] memory watch: killed=False tight=[] requests=10592 codes={'307': 10592}
[09:41:14] MV-calcom: ABORT — putting the FROM images back
[09:44:27] ABORT: the app did NOT come back (rc=1, 180.1s)
{
"harness_version": 4,
"edge": "MV-calcom",
"app": "calcom",
"note": "night 2026-09-23 within-a-major move: calcom-postgres=postgres:18-alpine",
"from": {
"calcom": "calcom/cal.com:v6.2.0",
"calcom-postgres": "postgres:16-alpine"
},
"to": {
"calcom": "calcom/cal.com:v6.2.0",
"calcom-postgres": "postgres:18-alpine"
},
"verdict": "proven",
"seed_read_before": true,
"seed_read_after": true,
"healthy_after": true,
"migration_observed": "\u001b[2Kcalcom | + npx prisma migrate deploy --schema /calcom/packages/prisma/schema.prisma",
"abort": "refuses",
"abort_detail": "/lib/postgresql/data\".\n\u001b[2Kcalcom-postgres | The files belonging to this database system will be owned by user \"postgres\".\n\u001b[2Kcalcom-postgres | This user must also own the server process.\n\u001b[2Kcalcom-postgres | \n\u001b[2Kcalcom-postgres | The database cluster will be initialized with locale \"en_US.utf8\".\n\u001b[2Kcalcom-postgres | The default database encoding has accordingly been set to \"UTF8\".\n\u001b[2Kcalcom-postgres | The default text search configuration will be set to \"english\".\n\u001b[2Kcalcom-postgres | \n\u001b[2Kcalcom-postgres | Data page checksums are disabled.\n\u001b[2Kcalcom-postgres | \n\u001b[2Kcalcom-postgres | initdb: error: directory \"/var/lib/postgresql/data\" exists but is not empty\n\u001b[2Kcalcom-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory \"/var/lib/postgresql/data\" or run initdb with an argument other than \"/var/lib/postgresql/data\".",
"engine_state_after": {
"calcom-postgres": {
"image": "postgres:18-alpine",
"probe": "datadir major version",
"answer": "18",
"probe_rc": 0
}
},
"memory": {
"soak_s": 606.1,
"requested_s": 600,
"requests": 10592,
"codes": {
"307": 10592
},
"first_kill": null,
"containers": {
"calcom": {
"limit": 1610612736,
"peak": 1610620928,
"peak_pct": 1.0,
"anon_peak_sampled": 990781440,
"anon_peak_pct": 0.615,
"oom_kills": 0,
"restarts": 0,
"oomkilled_flag": false,
"measured": true
},
"calcom-postgres": {
"limit": 268435456,
"peak": 182304768,
"peak_pct": 0.679,
"anon_peak_sampled": 5763072,
"anon_peak_pct": 0.021,
"oom_kills": 0,
"restarts": 0,
"oomkilled_flag": false,
"measured": true
}
},
"unmeasured": [],
"load": "reached"
},
"marks": [],
"duration_s": 31.0,
"measured_at": "2026-09-28T09:44:27Z",
"evidence": "evidence/MV-calcom",
"scratch_cleared": [],
"engine_conversion": {
"service": "calcom-postgres",
"engine": "postgres",
"from": 16,
"to": 18,
"dump_s": 0.77,
"dump_bytes": 533193,
"new_engine_ready_s": 2.2,
"load_s": 4.1,
"dropped": [
"calcom"
],
"skipped_create_role": [
"CREATE ROLE calcom;"
],
"result": "converted",
"check_equal": true,
"pg_version": "18",
"tables": 122,
"convert_s": 35.0
},
"files_changed": [],
"total_s": 1047.5
}
@@ -0,0 +1,40 @@
calcom-postgres | The default database encoding has accordingly been set to "UTF8".
calcom-postgres | The default text search configuration will be set to "english".
calcom-postgres |
calcom-postgres | Data page checksums are disabled.
calcom-postgres |
calcom-postgres | initdb: error: directory "/var/lib/postgresql/data" exists but is not empty
calcom-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
calcom-postgres | The files belonging to this database system will be owned by user "postgres".
calcom-postgres | This user must also own the server process.
calcom-postgres |
calcom-postgres | The database cluster will be initialized with locale "en_US.utf8".
calcom-postgres | The default database encoding has accordingly been set to "UTF8".
calcom-postgres | The default text search configuration will be set to "english".
calcom-postgres |
calcom-postgres | Data page checksums are disabled.
calcom-postgres |
calcom-postgres | initdb: error: directory "/var/lib/postgresql/data" exists but is not empty
calcom-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
calcom-postgres | The files belonging to this database system will be owned by user "postgres".
calcom-postgres | This user must also own the server process.
calcom-postgres |
calcom-postgres | The database cluster will be initialized with locale "en_US.utf8".
calcom-postgres | The default database encoding has accordingly been set to "UTF8".
calcom-postgres | The default text search configuration will be set to "english".
calcom-postgres |
calcom-postgres | Data page checksums are disabled.
calcom-postgres |
calcom-postgres | initdb: error: directory "/var/lib/postgresql/data" exists but is not empty
calcom-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
calcom-postgres | The files belonging to this database system will be owned by user "postgres".
calcom-postgres | This user must also own the server process.
calcom-postgres |
calcom-postgres | The database cluster will be initialized with locale "en_US.utf8".
calcom-postgres | The default database encoding has accordingly been set to "UTF8".
calcom-postgres | The default text search configuration will be set to "english".
calcom-postgres |
calcom-postgres | Data page checksums are disabled.
calcom-postgres |
calcom-postgres | initdb: error: directory "/var/lib/postgresql/data" exists but is not empty
calcom-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
@@ -0,0 +1,14 @@
{
"calcom": {
"status": "created",
"health": null,
"restarts": 0,
"exit": 0
},
"calcom-postgres": {
"status": "restarting",
"health": "unhealthy",
"restarts": 0,
"exit": 1
}
}
@@ -0,0 +1,132 @@
calcom-postgres | The files belonging to this database system will be owned by user "postgres".
calcom-postgres | This user must also own the server process.
calcom-postgres |
calcom-postgres | The database cluster will be initialized with locale "en_US.utf8".
calcom-postgres | The default database encoding has accordingly been set to "UTF8".
calcom-postgres | The default text search configuration will be set to "english".
calcom-postgres |
calcom-postgres | Data page checksums are disabled.
calcom-postgres |
calcom-postgres | initdb: error: directory "/var/lib/postgresql/data" exists but is not empty
calcom-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
calcom-postgres | The files belonging to this database system will be owned by user "postgres".
calcom-postgres | This user must also own the server process.
calcom-postgres |
calcom-postgres | The database cluster will be initialized with locale "en_US.utf8".
calcom-postgres | The default database encoding has accordingly been set to "UTF8".
calcom-postgres | The default text search configuration will be set to "english".
calcom-postgres |
calcom-postgres | Data page checksums are disabled.
calcom-postgres |
calcom-postgres | initdb: error: directory "/var/lib/postgresql/data" exists but is not empty
calcom-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
calcom-postgres | The files belonging to this database system will be owned by user "postgres".
calcom-postgres | This user must also own the server process.
calcom-postgres |
calcom-postgres | The database cluster will be initialized with locale "en_US.utf8".
calcom-postgres | The default database encoding has accordingly been set to "UTF8".
calcom-postgres | The default text search configuration will be set to "english".
calcom-postgres |
calcom-postgres | Data page checksums are disabled.
calcom-postgres |
calcom-postgres | initdb: error: directory "/var/lib/postgresql/data" exists but is not empty
calcom-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
calcom-postgres | The files belonging to this database system will be owned by user "postgres".
calcom-postgres | This user must also own the server process.
calcom-postgres |
calcom-postgres | The database cluster will be initialized with locale "en_US.utf8".
calcom-postgres | The default database encoding has accordingly been set to "UTF8".
calcom-postgres | The default text search configuration will be set to "english".
calcom-postgres |
calcom-postgres | Data page checksums are disabled.
calcom-postgres |
calcom-postgres | initdb: error: directory "/var/lib/postgresql/data" exists but is not empty
calcom-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
calcom-postgres | The files belonging to this database system will be owned by user "postgres".
calcom-postgres | This user must also own the server process.
calcom-postgres |
calcom-postgres | The database cluster will be initialized with locale "en_US.utf8".
calcom-postgres | The default database encoding has accordingly been set to "UTF8".
calcom-postgres | The default text search configuration will be set to "english".
calcom-postgres |
calcom-postgres | Data page checksums are disabled.
calcom-postgres |
calcom-postgres | initdb: error: directory "/var/lib/postgresql/data" exists but is not empty
calcom-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
calcom-postgres | The files belonging to this database system will be owned by user "postgres".
calcom-postgres | This user must also own the server process.
calcom-postgres |
calcom-postgres | The database cluster will be initialized with locale "en_US.utf8".
calcom-postgres | The default database encoding has accordingly been set to "UTF8".
calcom-postgres | The default text search configuration will be set to "english".
calcom-postgres |
calcom-postgres | Data page checksums are disabled.
calcom-postgres |
calcom-postgres | initdb: error: directory "/var/lib/postgresql/data" exists but is not empty
calcom-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
calcom-postgres | The files belonging to this database system will be owned by user "postgres".
calcom-postgres | This user must also own the server process.
calcom-postgres |
calcom-postgres | The database cluster will be initialized with locale "en_US.utf8".
calcom-postgres | The default database encoding has accordingly been set to "UTF8".
calcom-postgres | The default text search configuration will be set to "english".
calcom-postgres |
calcom-postgres | Data page checksums are disabled.
calcom-postgres |
calcom-postgres | initdb: error: directory "/var/lib/postgresql/data" exists but is not empty
calcom-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
calcom-postgres | The files belonging to this database system will be owned by user "postgres".
calcom-postgres | This user must also own the server process.
calcom-postgres |
calcom-postgres | The database cluster will be initialized with locale "en_US.utf8".
calcom-postgres | The default database encoding has accordingly been set to "UTF8".
calcom-postgres | The default text search configuration will be set to "english".
calcom-postgres |
calcom-postgres | Data page checksums are disabled.
calcom-postgres |
calcom-postgres | initdb: error: directory "/var/lib/postgresql/data" exists but is not empty
calcom-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
calcom-postgres | The files belonging to this database system will be owned by user "postgres".
calcom-postgres | This user must also own the server process.
calcom-postgres |
calcom-postgres | The database cluster will be initialized with locale "en_US.utf8".
calcom-postgres | The default database encoding has accordingly been set to "UTF8".
calcom-postgres | The default text search configuration will be set to "english".
calcom-postgres |
calcom-postgres | Data page checksums are disabled.
calcom-postgres |
calcom-postgres | initdb: error: directory "/var/lib/postgresql/data" exists but is not empty
calcom-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
calcom-postgres | The files belonging to this database system will be owned by user "postgres".
calcom-postgres | This user must also own the server process.
calcom-postgres |
calcom-postgres | The database cluster will be initialized with locale "en_US.utf8".
calcom-postgres | The default database encoding has accordingly been set to "UTF8".
calcom-postgres | The default text search configuration will be set to "english".
calcom-postgres |
calcom-postgres | Data page checksums are disabled.
calcom-postgres |
calcom-postgres | initdb: error: directory "/var/lib/postgresql/data" exists but is not empty
calcom-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
calcom-postgres | The files belonging to this database system will be owned by user "postgres".
calcom-postgres | This user must also own the server process.
calcom-postgres |
calcom-postgres | The database cluster will be initialized with locale "en_US.utf8".
calcom-postgres | The default database encoding has accordingly been set to "UTF8".
calcom-postgres | The default text search configuration will be set to "english".
calcom-postgres |
calcom-postgres | Data page checksums are disabled.
calcom-postgres |
calcom-postgres | initdb: error: directory "/var/lib/postgresql/data" exists but is not empty
calcom-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
calcom-postgres | The files belonging to this database system will be owned by user "postgres".
calcom-postgres | This user must also own the server process.
calcom-postgres |
calcom-postgres | The database cluster will be initialized with locale "en_US.utf8".
calcom-postgres | The default database encoding has accordingly been set to "UTF8".
calcom-postgres | The default text search configuration will be set to "english".
calcom-postgres |
calcom-postgres | Data page checksums are disabled.
calcom-postgres |
calcom-postgres | initdb: error: directory "/var/lib/postgresql/data" exists but is not empty
calcom-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
@@ -0,0 +1,126 @@
db:calcom owner=calcom enc=UTF8 coll=en_US.utf8
db:postgres owner=calcom enc=UTF8 coll=en_US.utf8
ext:calcom:plpgsql
role:calcom super=true login=true pw=true
rows:calcom:public.AIPhoneCallConfiguration=0
rows:calcom:public.AccessCode=0
rows:calcom:public.AccessToken=0
rows:calcom:public.Account=0
rows:calcom:public.Agent=0
rows:calcom:public.ApiKey=0
rows:calcom:public.App=104
rows:calcom:public.App_RoutingForms_Form=0
rows:calcom:public.App_RoutingForms_FormResponse=0
rows:calcom:public.App_RoutingForms_IncompleteBookingActions=0
rows:calcom:public.App_RoutingForms_QueuedFormResponse=0
rows:calcom:public.AssignmentReason=0
rows:calcom:public.Attendee=0
rows:calcom:public.Attribute=0
rows:calcom:public.AttributeOption=0
rows:calcom:public.AttributeSyncFieldMapping=0
rows:calcom:public.AttributeSyncRule=0
rows:calcom:public.AttributeToUser=0
rows:calcom:public.AuditActor=1
rows:calcom:public.Availability=0
rows:calcom:public.Booking=0
rows:calcom:public.BookingAudit=0
rows:calcom:public.BookingDenormalized=0
rows:calcom:public.BookingInternalNote=0
rows:calcom:public.BookingReference=0
rows:calcom:public.BookingReport=0
rows:calcom:public.BookingSeat=0
rows:calcom:public.CalAiPhoneNumber=0
rows:calcom:public.CalVideoSettings=0
rows:calcom:public.CalendarCache=0
rows:calcom:public.CalendarCacheEvent=0
rows:calcom:public.Credential=0
rows:calcom:public.CreditBalance=0
rows:calcom:public.CreditExpenseLog=0
rows:calcom:public.CreditPurchaseLog=0
rows:calcom:public.DSyncData=0
rows:calcom:public.DSyncTeamGroupMapping=0
rows:calcom:public.DelegationCredential=0
rows:calcom:public.Deployment=0
rows:calcom:public.DestinationCalendar=0
rows:calcom:public.DomainWideDelegation=0
rows:calcom:public.EventType=0
rows:calcom:public.EventTypeCustomInput=0
rows:calcom:public.EventTypeTranslation=0
rows:calcom:public.Feature=36
rows:calcom:public.Feedback=0
rows:calcom:public.FilterSegment=0
rows:calcom:public.HashedLink=0
rows:calcom:public.HolidayCache=0
rows:calcom:public.Host=0
rows:calcom:public.HostGroup=0
rows:calcom:public.HostLocation=0
rows:calcom:public.Impersonations=0
rows:calcom:public.InstantMeetingToken=0
rows:calcom:public.IntegrationAttributeSync=0
rows:calcom:public.InternalNotePreset=0
rows:calcom:public.ManagedOrganization=0
rows:calcom:public.Membership=0
rows:calcom:public.MonthlyProration=0
rows:calcom:public.NotificationsSubscriptions=0
rows:calcom:public.OAuthClient=0
rows:calcom:public.OrganizationBilling=0
rows:calcom:public.OrganizationOnboarding=0
rows:calcom:public.OrganizationSettings=0
rows:calcom:public.OutOfOfficeEntry=0
rows:calcom:public.OutOfOfficeReason=5
rows:calcom:public.Payment=0
rows:calcom:public.PendingRoutingTrace=0
rows:calcom:public.PlatformAuthorizationToken=0
rows:calcom:public.PlatformBilling=0
rows:calcom:public.PlatformOAuthClient=0
rows:calcom:public.Profile=0
rows:calcom:public.RateLimit=0
rows:calcom:public.RefreshToken=0
rows:calcom:public.ReminderMail=0
rows:calcom:public.ResetPasswordRequest=0
rows:calcom:public.Role=3
rows:calcom:public.RolePermission=89
rows:calcom:public.RoutingFormResponseDenormalized=0
rows:calcom:public.RoutingFormResponseField=0
rows:calcom:public.RoutingTrace=0
rows:calcom:public.Schedule=0
rows:calcom:public.SeatChangeLog=0
rows:calcom:public.SecondaryEmail=0
rows:calcom:public.SelectedCalendar=0
rows:calcom:public.SelectedSlots=0
rows:calcom:public.Session=0
rows:calcom:public.Task=0
rows:calcom:public.Team=0
rows:calcom:public.TeamBilling=0
rows:calcom:public.TeamFeatures=0
rows:calcom:public.TempOrgRedirect=0
rows:calcom:public.Tracking=0
rows:calcom:public.TravelSchedule=0
rows:calcom:public.UserFeatures=0
rows:calcom:public.UserFilterSegmentPreference=0
rows:calcom:public.UserHolidaySettings=0
rows:calcom:public.UserPassword=1
rows:calcom:public.VerificationToken=0
rows:calcom:public.VerifiedEmail=0
rows:calcom:public.VerifiedNumber=0
rows:calcom:public.VideoCallGuest=0
rows:calcom:public.Watchlist=0
rows:calcom:public.WatchlistAudit=0
rows:calcom:public.WatchlistEventAudit=0
rows:calcom:public.Webhook=0
rows:calcom:public.WebhookScheduledTriggers=0
rows:calcom:public.Workflow=0
rows:calcom:public.WorkflowOptOutContact=0
rows:calcom:public.WorkflowReminder=0
rows:calcom:public.WorkflowStep=0
rows:calcom:public.WorkflowStepTranslation=0
rows:calcom:public.WorkflowsOnEventTypes=0
rows:calcom:public.WorkflowsOnRoutingForms=0
rows:calcom:public.WorkflowsOnTeams=0
rows:calcom:public.WorkspacePlatform=0
rows:calcom:public.WrongAssignmentReport=0
rows:calcom:public._PlatformOAuthClientToUser=0
rows:calcom:public._prisma_migrations=588
rows:calcom:public._user_eventtype=0
rows:calcom:public.avatars=0
rows:calcom:public.users=1
@@ -0,0 +1,126 @@
db:calcom owner=calcom enc=UTF8 coll=en_US.utf8
db:postgres owner=calcom enc=UTF8 coll=en_US.utf8
ext:calcom:plpgsql
role:calcom super=true login=true pw=true
rows:calcom:public.AIPhoneCallConfiguration=0
rows:calcom:public.AccessCode=0
rows:calcom:public.AccessToken=0
rows:calcom:public.Account=0
rows:calcom:public.Agent=0
rows:calcom:public.ApiKey=0
rows:calcom:public.App=104
rows:calcom:public.App_RoutingForms_Form=0
rows:calcom:public.App_RoutingForms_FormResponse=0
rows:calcom:public.App_RoutingForms_IncompleteBookingActions=0
rows:calcom:public.App_RoutingForms_QueuedFormResponse=0
rows:calcom:public.AssignmentReason=0
rows:calcom:public.Attendee=0
rows:calcom:public.Attribute=0
rows:calcom:public.AttributeOption=0
rows:calcom:public.AttributeSyncFieldMapping=0
rows:calcom:public.AttributeSyncRule=0
rows:calcom:public.AttributeToUser=0
rows:calcom:public.AuditActor=1
rows:calcom:public.Availability=0
rows:calcom:public.Booking=0
rows:calcom:public.BookingAudit=0
rows:calcom:public.BookingDenormalized=0
rows:calcom:public.BookingInternalNote=0
rows:calcom:public.BookingReference=0
rows:calcom:public.BookingReport=0
rows:calcom:public.BookingSeat=0
rows:calcom:public.CalAiPhoneNumber=0
rows:calcom:public.CalVideoSettings=0
rows:calcom:public.CalendarCache=0
rows:calcom:public.CalendarCacheEvent=0
rows:calcom:public.Credential=0
rows:calcom:public.CreditBalance=0
rows:calcom:public.CreditExpenseLog=0
rows:calcom:public.CreditPurchaseLog=0
rows:calcom:public.DSyncData=0
rows:calcom:public.DSyncTeamGroupMapping=0
rows:calcom:public.DelegationCredential=0
rows:calcom:public.Deployment=0
rows:calcom:public.DestinationCalendar=0
rows:calcom:public.DomainWideDelegation=0
rows:calcom:public.EventType=0
rows:calcom:public.EventTypeCustomInput=0
rows:calcom:public.EventTypeTranslation=0
rows:calcom:public.Feature=36
rows:calcom:public.Feedback=0
rows:calcom:public.FilterSegment=0
rows:calcom:public.HashedLink=0
rows:calcom:public.HolidayCache=0
rows:calcom:public.Host=0
rows:calcom:public.HostGroup=0
rows:calcom:public.HostLocation=0
rows:calcom:public.Impersonations=0
rows:calcom:public.InstantMeetingToken=0
rows:calcom:public.IntegrationAttributeSync=0
rows:calcom:public.InternalNotePreset=0
rows:calcom:public.ManagedOrganization=0
rows:calcom:public.Membership=0
rows:calcom:public.MonthlyProration=0
rows:calcom:public.NotificationsSubscriptions=0
rows:calcom:public.OAuthClient=0
rows:calcom:public.OrganizationBilling=0
rows:calcom:public.OrganizationOnboarding=0
rows:calcom:public.OrganizationSettings=0
rows:calcom:public.OutOfOfficeEntry=0
rows:calcom:public.OutOfOfficeReason=5
rows:calcom:public.Payment=0
rows:calcom:public.PendingRoutingTrace=0
rows:calcom:public.PlatformAuthorizationToken=0
rows:calcom:public.PlatformBilling=0
rows:calcom:public.PlatformOAuthClient=0
rows:calcom:public.Profile=0
rows:calcom:public.RateLimit=0
rows:calcom:public.RefreshToken=0
rows:calcom:public.ReminderMail=0
rows:calcom:public.ResetPasswordRequest=0
rows:calcom:public.Role=3
rows:calcom:public.RolePermission=89
rows:calcom:public.RoutingFormResponseDenormalized=0
rows:calcom:public.RoutingFormResponseField=0
rows:calcom:public.RoutingTrace=0
rows:calcom:public.Schedule=0
rows:calcom:public.SeatChangeLog=0
rows:calcom:public.SecondaryEmail=0
rows:calcom:public.SelectedCalendar=0
rows:calcom:public.SelectedSlots=0
rows:calcom:public.Session=0
rows:calcom:public.Task=0
rows:calcom:public.Team=0
rows:calcom:public.TeamBilling=0
rows:calcom:public.TeamFeatures=0
rows:calcom:public.TempOrgRedirect=0
rows:calcom:public.Tracking=0
rows:calcom:public.TravelSchedule=0
rows:calcom:public.UserFeatures=0
rows:calcom:public.UserFilterSegmentPreference=0
rows:calcom:public.UserHolidaySettings=0
rows:calcom:public.UserPassword=1
rows:calcom:public.VerificationToken=0
rows:calcom:public.VerifiedEmail=0
rows:calcom:public.VerifiedNumber=0
rows:calcom:public.VideoCallGuest=0
rows:calcom:public.Watchlist=0
rows:calcom:public.WatchlistAudit=0
rows:calcom:public.WatchlistEventAudit=0
rows:calcom:public.Webhook=0
rows:calcom:public.WebhookScheduledTriggers=0
rows:calcom:public.Workflow=0
rows:calcom:public.WorkflowOptOutContact=0
rows:calcom:public.WorkflowReminder=0
rows:calcom:public.WorkflowStep=0
rows:calcom:public.WorkflowStepTranslation=0
rows:calcom:public.WorkflowsOnEventTypes=0
rows:calcom:public.WorkflowsOnRoutingForms=0
rows:calcom:public.WorkflowsOnTeams=0
rows:calcom:public.WorkspacePlatform=0
rows:calcom:public.WrongAssignmentReport=0
rows:calcom:public._PlatformOAuthClientToUser=0
rows:calcom:public._prisma_migrations=588
rows:calcom:public._user_eventtype=0
rows:calcom:public.avatars=0
rows:calcom:public.users=1
@@ -0,0 +1,8 @@
{
"calcom-postgres": {
"image": "postgres:18-alpine",
"probe": "datadir major version",
"answer": "18",
"probe_rc": 0
}
}
@@ -0,0 +1,6 @@
calcom | + npx prisma migrate deploy --schema /calcom/packages/prisma/schema.prisma
calcom | warn The configuration property `package.json#prisma` is deprecated and will be removed in Prisma 7. Please migrate to a Prisma config file (e.g., `prisma.config.ts`).
calcom | Prisma schema loaded from packages/prisma/schema.prisma
calcom | Datasource "db": PostgreSQL database "calcom", schema "public" at "calcom-postgres:5432"
calcom | 588 migrations found in prisma/migrations
calcom | │ https://pris.ly/d/major-version-upgrade │
@@ -0,0 +1,61 @@
[09:27:00] scratch drive folders cleared before FROM (R-656): none existed
[09:27:00] MV-calcom: deploying calcom at FROM {'calcom': 'calcom/cal.com:v6.2.0', 'calcom-postgres': 'postgres:16-alpine'}
[09:29:51] FROM settled=True in 36.2s :: {"calcom": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "calcom-postgres": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
[09:29:51] fixture: the BOX walk's own (Calcom), through upgrade_boxport
[09:29:56] calcom: /api/auth/setup http=200 :: {"message":"First admin user created successfully."}
[09:29:56] calcom: seeded user drill3ee780
[09:29:57] calcom: readback — the seeded user's page http=200
[09:29:57] C1 (seed reads back BEFORE): True
[09:29:57] MV-calcom: PostgreSQL major move {'service': 'calcom-postgres', 'engine': 'postgres', 'from': 16, 'to': 18} — converting on the bench before the swap
[09:30:32] CONVERTED calcom-postgres PostgreSQL 16 -> 18 in 35.0s (dump 0.77s / 533193 B, load 4.1s, check equal over 122 tables)
[09:30:32] MV-calcom: swapping to TO {'calcom': 'calcom/cal.com:v6.2.0', 'calcom-postgres': 'postgres:18-alpine'}
[09:30:35] TO up -d rc=0
[09:31:06] TO settled=True in 31.0s :: {"calcom": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "calcom-postgres": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
[09:31:06] engine state calcom-postgres: 18
[09:31:07] migration lines observed: 6
[09:31:08] calcom: readback — the seeded user's page http=200
[09:31:08] RESULT (seed reads back AFTER): True
[09:31:08] memory watch: 600s, 4 callers on 1 path(s) at 172.18.0.2:3000
[09:31:23] + 15s calcom=1535M/1536M peak=1536M kills=0 rs=0 calcom-postgres=159M/256M peak=172M kills=0 rs=0 reqs=256
[09:31:38] + 30s calcom=1472M/1536M peak=1536M kills=0 rs=0 calcom-postgres=159M/256M peak=172M kills=0 rs=0 reqs=518
[09:31:53] + 45s calcom=1431M/1536M peak=1536M kills=0 rs=0 calcom-postgres=159M/256M peak=172M kills=0 rs=0 reqs=782
[09:32:08] + 61s calcom=1470M/1536M peak=1536M kills=0 rs=0 calcom-postgres=160M/256M peak=172M kills=0 rs=0 reqs=1047
[09:32:24] + 76s calcom=1438M/1536M peak=1536M kills=0 rs=0 calcom-postgres=160M/256M peak=172M kills=0 rs=0 reqs=1309
[09:32:39] + 91s calcom=1405M/1536M peak=1536M kills=0 rs=0 calcom-postgres=160M/256M peak=172M kills=0 rs=0 reqs=1574
[09:32:54] + 106s calcom=1438M/1536M peak=1536M kills=0 rs=0 calcom-postgres=160M/256M peak=172M kills=0 rs=0 reqs=1840
[09:33:09] + 121s calcom=1403M/1536M peak=1536M kills=0 rs=0 calcom-postgres=160M/256M peak=172M kills=0 rs=0 reqs=2104
[09:33:24] + 136s calcom=1444M/1536M peak=1536M kills=0 rs=0 calcom-postgres=160M/256M peak=172M kills=0 rs=0 reqs=2368
[09:33:39] + 152s calcom=1406M/1536M peak=1536M kills=0 rs=0 calcom-postgres=160M/256M peak=172M kills=0 rs=0 reqs=2632
[09:33:55] + 167s calcom=1454M/1536M peak=1536M kills=0 rs=0 calcom-postgres=160M/256M peak=172M kills=0 rs=0 reqs=2899
[09:34:10] + 182s calcom=1422M/1536M peak=1536M kills=0 rs=0 calcom-postgres=160M/256M peak=172M kills=0 rs=0 reqs=3165
[09:34:25] + 197s calcom=1459M/1536M peak=1536M kills=0 rs=0 calcom-postgres=160M/256M peak=172M kills=0 rs=0 reqs=3429
[09:34:40] + 212s calcom=1427M/1536M peak=1536M kills=0 rs=0 calcom-postgres=160M/256M peak=172M kills=0 rs=0 reqs=3695
[09:34:55] + 227s calcom=1474M/1536M peak=1536M kills=0 rs=0 calcom-postgres=160M/256M peak=172M kills=0 rs=0 reqs=3960
[09:35:10] + 242s calcom=1439M/1536M peak=1536M kills=0 rs=0 calcom-postgres=160M/256M peak=172M kills=0 rs=0 reqs=4225
[09:35:25] + 258s calcom=1409M/1536M peak=1536M kills=0 rs=0 calcom-postgres=160M/256M peak=172M kills=0 rs=0 reqs=4490
[09:35:41] + 273s calcom=1450M/1536M peak=1536M kills=0 rs=0 calcom-postgres=160M/256M peak=172M kills=0 rs=0 reqs=4756
[09:35:56] + 288s calcom=1418M/1536M peak=1536M kills=0 rs=0 calcom-postgres=162M/256M peak=172M kills=0 rs=0 reqs=5022
[09:36:11] + 303s calcom=1454M/1536M peak=1536M kills=0 rs=0 calcom-postgres=163M/256M peak=172M kills=0 rs=0 reqs=5288
[09:36:26] + 318s calcom=1423M/1536M peak=1536M kills=0 rs=0 calcom-postgres=164M/256M peak=172M kills=0 rs=0 reqs=5552
[09:36:41] + 333s calcom=1465M/1536M peak=1536M kills=0 rs=0 calcom-postgres=165M/256M peak=172M kills=0 rs=0 reqs=5820
[09:36:56] + 348s calcom=1429M/1536M peak=1536M kills=0 rs=0 calcom-postgres=165M/256M peak=172M kills=0 rs=0 reqs=6084
[09:37:11] + 364s calcom=1396M/1536M peak=1536M kills=0 rs=0 calcom-postgres=167M/256M peak=172M kills=0 rs=0 reqs=6349
[09:37:27] + 379s calcom=1442M/1536M peak=1536M kills=0 rs=0 calcom-postgres=168M/256M peak=172M kills=0 rs=0 reqs=6615
[09:37:42] + 394s calcom=1404M/1536M peak=1536M kills=0 rs=0 calcom-postgres=169M/256M peak=172M kills=0 rs=0 reqs=6880
[09:37:57] + 409s calcom=1446M/1536M peak=1536M kills=0 rs=0 calcom-postgres=169M/256M peak=172M kills=0 rs=0 reqs=7146
[09:38:12] + 424s calcom=1413M/1536M peak=1536M kills=0 rs=0 calcom-postgres=169M/256M peak=172M kills=0 rs=0 reqs=7411
[09:38:27] + 439s calcom=1451M/1536M peak=1536M kills=0 rs=0 calcom-postgres=169M/256M peak=172M kills=0 rs=0 reqs=7674
[09:38:42] + 454s calcom=1419M/1536M peak=1536M kills=0 rs=0 calcom-postgres=169M/256M peak=172M kills=0 rs=0 reqs=7940
[09:38:57] + 469s calcom=1463M/1536M peak=1536M kills=0 rs=0 calcom-postgres=169M/256M peak=173M kills=0 rs=0 reqs=8205
[09:39:12] + 485s calcom=1436M/1536M peak=1536M kills=0 rs=0 calcom-postgres=169M/256M peak=173M kills=0 rs=0 reqs=8471
[09:39:28] + 500s calcom=1474M/1536M peak=1536M kills=0 rs=0 calcom-postgres=169M/256M peak=173M kills=0 rs=0 reqs=8734
[09:39:43] + 515s calcom=1439M/1536M peak=1536M kills=0 rs=0 calcom-postgres=169M/256M peak=173M kills=0 rs=0 reqs=9000
[09:39:58] + 530s calcom=1405M/1536M peak=1536M kills=0 rs=0 calcom-postgres=169M/256M peak=173M kills=0 rs=0 reqs=9266
[09:40:13] + 545s calcom=1443M/1536M peak=1536M kills=0 rs=0 calcom-postgres=169M/256M peak=173M kills=0 rs=0 reqs=9532
[09:40:28] + 560s calcom=1413M/1536M peak=1536M kills=0 rs=0 calcom-postgres=169M/256M peak=173M kills=0 rs=0 reqs=9796
[09:40:43] + 576s calcom=1454M/1536M peak=1536M kills=0 rs=0 calcom-postgres=169M/256M peak=173M kills=0 rs=0 reqs=10061
[09:40:59] + 591s calcom=1418M/1536M peak=1536M kills=0 rs=0 calcom-postgres=169M/256M peak=173M kills=0 rs=0 reqs=10326
[09:41:14] + 606s calcom=1462M/1536M peak=1536M kills=0 rs=0 calcom-postgres=169M/256M peak=173M kills=0 rs=0 reqs=10592
[09:41:14] memory watch: killed=False tight=[] requests=10592 codes={'307': 10592}
[09:41:14] MV-calcom: ABORT — putting the FROM images back
[09:44:27] ABORT: the app did NOT come back (rc=1, 180.1s)
@@ -0,0 +1,14 @@
{
"calcom": {
"status": "running",
"health": "healthy",
"restarts": 0,
"exit": 0
},
"calcom-postgres": {
"status": "running",
"health": "healthy",
"restarts": 0,
"exit": 0
}
}
@@ -0,0 +1,92 @@
{
"harness_version": 4,
"edge": "MV-calcom",
"app": "calcom",
"note": "night 2026-09-23 within-a-major move: calcom-postgres=postgres:18-alpine",
"from": {
"calcom": "calcom/cal.com:v6.2.0",
"calcom-postgres": "postgres:16-alpine"
},
"to": {
"calcom": "calcom/cal.com:v6.2.0",
"calcom-postgres": "postgres:18-alpine"
},
"verdict": "proven",
"seed_read_before": true,
"seed_read_after": true,
"healthy_after": true,
"migration_observed": "\u001b[2Kcalcom | + npx prisma migrate deploy --schema /calcom/packages/prisma/schema.prisma",
"abort": "refuses",
"abort_detail": "/lib/postgresql/data\".\n\u001b[2Kcalcom-postgres | The files belonging to this database system will be owned by user \"postgres\".\n\u001b[2Kcalcom-postgres | This user must also own the server process.\n\u001b[2Kcalcom-postgres | \n\u001b[2Kcalcom-postgres | The database cluster will be initialized with locale \"en_US.utf8\".\n\u001b[2Kcalcom-postgres | The default database encoding has accordingly been set to \"UTF8\".\n\u001b[2Kcalcom-postgres | The default text search configuration will be set to \"english\".\n\u001b[2Kcalcom-postgres | \n\u001b[2Kcalcom-postgres | Data page checksums are disabled.\n\u001b[2Kcalcom-postgres | \n\u001b[2Kcalcom-postgres | initdb: error: directory \"/var/lib/postgresql/data\" exists but is not empty\n\u001b[2Kcalcom-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory \"/var/lib/postgresql/data\" or run initdb with an argument other than \"/var/lib/postgresql/data\".",
"engine_state_after": {
"calcom-postgres": {
"image": "postgres:18-alpine",
"probe": "datadir major version",
"answer": "18",
"probe_rc": 0
}
},
"memory": {
"soak_s": 606.1,
"requested_s": 600,
"requests": 10592,
"codes": {
"307": 10592
},
"first_kill": null,
"containers": {
"calcom": {
"limit": 1610612736,
"peak": 1610620928,
"peak_pct": 1.0,
"anon_peak_sampled": 990781440,
"anon_peak_pct": 0.615,
"oom_kills": 0,
"restarts": 0,
"oomkilled_flag": false,
"measured": true
},
"calcom-postgres": {
"limit": 268435456,
"peak": 182304768,
"peak_pct": 0.679,
"anon_peak_sampled": 5763072,
"anon_peak_pct": 0.021,
"oom_kills": 0,
"restarts": 0,
"oomkilled_flag": false,
"measured": true
}
},
"unmeasured": [],
"load": "reached"
},
"marks": [],
"duration_s": 31.0,
"measured_at": "2026-09-28T09:44:27Z",
"evidence": "evidence/MV-calcom",
"scratch_cleared": [],
"engine_conversion": {
"service": "calcom-postgres",
"engine": "postgres",
"from": 16,
"to": 18,
"dump_s": 0.77,
"dump_bytes": 533193,
"new_engine_ready_s": 2.2,
"load_s": 4.1,
"dropped": [
"calcom"
],
"skipped_create_role": [
"CREATE ROLE calcom;"
],
"result": "converted",
"check_equal": true,
"pg_version": "18",
"tables": 122,
"convert_s": 35.0
},
"files_changed": [],
"total_s": 1047.5
}
@@ -0,0 +1,3 @@
11:26:54 START calcom ['calcom-postgres=postgres:18-alpine']
11:44:31 DONE calcom rc=0 verdict=proven read_before=True read_after=True abort=refuses marks=[] peaks={'calcom': 1.0, 'calcom-postgres': 0.679} detail='/lib/postgresql/data".\n\x1b[2Kcalcom-postgres | The files belonging to this database system will be owned by user "postgres".\n\x1b[2Kcalcom-postgres | This user mus' (1057s)
11:44:31 QUEUE q3 FINISHED
@@ -0,0 +1,3 @@
"version": "6.16.1",
"version": "6.16.1",
@@ -0,0 +1,15 @@
10:56:39 [X] stop -> 200 {'ok': True, 'message': 'Stack claper stop completed'}
10:57:11 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'claper', 'volumes_removed': ['claper_claper_postgres_data', 'claper_claper_uploads'], 'hdd_paths_removed': [], 'hdd_paths_pres
10:57:19 [X] after remove: deployed=False leftovers='/opt/docker/stacks/claper'
0
felhom-controller filebrowser paperless-postgres paperless-redis paperless-webserver privatebin traefik
git:
branch: main
repo_url: https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git
sync_interval: 15m
token: <redacted>
username: ""
hub:
0
drill main reset to 174a762 (= live main)
@@ -0,0 +1,28 @@
429
42: memory: 2048M
74: memory: 256M
10:59:12 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
10:59:57 [1] deployed, controller state=running, pinned={'calcom': 'calcom/cal.com:v6.2.0', 'calcom-postgres': 'postgres:16-alpine'}
deployed True
/opt/docker/stacks/calcom/docker-compose.yml:41: limits:
/opt/docker/stacks/calcom/docker-compose.yml-42- memory: 2048M
/opt/docker/stacks/calcom/docker-compose.yml-43- healthcheck:
/opt/docker/stacks/calcom/docker-compose.yml-44- # GET (-O /dev/null), not --spider (HEAD): the Next.js API route rejects HEAD, so --spider flaps unhealthy.
--
/opt/docker/stacks/calcom/docker-compose.yml:73: limits:
/opt/docker/stacks/calcom/docker-compose.yml-74- memory: 256M
/opt/docker/stacks/calcom/docker-compose.yml-75- healthcheck:
/opt/docker/stacks/calcom/docker-compose.yml-76- test: ["CMD-SHELL", "pg_isready -U calcom -d calcom"]
--
/opt/docker/stacks/calcom/applied-compose.yml:41: limits:
/opt/docker/stacks/calcom/applied-compose.yml-42- memory: 2048M
/opt/docker/stacks/calcom/applied-compose.yml-43- healthcheck:
/opt/docker/stacks/calcom/applied-compose.yml-44- # GET (-O /dev/null), not --spider (HEAD): the Next.js API route rejects HEAD, so --spider flaps unhealthy.
--
/opt/docker/stacks/calcom/applied-compose.yml:73: limits:
/opt/docker/stacks/calcom/applied-compose.yml-74- memory: 256M
/opt/docker/stacks/calcom/applied-compose.yml-75- healthcheck:
/opt/docker/stacks/calcom/applied-compose.yml-76- test: ["CMD-SHELL", "pg_isready -U calcom -d calcom"]
memlimit=2147483648
@@ -0,0 +1,15 @@
cgroup=/sys/fs/cgroup/system.slice/docker-940f5291bb522182ba47930f8e4e77e56e0f995dd49bfe6dd9e2e55dc9a22e7f.scope max=2147483648
09:00:24 anon=714MiB peak=714MiB oom_kill 0 restarts=0 health=healthy
09:01:25 anon=780MiB peak=780MiB oom_kill 0 restarts=0 health=healthy
09:02:25 anon=780MiB peak=780MiB oom_kill 0 restarts=0 health=healthy
09:03:26 anon=779MiB peak=780MiB oom_kill 0 restarts=0 health=healthy
09:04:26 anon=779MiB peak=780MiB oom_kill 0 restarts=0 health=healthy
09:05:27 anon=779MiB peak=780MiB oom_kill 0 restarts=0 health=healthy
09:06:27 anon=772MiB peak=780MiB oom_kill 0 restarts=0 health=healthy
09:07:28 anon=772MiB peak=780MiB oom_kill 0 restarts=0 health=healthy
09:08:28 anon=773MiB peak=780MiB oom_kill 0 restarts=0 health=healthy
09:09:29 anon=773MiB peak=780MiB oom_kill 0 restarts=0 health=healthy
09:10:29 anon=772MiB peak=780MiB oom_kill 0 restarts=0 health=healthy
09:11:30 anon=773MiB peak=780MiB oom_kill 0 restarts=0 health=healthy
FINAL peak_anon=780MiB of 2048MiB; oom_kill 0
@@ -0,0 +1,5 @@
wait True
setup 200 {"message":"First admin user created successfully."}
setup again (must refuse) 400 {"message":"No setup needed."}
GET /drillb090cf 200 343607
GET /nobodycedd0a 404 335325
@@ -0,0 +1,4 @@
11:01:01 calcom: readback — the seeded user's page http=200
verify seeded: True
11:01:01 calcom: readback — the seeded user's page http=404
verify never-seeded (must be False): False
@@ -0,0 +1,3 @@
09:14:52 container up; cgroup max=
FINAL peak_anon=817MiB at 09:15:30 of 1536MiB; oom_kill 0 restarts=0 health=healthy memory.peak=1075MiB
@@ -0,0 +1,11 @@
sync 200
42: memory: 1536M
74: memory: 256M
11:14:51 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
11:15:36 [1] deployed, controller state=running, pinned={'calcom': 'calcom/cal.com:v6.2.0', 'calcom-postgres': 'postgres:16-alpine'}
deployed True
11:15:37 calcom: /api/auth/setup http=200 :: {"message":"First admin user created successfully."}
11:15:38 calcom: seeded user drill7eec3a
11:15:38 calcom: readback — the seeded user's page http=200
C1 True
@@ -0,0 +1,27 @@
{
"app": "calcom",
"venue": "box 9202 (drill catalog, controller 0.277.0), the product's guarded Update",
"from": {
"calcom": "calcom/cal.com:v6.2.0",
"calcom-postgres": "postgres:16-alpine"
},
"to": {
"calcom": "calcom/cal.com:v6.2.0",
"calcom-postgres": "postgres:18-alpine"
},
"verdict": "proven",
"seed_read_before": true,
"seed_read_after": true,
"healthy_after": true,
"engine_conversion": {
"service": "calcom-postgres",
"engine": "postgres",
"from": 16,
"to": 18,
"result": "converted",
"controller_line": "update calcom: CONVERTED 16 \u2192 18 in 12.677s \u2014 the check is equal (2 database(s), 122 table(s), 828 row(s)), PG_VERSION 18"
},
"duration_s": 67.7,
"measured_at": "2026-09-28T09:47:09Z",
"evidence": "felhom.eu/documentation/audits/pg-calcom-claper-2026-09-28/box/calcom/move.txt"
}
@@ -0,0 +1,17 @@
before: state running hold Az alkalmazást ismét leállítottuk, mert újra és újra összeomlott (vagy elfogyott a memóriája). A Felhom ügyfélszolgálatát értesítettük. Az Indítás gombbal újra megpróbálhatod. deployed_at 2026-09-28T09:14:51Z
28- "validated_at": "2026-09-22T13:31:54Z",
606- "at": "2026-09-28T08:28:59Z",
607- "reason": "unhealthy_stop",
608- "unhealthy_kind": "crash_loop",
609- "trip": 2
642- "chaoscrash": "2026-09-24T12:16:24Z",
start ('200', {'ok': True, 'data': {'state': 'running'}, 'message': 'Stack calcom start requested — state now: running'})
after: state running hold None
2026/09/28 09:46:12 router.go:622: [INFO] [api] calcom: the unhealthy stop is LIFTED by Start — one more try (decision 28)
2026/09/28 09:46:13 manager.go:1216: [INFO] [stacks] Starting stack: calcom
2026/09/28 09:46:13 manager.go:1231: [INFO] [stacks] Stack calcom started successfully (took 0.6s)
2026/09/28 09:46:16 manager.go:1562: [INFO] [stacks] Stack calcom post-start status:
2026/09/28 09:46:16 manager.go:1565: [INFO] [stacks] calcom calcom/cal.com:v6.2.0 running Up 31 minutes (healthy)
2026/09/28 09:46:16 manager.go:1565: [INFO] [stacks] calcom-postgres postgres:16-alpine running Up 31 minutes (healthy)
@@ -0,0 +1,47 @@
before: pinned={'calcom': 'calcom/cal.com:v6.2.0', 'calcom-postgres': 'postgres:16-alpine'} PG_VERSION=16
drill: 96b0cf2 DRILL calcom: calcom-postgres postgres:16-alpine -> postgres:18-alpine with the engine_conversion mark (box proof)
calcom: readback — the seeded user's page http=200
RESULT final_phase=None PG_VERSION=16 seed_after=True verdict=failed
before: pinned={'calcom': 'calcom/cal.com:v6.2.0', 'calcom-postgres': 'postgres:16-alpine'} PG_VERSION=16
drill: SKIPPED — the drill commit was made by an earlier attempt
phase +0.0s backing-up | err=None
phase +19.5s safety-dump | err=None
phase +20.5s pulling | err=None
phase +21.5s copying | err=None
phase +33.9s converting | err=None
phase +46.2s starting | err=None
phase +47.2s verifying | err=None
phase +67.7s done | err=None
calcom: readback — the seeded user's page http=200
2026/09/28 09:47:10 update.go:536: [INFO] [stacks] update calcom: accepted — guarded update started
2026/09/28 09:47:10 update.go:1365: [INFO] [stacks] update calcom: phase checking
2026/09/28 09:47:10 update.go:786: [INFO] [stacks] update calcom: ladder — the last step (1 of 1) — the catalog's current definition
2026/09/28 09:47:10 update.go:800: [INFO] [stacks] update calcom: this step CONVERTS calcom-postgres PostgreSQL 16 → 18 (the ladder entry's mark); database volume calcom_calcom_postgres_data
2026/09/28 09:47:10 update.go:816: [INFO] [stacks] update calcom: no usable copy on any tier — younger than 24h0m0s and not older than this install's deploy (2026-09-28T09:14:51Z) (found: none) — backing up first
2026/09/28 09:47:10 update.go:1365: [INFO] [stacks] update calcom: phase backing-up
2026/09/28 09:47:29 update.go:831: [INFO] [stacks] update calcom: precondition met after the backup — Tier 2 (second drive) copy from 2026-09-28T09:47:10Z
2026/09/28 09:47:29 update.go:1365: [INFO] [stacks] update calcom: phase safety-dump
2026/09/28 09:47:29 update.go:846: [INFO] [stacks] update calcom: safety dump done (1 file(s)) [/mnt/sys_drive/felhom-data/backups/primary/calcom/db-dumps/pre-restore-20260928T094729Z-calcom-postgres.sql]
2026/09/28 09:47:30 undo.go:287: [INFO] [stacks] update calcom: the undo copy will hold 1 named volume(s), 70.5 MiB
2026/09/28 09:47:30 pgconvert.go:340: [INFO] [stacks] update calcom: conversion space — database volume calcom_calcom_postgres_data is 71 MB; the dump needs up to 88 MB + the 2 GB floor; 27.7 GB free beside the stack dir
2026/09/28 09:47:30 update.go:1365: [INFO] [stacks] update calcom: phase pinning
2026/09/28 09:47:30 pin.go:373: [INFO] [stacks] update calcom: pin advanced to /opt/docker/felhom-controller/data/catalog-cache/templates/calcom/docker-compose.yml (calcom=calcom/cal.com:v6.2.0, calcom-postgres=postgres:18-alpine)
2026/09/28 09:47:30 update.go:1365: [INFO] [stacks] update calcom: phase pulling
2026/09/28 09:47:31 update.go:1365: [INFO] [stacks] update calcom: phase copying
2026/09/28 09:47:42 update.go:1365: [INFO] [stacks] update calcom: phase copying
2026/09/28 09:47:43 undo.go:437: [INFO] [stacks] update calcom: copied calcom_calcom_postgres_data → calcom_calcom_postgres_data.pre-update-20260928T094742Z in 721ms
2026/09/28 09:47:43 update.go:1365: [INFO] [stacks] update calcom: phase converting
2026/09/28 09:47:43 pgconvert.go:423: [INFO] [stacks] update calcom: CONVERTING calcom-postgres PostgreSQL 16 → 18 (volume calcom_calcom_postgres_data, kept copy calcom_calcom_postgres_data.pre-update-20260928T094742Z)
2026/09/28 09:47:46 pgconvert.go:468: [INFO] [stacks] update calcom: pg_dumpall from 16 done in 713ms — 520 kB, completion line present; before: 2 database(s), 122 table(s), 828 row(s)
2026/09/28 09:47:47 update.go:1365: [INFO] [stacks] update calcom: phase converting
2026/09/28 09:47:48 pgconvert.go:484: [INFO] [stacks] update calcom: database volume calcom_calcom_postgres_data emptied (its copy calcom_calcom_postgres_data.pre-update-20260928T094742Z holds the old datadir, marker checked twice)
2026/09/28 09:47:55 pgconvert.go:513: [INFO] [stacks] update calcom: loaded into 18 in 4.156s (dropped the entrypoint's empty database(s) [calcom]; skipped CREATE ROLE for [calcom])
2026/09/28 09:47:55 pgconvert.go:529: [INFO] [stacks] update calcom: CONVERTED 16 → 18 in 12.677s — the check is equal (2 database(s), 122 table(s), 828 row(s)), PG_VERSION 18
2026/09/28 09:47:55 update.go:1365: [INFO] [stacks] update calcom: phase starting
2026/09/28 09:47:56 update.go:1365: [INFO] [stacks] update calcom: phase verifying
2026/09/28 09:48:16 update.go:997: [INFO] [stacks] update calcom: healthy after 20s (the app's health check passed)
2026/09/28 09:48:17 update.go:1015: [INFO] [stacks] update calcom: KEEPING the pre-conversion datadir copy calcom_calcom_postgres_data.pre-update-20260928T094742Z (PostgreSQL 16) until a backup of the converted app is proven
2026/09/28 09:48:17 update.go:1033: [INFO] [stacks] update calcom: DONE in 1m7s
RESULT final_phase=done PG_VERSION=18 seed_after=True verdict=proven
@@ -0,0 +1,2 @@
11:45:26 calcom: readback — the seeded user's page http=200
C1 before (box): True
@@ -22,6 +22,9 @@ else:
st = w.stack(app); before = (st.get("app_config") or {}).get("pinned_images")
pg = lambda: w.guest(f"docker exec {svc} sh -c 'cat $PGDATA/PG_VERSION' 2>&1").strip()
say(f"before: pinned={before} PG_VERSION={pg()}")
if os.environ.get("SKIPDRILL"):
say("drill: SKIPPED — the drill commit was made by an earlier attempt")
else:
r = subprocess.run([sys.executable, os.path.join(os.path.dirname(__file__), "drillmove.py"), app, svc, frm, to, fmj, tmj], capture_output=True, text=True)
say("drill:", r.stdout.strip().splitlines()[0] if r.stdout else r.stderr[-300:])
w.sync_rescan(app, to)
@@ -376,6 +376,52 @@ class Django:
return found is True
# =============================================================================================
class Calcom:
"""Cal.com's OWN first-run API: `POST /api/auth/setup` creates the first (admin) user while the
instance has none — the route its own setup wizard calls (upstream v6.2.0
`apps/web/app/api/auth/setup/route.ts`). The readback is the user's PUBLIC booking page, `GET
/<username>`, rendered by the app from its own database. Measured on 9202 2026-09-28 (v6.2.0,
PostgreSQL 16, memory raised to 2048M in the DRILL catalog only — R-703): setup → 200, a second
setup → 400 "No setup needed.", the page → 200, an unknown name → 404.
THE FIXTURE PROVES ITSELF ON EVERY CALL: verify() also asks for a name that cannot exist and
requires 404 — a readback that has broken into "always 200" fails instead of passing everything.
"""
sub = "cal"
def seed(self, w, sub, say):
if not w.wait_app(sub, "/api/auth/providers", want=("200",), tries=120):
return None
user = "drill" + secrets.token_hex(3)
pw = "Drill-" + secrets.token_hex(6) + "Aa9x" # >= 15 chars, a digit, both cases (its own rule)
body = json.dumps({"username": user, "full_name": "Drill Gate", "email_address": f"{user}@gate.invalid",
"password": pw})
rc, code, out = w.app_curl(sub, "/api/auth/setup", "-H", "Content-Type: application/json",
data=body, method="POST")
say(f" calcom: /api/auth/setup http={code} :: {out[:120]}")
if code not in ("200", "201"):
return None
rc, code, _ = w.app_curl(sub, "/" + user, timeout=60)
if code != "200":
say(f" calcom: the seeded user's page answered {code}, not 200")
return None
say(f" calcom: seeded user {user}")
return {"user": user, "pw": pw}
def verify(self, w, sub, t, say):
if not w.wait_app(sub, "/api/auth/providers", want=("200",), tries=120):
say(" calcom: the app never served /api/auth/providers")
return False
rc, code, _ = w.app_curl(sub, "/nobody" + secrets.token_hex(6), timeout=60)
if code != "404":
say(f" calcom: READBACK UNUSABLE — a name that cannot exist answered {code}, not 404")
return False
rc, code, _ = w.app_curl(sub, "/" + t["user"], timeout=60)
say(f" calcom: readback — the seeded user's page http={code}")
return code == "200"
# =============================================================================================
class Claper:
"""Claper's OWN release CLI inside its own container: `bin/claper rpc` runs Elixir code in the
@@ -1145,4 +1191,5 @@ FIXTURES = {
"vaultwarden": Vaultwarden(),
"wishlist": Wishlist(),
"claper": Claper(),
"calcom": Calcom(),
}