24 days ago
Hi Railway,
Pro workspace Paris Group Projects (aa03ea5a-afa3-47b2-8acd-72061ed4f540). Production Postgres on project exact-aco has been stalling on disk fsync since 16 Sep 2026. The factory UI freezes; statements over 20s are cancelled. It got worse today (17 Sep).
This matches the known metal/host I/O pattern (checkpoint sync= spikes that do not track buffers written). Please inspect the volume host and move this volume/Postgres to a healthy host. Do not restart or migrate during factory hours without coordinating with us.
Please do
- Inspect disk / storage host for this volume instance and migrate off the noisy/degraded host if needed.
- Confirm whether any platform snapshot/backup job besides the volume schedules below ran at the stall times.
- If a restart or volume move is required, schedule it before 10:00 UTC or after 21:30 UTC (factory window is 07:00–18:30 America/Sao_Paulo, UTC−3).
Resources
- Workspace: Paris Group Projects
aa03ea5a-afa3-47b2-8acd-72061ed4f540 - Project: exact-aco
922d18a8-b326-4934-a392-78c3b50532f3 - Environment: production
fc07133b-dcfa-439c-8ab7-27ff48b3d324 - Service: Postgres
066f1f00-c2f3-418c-a153-092e54cc5e07 - Service instance:
d4a1f806-543e-4b47-accc-1fa870f253e1 - Deployment (unchanged since 2026-08-30):
5cc892fd-d3c3-4a82-82f0-39ac170b53eaSUCCESS - Volume: postgres-volume
e6782dc9-f9ad-49a9-b087-e92b79bf3002 - Volume instance:
714f8451-c1fb-4b73-8320-a32dc826e04c - Region: us-east4-eqdc4a
- Image:
ghcr.io/railwayapp-templates/postgres-ssl:18(PostgreSQL 18.6) - HA: standalone (not a cluster)
- PITR: disabled (
enabled=false,bucketWired=false)
Why this looks like host disk, not our query load
Railway metrics last 48h on this Postgres service:
- CPU average 0.008 vCPU / limit 32 (≈0%)
- Memory current ~515 MB / limit 32768 MB (1.6%)
- Volume current ~8.9 GB / 50 GB (~18%)
- Connections reported by the customer at the time: 13 of 500, no lock waits
Checkpoint sync= does not track bytes written:
2026-09-17 12:04:48 UTC wrote 573 buffers (3.5%) sync=42.729 s longest=24.518 s total=109.393 s
2026-09-17 10:49:01 UTC wrote 242 buffers (1.5%) sync=39.116 s longest=22.854 s
2026-09-17 03:48:29 UTC wrote 67 buffers (0.4%) sync=20.191 s longest=19.837 s
2026-09-17 01:13:32 UTC wrote 184 buffers (1.1%) sync=22.514 s longest=21.703 s
2026-09-17 01:12:21 UTC wrote 2969 buffers (18.1%) sync= 1.200 s longest= 0.735 sAt 12:04 UTC the same second as the 42.7s sync, Postgres cancelled statements (ERROR: canceling statement due to statement timeout) including a select on shipment/load data — that is the factory freeze.
Baseline before 13 Sep: checkpoint sync ≤ 0.03 s.
Volume backup schedules (we already checked)
These are volume snapshots, not PITR:
- Daily daily at 08:42 UTC → 08:42 UTC (05:42 America/Sao_Paulo). Last: 2026-09-17T08:42:06Z
- Weekly weekly Saturday 04:21 UTC → Saturday 04:21 UTC
- Monthly monthly 1st 20:10 UTC → 1st of month 20:10 UTC
The stall times (BRT 00:48, 07:49, 08:49, 09:04, and 16 Sep 20:08 / 22:13) do not line up with the daily snapshot. Please confirm nothing else on the host was snapshotting at those times.
Related public threads with the same shape:
- https://station.railway.com/questions/database-performance-issue-more-slow-s-f9c7893e
- https://station.railway.com/questions/severe-postgres-disk-i-o-latency-38s-c-22bb5414
Contact for maintenance window: Gustavo Paris (gustavo.b.paris@gmail.com, workspace Admin) and Kleyton Luza (Exact Aço, customer on this project).
Thank you,
Gustavo Paris
Paris Group
19 Replies
24 days ago
This thread has been opened as a bounty so the community can help solve it.
Status changed to Open Railway • 24 days ago
23 days ago
Thanks @nnperic — we will take the operational point.
For Railway staff:
Please stage a volume/host migration whenever you are ready. We will trigger the redeploy ourselves in the factory-safe window: before 10:00 UTC or after 21:30 UTC (live factory is 07:00–18:30 America/Sao_Paulo). We will not ask you to wait on a call.
The number that carries the case: longest=24.518 s — a single fsync on one file. Baseline until 13 Sep was ≤ 0.03 s. Deployment unchanged since 2026-08-30 (5cc892fd). CPU 0.008/32, RAM ~515 MB / 32 GB, disk 8.9/50 GB.
- Volume instance:
714f8451-c1fb-4b73-8320-a32dc826e04c - Region:
us-east4-eqdc4a - Service: Postgres
066f1f00-c2f3-418c-a153-092e54cc5e07
We are not changing region or synchronous_commit during the shift. If you stage the migration today, we redeploy after 21:30 UTC.
Please confirm when the migration is staged on the service.
21 days ago
Railway staff — ping.
This Pro thread has been open ~61 hours with no engineer reply. Checkpoint longest=24.518 s is still the case. Factory is currently off (02:43 America/Sao_Paulo); we can redeploy until 10:00 UTC today.
Please stage the volume/host migration on Postgres 066f1f00-c2f3-418c-a153-092e54cc5e07 / volume instance 714f8451-c1fb-4b73-8320-a32dc826e04c (us-east4-eqdc4a). We will trigger the redeploy as soon as it is staged, inside that window.
If you cannot stage before 10:00 UTC, we will redeploy after 21:30 UTC.
21 days ago
Railway staff — 72h Pro SLA is about to lapse (opened 2026-09-17 16:24 UTC; ~40 minutes left) with no engineer reply.
Production Postgres on exact-aco is still on volume instance 714f8451-c1fb-4b73-8320-a32dc826e04c (us-east4-eqdc4a). Checkpoint longest=24.518 s. Factory is live until 21:30 UTC; we will redeploy after that if you stage the host/volume migration.
Please stage it. We will pull the trigger after 21:30 UTC today.
21 days ago
Update from us (Sunday factory-off window):
We tried to self-migrate the volume off the noisy host.
- Locked volume backup
pre-metal-exit-2026-09-20(a88a34ac-5700-4ee3-adcd-70b3763a94f5). - Set service region to
us-east4(GCP) — Railway remapped it tous-east4-eqdc4a(deprecatedRegions). - Set
us-east4-eqdc16a— deploy still landed onus-east4-eqdc4a. - Set
us-west2— same: volume instance714f8451-c1fb-4b73-8320-a32dc826e04cstaysus-east4-eqdc4aREADY. Environment configvolumes.*.regionis not writable.
The volume is pinned to this Metal host. Customer-side region change cannot move it. Please migrate this volume to a healthy storage host (or unstick the region pin). We can redeploy immediately once it is staged.
Postgres is back up after the redeploys (8c2cbded, SUCCESS). Factory-safe window continues until 10:00 UTC.
21 days ago
Fresh checkpoint evidence after tonight's redeploys (volume still pinned on us-east4-eqdc4a):
2026-09-20 21:45:22 UTC wrote 2 buffers sync=0.006 s longest=0.004 s
2026-09-20 21:55:37 UTC wrote 140 buffers sync=0.005 s longest=0.005 s
2026-09-20 22:05:34 UTC wrote 102 buffers sync=0.532 s longest=0.524 sNot the 42 s factory freeze yet, but longest jumped two orders of magnitude on a small write (102 buffers) ten minutes after a healthy 140-buffer checkpoint. Same host, same volume 714f8451-c1fb-4b73-8320-a32dc826e04c. Please migrate the volume off this storage host. We can redeploy immediately (factory is off until 10:00 UTC).
21 days ago
The stall is back on the same pinned volume (714f8451-c1fb-4b73-8320-a32dc826e04c, us-east4-eqdc4a), factory currently off:
2026-09-21 01:17:58 UTC wrote 1276 buffers (7.8%) write=138.9 s sync=12.587 s longest=8.482 sSame shape as 17 Sep (longest=24.5 s). Ten minutes earlier a 201-buffer checkpoint was longest=0.005 s. Please migrate this volume off the host. We can redeploy until 10:00 UTC.
21 days ago
Follow-up: ERROR: canceling statement due to statement timeout at 2026-09-21 01:37:23 UTC on a romaneio_prancha / romaneio join (factory shipment screen).
Checkpoints immediately around it were healthy (longest=0.008 s at 01:35). The 12.6 s fsync was 20 minutes earlier (01:17). Same volume 714f8451-…. Reads are stalling too, not only checkpoint sync.
21 days ago
Second factory query timeout: 2026-09-21 01:44:13 UTC on pedido list (id, numero, descricao, construtora_id, …). Previous was 01:37:23 on romaneio_prancha. Checkpoint at 01:40:33 was longest=0.015 s. Reads stalling with healthy fsync — same pinned volume.
21 days ago
Third factory timeout: 2026-09-21 01:47:50 UTC on romaneio_item ⋈ alocacao.
Tiny checkpoint two minutes earlier — this is the original smoking gun (bytes written do not explain fsync):
2026-09-21 01:45:44 UTC wrote 5 buffers (0.0%) sync=0.974 s longest=0.968 sThree statement timeouts in 10 minutes (01:37 romaneio, 01:44 pedido, 01:47 alocacao). Volume still 714f8451-c1fb-4b73-8320-a32dc826e04c / us-east4-eqdc4a.
20 days ago
Factory is live (America/Sao_Paulo 08:37). Same pinned volume, stall during shift:
2026-09-21 11:37:59 UTC wrote 1355 buffers (8.3%) sync=7.256 s longest=7.249 sWe will not restart or migrate during 10:00–21:30 UTC. Please stage the volume move; we redeploy after 21:30 UTC.
20 days ago
Second stall this shift, 14 min later:
2026-09-21 11:51:58 UTC wrote 411 buffers (2.5%) sync=3.163 s longest=2.940 sStill below the app 20 s timeout. We are not restarting during factory hours.
20 days ago
Factory freeze during shift (America/Sao_Paulo 08:55):
ERROR: canceling statement due to statement timeout on
UPDATE exact_aco.alocacao SET maquina_id=… (shop-floor machine allocation).
Three minutes after:
2026-09-21 11:51:58 UTC wrote 411 buffers sync=3.163 s longest=2.940 sWe are not restarting. Volume still 714f8451-c1fb-4b73-8320-a32dc826e04c / us-east4-eqdc4a.
20 days ago
Second factory timeout this hour: 2026-09-21 12:00:58 UTC on SELECT romaneio_item_id FROM apontamento WHERE romaneio_item_id IN (…) (shop-floor production notes). Previous was 11:55:06 UPDATE alocacao. Still not restarting during shift.
20 days ago
Third factory timeout this hour: 2026-09-21 12:02:31 UTC on SELECT … FROM chamado (support tickets). Checkpoint 50 s earlier was longest=0.005 s — reads stalling with healthy fsync. Not restarting.
20 days ago
Another stall during shift:
2026-09-21 14:11:08 UTC wrote 250 buffers (1.5%) sync=5.112 s longest=5.089 sFive minutes earlier the same size class was longest=0.026 s. Not restarting.
20 days ago
Still stalling during the shift. Cutover to a new volume is scheduled for 04:30–08:00 UTC (01:30–05:00 America/Sao_Paulo). We will not restart this instance before then.
2026-09-21 16:16:20 UTC wrote 358 buffers (2.2%) sync=2.274 s longest=2.230 s20 days ago
Factory is live. Worst stall since 17 Sep, same pinned volume:
2026-09-21 19:20:48 UTC wrote 2372 buffers (14.5%) sync=31.006 s longest=16.637 sSame second: canceling statement due to statement timeout while locking apontamento (SELECT … FOR UPDATE on open shop-floor notes).
We are not restarting. Customer cutover to a new volume is scheduled for 04:30 UTC (01:30 America/Sao_Paulo).
20 days ago
Factory is now off. Same smoking gun, small write, long fsync:
2026-09-22 00:26:47 UTC wrote 212 buffers (1.3%) sync=18.167 s longest=18.157 sCustomer cutover (new volume, fresh dump) starts at 04:30 UTC / 01:30 America/Sao_Paulo. This instance stays up until then.
18 hours ago
sekitar 61 jam tanpa ada balasan dari teknisi. Checkpoint longest=24.518 smasih berlaku. Pabrik saat ini sedang tidak beroperasi (02:43 America/Sao_Paulo); kita dapat melakukan penyebaran ulang hingga pukul 10:00 UTC hari ini .
Harap siapkan migrasi volume/host pada 066f1f00-c2f3-418c-a153-092e54cc5e07instance Postgres/volume 714f8451-c1fb-4b73-8320-a32dc826e04c( us-east4-eqdc4a). Kami akan memicu penyebaran ulang segera setelah disiapkan, dalam jangka waktu tersebut.
Jika Anda tidak dapat melakukan staging sebelum pukul 10:00 UTC, kami akan melakukan redeploy setelah pukul 21:30 UTC