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

Head commit for run:
0d54284b7ebd144240addde34e3aae8e25af7f3f / btlqql <[email protected]>
fix(alibaba): evict an Aliyun client published during credential rotation

AliyunClientFactory.client() published a new client with a bare
computeIfAbsent while invalidateCredential() evicted the matching entries
with removeIf, so the two operations were not mutually exclusive. A lookup
that was already building its client when a credential was rotated removed
nothing and the client built from the old secret was published into the
cache right after the invalidation returned; later lookups kept reusing it.

Creation and invalidation now share the factory's monitor, the same way
TencentClientFactory already coordinates them, so a client that is still
being created is always published before the eviction runs and is evicted
by it.

Regression: 
AliyunClientFactoryTest#invalidateCredentialShouldEvictClientCreatedDuringRotationTest
fails on the unmodified tree (the next lookup returns the pre-rotation
client) and passes with the fix.

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

With regards,
GitHub Actions via GitBox

Reply via email to