Closed tiagolobocastro closed 1 month ago
lgtm. As I understand we'll now make all 16 rebuild tasks use the same connection for reading/writing the rebuild segments.
Yes, each task has the immutable RebuildDescriptor
and reuse the handles from there.
Is the rebuild descriptor destroyed today as soon as rebuild finishes and the nexus channels are reconfigured to add rebuilt bdev's handle? We wouldn't want a lingering handle in rebuild descriptor while the rebuilt child bdev handle has been added to main nexus channels too.
Yes that's right, the rebuild backend "runs away" when the rebuild is started. When the rebuild completes the backend terminates, and on the drop
, the handles are also dropped.
Eventually we can also improve things here by moving the handle to the tasks themselves, allowing us to drop the handles if the rebuild is paused for example. Also that could be the first step to allowing the rebuild to run on multi-cores too.
For now simply moving the handle to descriptor is good enough for solving the connection issues.
bors merge
Build succeeded: