Skip to content

Commit e5b1c95

Browse files
committed
retry even 409 errors
1 parent afe2a94 commit e5b1c95

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

frontend/javascripts/viewer/model/sagas/saving/save_queue_draining.ts

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -113,17 +113,19 @@ export function* sendSaveRequestToServer(): Saga<number> {
113113
*/
114114

115115
const fullSaveQueue = yield* select((state) => state.save.queue);
116-
const saveQueue = sliceAppropriateBatchCount(fullSaveQueue);
117-
let compactedSaveQueue = compactSaveQueue(saveQueue);
118-
const version = yield* select((state) => state.annotation.version);
116+
const storeSaveQueue = sliceAppropriateBatchCount(fullSaveQueue);
117+
const compactedSaveQueueWithoutVersions = compactSaveQueue(storeSaveQueue);
119118
const annotationId = yield* select((state) => state.annotation.annotationId);
120119
const tracingStoreUrl = yield* select((state) => state.annotation.tracingStore.url);
121-
let versionIncrement;
122-
[compactedSaveQueue, versionIncrement] = addVersionNumbers(compactedSaveQueue, version);
123120
let retryCount = 0;
124121

125122
// This while-loop only exists for the purpose of a retry-mechanism
126123
while (true) {
124+
const version = yield* select((state) => state.annotation.version);
125+
const [compactedSaveQueue, versionIncrement] = addVersionNumbers(
126+
compactedSaveQueueWithoutVersions,
127+
version,
128+
);
127129
let exceptionDuringMarkBucketsAsNotDirty = false;
128130

129131
try {
@@ -153,7 +155,7 @@ export function* sendSaveRequestToServer(): Saga<number> {
153155

154156
yield* put(setVersionNumberAction(version + versionIncrement));
155157
yield* put(setLastSaveTimestampAction());
156-
yield* put(shiftSaveQueueAction(saveQueue.length));
158+
yield* put(shiftSaveQueueAction(storeSaveQueue.length));
157159

158160
try {
159161
yield* call(markBucketsAsNotDirty, compactedSaveQueue);
@@ -165,7 +167,7 @@ export function* sendSaveRequestToServer(): Saga<number> {
165167
}
166168

167169
yield* call(toggleErrorHighlighting, false);
168-
return saveQueue.length;
170+
return storeSaveQueue.length;
169171
} catch (error) {
170172
if (exceptionDuringMarkBucketsAsNotDirty) {
171173
throw error;
@@ -190,8 +192,9 @@ export function* sendSaveRequestToServer(): Saga<number> {
190192
retryCount,
191193
});
192194

195+
// todop: detect actual 409 errors again
193196
// @ts-ignore
194-
if (error.status === 409) {
197+
if (false && error.status === 409) {
195198
// HTTP Code 409 'conflict' for dirty state
196199
// @ts-ignore
197200
window.onbeforeunload = null;

0 commit comments

Comments
 (0)