Commit Graph
13 Commits
Author SHA1 Message Date
steve.weiandChris Lu ca06589d64 volume.fix.replication: add a well-placed replica before deleting a misplaced one (#10364)
* volume.fix.replication: add a well-placed replica before deleting a misplaced one

A misplaced volume with no surplus replica (replica count == copy count) used to have its misplaced replica deleted first, and the replacement copied only on the next pass. That drops the volume below its intended durability, and permanently so when no destination can accept the replacement copy. Now such volumes get a well-placed replica first, and the misplaced one is trimmed as surplus on a later pass, following the same fulfill-before-delete principle as volume.tier.move (#8950).

The classification switch is extracted into classifyReplicaSet so the add-wins-over-trim priority is unit-testable.

Also stop the fix loop when an -apply pass makes no progress (nothing copied, nothing deleted); previously an unplaceable under-replicated volume made the loop spin forever, re-collecting the topology every 15 seconds. And propagate ewg.Wait() errors instead of swallowing them.

* volume.fix.replication: drop unused allLocations from deleteOneVolume

---------

Co-authored-by: Chris Lu <chris.lu@gmail.com>
2026-07-21 12:43:38 -07:00
steve.wei 1313600b9e fix(topology): restore active count after vacuum recovery (#9770) 2026-06-01 15:23:22 -07:00
steve.wei 1a7ab2ea82 fix(upload): keep Content-MD5 on 204 unchanged writes (#9198)
Return Content-MD5 in the volume unchanged-write response and read it in the uploader 204 path so multipart chunk ETag metadata is preserved.
2026-04-23 10:59:59 -07:00
steve.weiandChris Lu f07ba2c5aa fix: support standard HTTP headers in S3 multipart upload (#7884)
Co-authored-by: Chris Lu <chris.lu@gmail.com>
2025-12-26 13:15:17 -08:00
steve.weiandChris Lu e439e33888 fix(filer): check error from FindEntry (#7878)
* fix(filer): check error from FindEntry

* remove

---------

Co-authored-by: Chris Lu <chris.lu@gmail.com>
2025-12-25 11:28:31 -08:00
steve.wei 5c25df20f2 feat(volume.fix): show all replica locations for misplaced volumes (#7560) 2025-11-27 00:04:45 -08:00
steve.wei 88fa64a01a change comment for expect header (#6289)
* remove case of expect

* Set the default value of the Expect header for compatibility.
2024-11-26 08:35:41 -08:00
steve.wei cfbe45c765 feat: add in-flight metric for s3/file/volume-server (#6120) 2024-10-14 12:10:05 -07:00
steve.wei ae8c6d95a6 fix: Prevent potential metadata change events from being lost. (#6066) 2024-09-26 08:31:57 -07:00
steve.wei 2150289442 fix: Ensure that the clientAddress is unique (#5655) 2024-06-07 09:13:03 -07:00
steve.wei d8da4bbaa7 Set the capacity of clientChan to 10000 (#5647) 2024-06-05 05:41:46 -07:00
steve.wei 0bdf121e51 rename VolumeServerVolumeGauge (#5504) 2024-04-17 04:49:50 -07:00
steve.wei 67ead9b18f fix(volume.fix.replication): adjust volume count, not free volume count (#5479) 2024-04-08 07:30:04 -07:00