-
v0.3.12 Stable
released this
2026-07-28 07:37:54 +00:00 | 14 commits to trunk since this releaseFixed
- Key the MinIO client cache on identity, not just endpoint.
Factorycached
clients by endpoint alone while resolving and then discarding the root
credentials, so two resources naming one endpoint through different root
Secrets — the reference's namespace defaults to the resource's own — shared
whichever client won the race, and the operator performed one namespace's IAM
writes as another namespace's identity. The same bug kept serving a client
built from a superseded password after a root Secret rotation, for the life of
the process. The key now covers endpoint, region, TLS, and a hash of the
resolved credentials.MinioRefwas newly exposed on the
MinioServiceAccount/MinioUserspecs in 0.3.11, which widened the reach. - Make
SetDefaultClientactually thread-safe.Clientis a two-word struct,
so the unsynchronized write was not atomic and a concurrent reader could
observe anAdminfrom the new credentials beside anS3from the old. The
comment claimed safety on the grounds that readers "don't hold locks while
using the client", which is the condition that creates the race rather than one
that avoids it. Reads and writes now share anRWMutex.
Included changes (v0.3.11 -> v0.3.12)
8105d6304e7afix(client): key the client cache on identity, not just endpoint
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Key the MinIO client cache on identity, not just endpoint.