The GitHub Actions job "CI" on 
rocketmq-dashboard.git/fix/btl-credential-lost-update has failed.
Run started by GitHub user btlqql (triggered by btlqql).

Head commit for run:
ee57590a5496aecca35393dc971a821d7ad99cf7 / btlqql <[email protected]>
fix(credentials): write only the fields an update request supplies

CloudCredentialService.update loaded the whole credential, applied the
supplied fields to that snapshot and wrote the snapshot back with
repository.replace(). Two overlapping requests therefore wrote each other's
stale values: a name or remark edit read before a secret rotation wrote the
old secret back after the rotation had been persisted, and a rotation wrote
back the metadata it had read earlier. Both requests reported success, so
the lost rotation was only visible later as an invalid-credential failure.

The update now persists a field-scoped patch carrying only the fields the
request supplied (plus id and gmt_modified), so null fields are skipped by
the update and a concurrent edit of another field survives.

Regression: 
CloudCredentialServiceTest#nameOnlyUpdateShouldNotRestoreAConcurrentlyRotatedSecretTest
and #secretOnlyRotationShouldNotRewriteMetadataFromTheStaleSnapshotTest fail
on the unmodified tree (the write carries the stale secret / stale name) and
pass with the fix. The existing not-found regression is adjusted because the
repository is no longer handed the loaded snapshot.

Report URL: 
https://github.com/apache/rocketmq-dashboard/actions/runs/36959719652

With regards,
GitHub Actions via GitBox

Reply via email to