Skip to content

Commit f4c2f5d

Browse files
committed
fix: prevent race conditions from updating cached workload state
Ensure that we mark a workload as scanned only if its revision has increased.
1 parent b651759 commit f4c2f5d

File tree

1 file changed

+5
-3
lines changed
  • src/supervisor/watchers/handlers

1 file changed

+5
-3
lines changed

src/supervisor/watchers/handlers/pod.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -155,9 +155,11 @@ export async function podWatchHandler(pod: V1Pod): Promise<void> {
155155
const workloadRevision = workloadMember.revision
156156
? workloadMember.revision.toString()
157157
: '';
158-
const scanned = await getWorkloadAlreadyScanned(workloadMember);
159-
if (scanned !== workloadRevision) {
160-
// either not exists or different
158+
const scannedRevision = await getWorkloadAlreadyScanned(workloadMember);
159+
const isRevisionDifferent =
160+
scannedRevision === undefined ||
161+
Number(workloadRevision) > Number(scannedRevision);
162+
if (isRevisionDifferent) {
161163
await setWorkloadAlreadyScanned(workloadMember, workloadRevision);
162164
await sendWorkloadMetadata(workloadMetadataPayload);
163165
}

0 commit comments

Comments
 (0)