Vitaliy Filippov
3bf53754c2
Fix several I/O bugs
2021-02-01 19:43:10 +03:00
Vitaliy Filippov
824ea507d0
Do not try to push more segments than IOV_MAX at once as it leads to EMSGSIZE
2020-10-30 01:25:43 +03:00
Vitaliy Filippov
23ea409081
Fix "can't get SQE, will fall out of sync with EPOLLET" when overflowing the ring
...
OSDs shouldn't crash or hang with long iodepths anymore
2020-10-30 01:06:36 +03:00
Vitaliy Filippov
2ccb75974b
Fix a rare crash caused by a stopped client still being in write_ready_clients
2020-10-30 01:04:58 +03:00
Vitaliy Filippov
720985e4c7
Fix NULL rmw buffer after the latest changes and add a testcase for it
2020-10-24 18:29:19 +03:00
Vitaliy Filippov
d1645551d4
Implement write batching
...
Also fix possible race condition which could in theory lead to "command out of sync"
and a buffer overflow that could happen on incorrect server response.
2020-10-20 03:29:17 +03:00
Vitaliy Filippov
776fe954a5
Fix crashes on multiple OSD reconnects
...
Identify clients by pointers instead of peer_fd as peer may be dropped
and reconnected between callbacks
Yeah maybe I need some Rust, but ... maybe in the future :)
2020-10-17 10:53:04 +00:00
Vitaliy Filippov
0471b09b9c
Add license notices to all source code files
2020-09-17 23:07:06 +03:00
Vitaliy Filippov
3932c9b2e2
Add WRITE_STABLE to the secondary OSD for the upcoming replication support
2020-09-01 16:18:58 +03:00
Vitaliy Filippov
2e8c69fc5b
Rename OSD_OP_SECONDARY_* to OSD_OP_SEC_*
2020-08-31 23:57:50 +03:00
Vitaliy Filippov
592bcd3699
Fix QEMU driver bugs (QEMU and qemu-img now work! hooray!)
2020-06-26 18:25:43 +03:00
Vitaliy Filippov
62343c8022
Allow to turn synchronous recvmsg/sendmsg on with a config option
2020-06-23 01:15:07 +03:00
Vitaliy Filippov
badf68c039
Support iovecs for read operations
2020-06-19 19:47:05 +03:00
Vitaliy Filippov
2f6cf605a1
Rename cluster_client to osd_messenger
2020-06-04 12:57:54 +03:00