Check quota backoff and reject stale assignment acknowledgments

This commit is contained in:
evgeny committed 2026-11-03 22:56:47 +01:00
1 parent bfc8e26431
commit c67eb03f6e
2 files changed
+7 -1

No files matched your search

+3 -1
View File
@@ -440,7 +440,9 @@ static int release_failures(struct media_test* t) {
}
control(t, S, t->ids[M], cmd, packet, cmd == DM_MEDIA_EXPIRED ? 32 : 33);
if (release_state(t, completed) || completed[0] || completed[1] || completed[2] != (cmd == DM_MEDIA_EXPIRED) ||
completed[3] != before[3] || completed[4] || completed[5] != (cmd == DM_MEDIA_EXPIRED ? 2 : 3) ||
completed[3] != before[3] || (cmd == DM_MEDIA_EXPIRED ? completed[4] != 0 :
completed[4] < (sqlite3_int64)ntp_time_get_seconds(t->nodes[S]) + 59) ||
completed[5] != (cmd == DM_MEDIA_EXPIRED ? 2 : 3) ||
value(t->nodes[S], "SELECT count(*) FROM dm_media_jobs WHERE receipt IS NOT NULL") ||
value(t->nodes[S], "SELECT count(*) FROM dm_media_jobs WHERE body IS NULL")) return -1;
control(t, S, t->ids[M], cmd, packet, cmd == DM_MEDIA_EXPIRED ? 32 : 33);
+4
View File
@@ -167,6 +167,10 @@ int main(void) {
check_receipt(inst.topo_sqlite_db);
reply(media, 77, 999, DM_MEDIA_DELETE_ACK, id, sizeof(id));
assert(scalar(inst.topo_sqlite_db, "SELECT released FROM dm_media_holders") == 0);
uint8_t stale[32] = {101}; memcpy(stale + 16, id, sizeof(id)); stale[15] = 1;
dm_mailbox_media_recv(media, 78, 101, DM_MEDIA_DELETE_ACK, stale, sizeof(stale));
assert(scalar(inst.topo_sqlite_db, "SELECT released FROM dm_media_holders") == 0);
assert(scalar(inst.topo_sqlite_db, "SELECT holder FROM dm_media_jobs") == 101);
exec_sql(inst.topo_sqlite_db, "INSERT INTO dm_media_holders SELECT id,102,x'66000000000000000000000000000000',0 FROM dm_media_jobs");
reply(media, 78, 101, DM_MEDIA_DELETE_ACK, id, sizeof(id));
assert(scalar(inst.topo_sqlite_db, "SELECT released FROM dm_media_holders WHERE node_id=101") == 1);