Cancel outbound operations only in the osd_client_t destructor
This is required to prevent disconnected peers from sometimes receiving messages suited for other peers - stop_client was freeing the operations even though they were still references in the io_uring requests in progress. This was leading to OSDs sometimes receiving garbage and "broken sequencing" errors in logs as the memory was usually already reallocated for other operations
This commit is contained in:
@@ -173,6 +173,7 @@ struct osd_op_t
|
||||
osd_op_buf_list_t iov;
|
||||
|
||||
~osd_op_t();
|
||||
void cancel();
|
||||
|
||||
bool is_recovery_related();
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user