Compare commits

...

2 Commits

Author SHA1 Message Date
jiuker 83b2ad418b
fix: restrict SinglePool by the minimum free drive threshold (#21115)
VulnCheck / Analysis (push) Waiting to run Details
2025-07-18 23:25:44 -07:00
Loganaden Velvindron 7a64bb9766
Add support for X25519MLKEM768 (#21435)
Signed-off-by: Bhuvanesh Fokeer <fokeerbhuvanesh@cyberstorm.mu>
Signed-off-by: Nakul Baboolall <nkb@cyberstorm.mu>
Signed-off-by: Sehun Bissessur <sehun.bissessur@cyberstorm.mu>
2025-07-18 23:23:15 -07:00
2 changed files with 15 additions and 4 deletions

View File

@ -635,15 +635,18 @@ func (z *erasureServerPools) getPoolIdxNoLock(ctx context.Context, bucket, objec
// if none are found falls back to most available space pool, this function is // if none are found falls back to most available space pool, this function is
// designed to be only used by PutObject, CopyObject (newObject creation) and NewMultipartUpload. // designed to be only used by PutObject, CopyObject (newObject creation) and NewMultipartUpload.
func (z *erasureServerPools) getPoolIdx(ctx context.Context, bucket, object string, size int64) (idx int, err error) { func (z *erasureServerPools) getPoolIdx(ctx context.Context, bucket, object string, size int64) (idx int, err error) {
idx, err = z.getPoolIdxExistingWithOpts(ctx, bucket, object, ObjectOptions{ pinfo, _, err := z.getPoolInfoExistingWithOpts(ctx, bucket, object, ObjectOptions{
SkipDecommissioned: true, SkipDecommissioned: true,
SkipRebalancing: true, SkipRebalancing: true,
}) })
if err != nil && !isErrObjectNotFound(err) { if err != nil && !isErrObjectNotFound(err) {
return idx, err return -1, err
} }
if isErrObjectNotFound(err) { idx = pinfo.Index
if isErrObjectNotFound(err) || pinfo.Err == nil {
// will generate a temp object
idx = z.getAvailablePoolIdx(ctx, bucket, object, size) idx = z.getAvailablePoolIdx(ctx, bucket, object, size)
if idx < 0 { if idx < 0 {
return -1, toObjectErr(errDiskFull) return -1, toObjectErr(errDiskFull)
@ -1089,6 +1092,10 @@ func (z *erasureServerPools) PutObject(ctx context.Context, bucket string, objec
object = encodeDirObject(object) object = encodeDirObject(object)
if z.SinglePool() { if z.SinglePool() {
_, err := z.getPoolIdx(ctx, bucket, object, data.Size())
if err != nil {
return ObjectInfo{}, err
}
return z.serverPools[0].PutObject(ctx, bucket, object, data, opts) return z.serverPools[0].PutObject(ctx, bucket, object, data, opts)
} }
@ -1816,6 +1823,10 @@ func (z *erasureServerPools) PutObjectPart(ctx context.Context, bucket, object,
} }
if z.SinglePool() { if z.SinglePool() {
_, err := z.getPoolIdx(ctx, bucket, object, data.Size())
if err != nil {
return PartInfo{}, err
}
return z.serverPools[0].PutObjectPart(ctx, bucket, object, uploadID, partID, data, opts) return z.serverPools[0].PutObjectPart(ctx, bucket, object, uploadID, partID, data, opts)
} }

View File

@ -74,5 +74,5 @@ func TLSCiphersBackwardCompatible() []uint16 {
// TLSCurveIDs returns a list of supported elliptic curve IDs // TLSCurveIDs returns a list of supported elliptic curve IDs
// in preference order. // in preference order.
func TLSCurveIDs() []tls.CurveID { func TLSCurveIDs() []tls.CurveID {
return []tls.CurveID{tls.CurveP256, tls.X25519, tls.CurveP384, tls.CurveP521} return []tls.CurveID{tls.X25519MLKEM768, tls.CurveP256, tls.X25519, tls.CurveP384, tls.CurveP521}
} }