Check quota backoff and reject stale assignment acknowledgments
This commit is contained in:
1 parent
bfc8e26431
commit
c67eb03f6e
2 files changed
+7
-1
No files matched your search
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in new issue
Block a user