43 lines
2.8 KiB
Markdown
43 lines
2.8 KiB
Markdown
# Daily commit waiting for monthly worker
|
||
|
||
## User question
|
||
|
||
The operator reported that a Daily Report upload appeared complete but the monthly report did not update.
|
||
|
||
## Read-only checks
|
||
|
||
- Port 8766 returned `ready`; the active process list showed the ARR Web service but no independent
|
||
`monthly_reports.worker` / `arr-monthly-worker` process.
|
||
- The newest `opera_daily` processing run is run 39. It finished at 2026-08-03 10:49:01 +08 with `accepted` status and
|
||
no failure code.
|
||
- Finance daily version 14 is `active` for business date 2026-08-01 and contains 111 retained rows. Its retained
|
||
`ARRIVAL` scope is 2026-08-01, so the automatic worker would derive an August 2026 monthly request.
|
||
- Outbox event 20 (`processing-run:39:accepted`, `arr.daily_version_committed`) is still `pending`, has zero publish
|
||
attempts and no error code, and has been available since 2026-08-03 10:49:01 +08.
|
||
- `reporting.monthly_runs` contains only July versions. July V04 is active with `as_of_date=2026-07-27`; no August
|
||
version is present.
|
||
- A second read-only check found a backlog of five daily-commit events, IDs 16–20, all `pending` with zero attempts
|
||
and no error. Events 16–19 derive the July request through 2026-07-27; event 20 derives the August request through
|
||
2026-08-01. Recovery should let the worker consume them in order and retain its idempotent publication behavior.
|
||
- The controlled database file, Python runtime, Node binary and artifact-tool module pass preflight checks. The focused
|
||
monthly suite passes 27 tests with two optional skips. No worker was started and no monthly publication or database
|
||
write was performed.
|
||
- The monthly page polls every four seconds only while its tab is visible. That can delay page display, but it cannot
|
||
explain the missing database row because event 20 has not been consumed.
|
||
|
||
## Recovery
|
||
|
||
- The user authorized recovery. A detached `arr2-monthly-worker` Screen session was started with the controlled
|
||
`booking_test` configuration and the verified Node/artifact-tool paths.
|
||
- The worker consumed outbox events 15–20 in order. Each is now `published` with one attempt and no error code.
|
||
- July V05 is `active` at `as_of_date=2026-07-27` with 987 rows; older July V04 is `superseded`. August V01 is
|
||
`active` at `as_of_date=2026-08-01` with 111 rows.
|
||
- The August registered workbook/result pair exists under the controlled project output, the XLSX passes ZIP
|
||
integrity, the result JSON reports `success`, and Web `/healthz` remains `ready`.
|
||
|
||
## Conclusion
|
||
|
||
The Daily Report was correct; the missing monthly update was caused by the absent worker process. The report is now
|
||
updated without re-uploading the source. The remaining operational gap is reboot-persistent supervision of the
|
||
detached worker, which is intentionally separate from this recovery and from the later logging work.
|