Record concurrent store release test

This commit is contained in:
Mario Fetka
2026-07-23 12:36:01 +02:00
parent 6ab1658857
commit 2497b9a98a
3 changed files with 43 additions and 1 deletions
@@ -77,6 +77,7 @@ if ! $as_root "$admin_tool" user list | grep -Fx "$user" >/dev/null; then
$as_root "$admin_tool" user add "$user" >/dev/null
fi
$as_root /usr/bin/systemctl daemon-reload
$as_root /usr/bin/systemctl start "$service"
wait_services
+1 -1
View File
@@ -111,7 +111,7 @@ inputs and outputs is absent from the ZIP.
| STQ-03 | Queue free-space calculation is correct on 32/64-bit and reserves space | [PASS](test-evidence/0.7-r1.md#stq-03) | | |
| STQ-04 | Full-disk and unreadable-spool failures defer safely without mail loss | [PASS](test-evidence/0.7-r1.md#stq-04) | | |
| STQ-05 | Retry, expiry, bounce, listing, hold/release, and deletion | [PASS](test-evidence/0.7-r1.md#stq-05) | | |
| STQ-06 | Concurrent delivery/read/move/delete/restart preserves integrity | | | |
| STQ-06 | Concurrent delivery/read/move/delete/restart preserves integrity | [PASS](test-evidence/0.7-r1.md#stq-06) | | |
| STQ-07 | Backup/export and restore reproduce mail, metadata, contacts, calendars | | | |
| STQ-08 | Invalid commands, oversized lines, and unauthorised access fail safely | | | |
| STQ-09 | Per-user mail quota excludes contacts/calendars and atomically blocks concurrent growth | | | |
+41
View File
@@ -1579,3 +1579,44 @@ All temporary Queue entries were removed. The intentionally retained DSN is
local release evidence; no external mail, SMTP relay, collector source, or
LMTP endpoint was used. Bongo finished active/running as manager PID 1253396
with systemd result `success`.
## STQ-06
Result: **PASS**
Commit `6ab16588` added an installed Store concurrency diagnostic and its
systemd coordinator. The diagnostic creates deterministic messages in Queue
999 and records the SHA-256 digest of every Queue-owned message. Separate
threads then deliver through `QADDM`, read message bodies, move selected
objects, and delete selected objects. The coordinator restarts the real Bongo
service after the first eight deliveries while the Store threads remain
active; the remaining 16 held Queue entries must survive and deliver after
reconnection.
The complete rebuilt suite passed 86 of 86 tests in 11.41 seconds. The
storetool test group also covers the fixture marker and the deterministic
move/delete policy. The commit was pushed to `master`, installed as
`mail-mta/bongo-9999::bongo` with GCC 15.3.0, and exercised twice on
2026-07-23. The clean evidence run was:
```sh
./contrib/testing/queue-store-concurrency-check.sh
```
```text
STQ-06 PASS delivered=24 reads=22 moves=10 deletes=5 transient-reconnects=445 restart=1
```
The five messages numbered as deletion targets were absent. Each of the
other 19 messages existed exactly once, in INBOX or `/mail/STQ06` according
to the test policy, and matched its pre-delivery Queue digest. Ten messages
were moved successfully. The reader observed 22 distinct messages, including
short-lived objects before concurrent deletion, without a content mismatch.
The reported transient reconnect attempts occurred only while the deliberate
service restart made the Store unavailable; every worker recovered.
The diagnostic removed all 24 test messages and every held Queue entry.
Post-test listings of Queue, `stq06` INBOX, and `/mail/STQ06` were empty.
No external mail, SMTP relay, collector source, or LMTP endpoint was used.
Bongo finished active/running as manager PID 1264348 with systemd result
`success`.