vitastor/src
Vitaliy Filippov 9e287a7778 Handle extending writes correctly in NFS proxy
Previously, multiple parallel writes extending file size through NFS were
racing with each other and triggering deletions of part of the written data

I.e. if you mounted vitastor-nfs and just copied a file into it in MC then
you could end up with only a part of the file actually written
2023-07-26 02:09:43 +03:00
..
mock Implement online config update 2023-03-26 19:21:50 +03:00
nfs Simplified NFS proxy based on own NFS/XDR implementation 2022-05-07 01:01:20 +03:00
CMakeLists.txt Release 0.9.5 2023-07-21 00:04:41 +03:00
addr_util.cpp Use the larger sockaddr_storage structure 2022-02-12 11:22:56 +03:00
addr_util.h Use the larger sockaddr_storage structure 2022-02-12 11:22:56 +03:00
allocator.cpp Use (uint64_t)1 instead of 1l / 1ul 2022-04-16 01:48:14 +03:00
allocator.h Add "external" bitmap support to osd_rmw 2021-04-10 17:44:12 +03:00
blockstore.cpp Implement online config update 2023-03-26 19:21:50 +03:00
blockstore.h Fix compile errors with gcc 10 2023-05-20 23:20:09 +03:00
blockstore_disk.cpp Fix vitastor-disk prepare bugs 2022-08-19 02:22:54 +03:00
blockstore_disk.h vitastor-disk prepare: implement first form of the command 2022-08-09 01:29:29 +03:00
blockstore_flush.cpp Fix journal dirty_start position tracking and some debug prints 2023-07-09 01:17:55 +03:00
blockstore_flush.h Fix journal dirty_start position tracking and some debug prints 2023-07-09 01:17:55 +03:00
blockstore_impl.cpp Add min/max stripe and limit to OP_LIST 2023-05-20 23:19:39 +03:00
blockstore_impl.h Wait for free space again, but count on big_write flushes instead of just flusher activity 2023-05-10 01:51:02 +03:00
blockstore_init.cpp Oops. Fix metadata read after fixes :-) 2022-12-17 17:31:57 +03:00
blockstore_init.h Final fix for the lack of zeroing out of old metadata entries 2022-12-17 14:50:31 +03:00
blockstore_journal.cpp Put get_trim_pos into the "critical section". Fixes rare journal corruption issue 2023-06-17 00:06:42 +03:00
blockstore_journal.h Prioritize EC (non-instantly-stable) operations under journal pressure 2023-01-03 00:05:45 +03:00
blockstore_open.cpp Also allow "0" and "no" as false for inmemory_metadata and inmemory_journal 2023-07-25 01:48:57 +00:00
blockstore_read.cpp Fix an idiotic bug leading to failed reads with -ERANGE with EC :D 2023-06-03 00:44:52 +03:00
blockstore_rollback.cpp Fix journal dirty_start position tracking and some debug prints 2023-07-09 01:17:55 +03:00
blockstore_stable.cpp Add another assert-type check (it does not fire, just as a safety measure for the future) 2023-06-17 00:07:22 +03:00
blockstore_sync.cpp Selectively sync nonsynced objects on STABILIZE/ROLLBACK (fix for github issue #51) 2023-04-08 02:44:02 +03:00
blockstore_write.cpp Fix journal dirty_start position tracking and some debug prints 2023-07-09 01:17:55 +03:00
cli.cpp Add scrub documentation 2023-05-20 23:19:39 +03:00
cli.h Implement vitastor-cli fix 2023-05-20 23:19:39 +03:00
cli_alloc_osd.cpp Rename base64.{cpp.h} to str_util 2022-07-31 01:12:37 +03:00
cli_common.cpp Implement safety check for OSD removal, translate all '-' to '_' in cli options 2022-12-26 02:48:48 +03:00
cli_create.cpp Implement safety check for OSD removal, translate all '-' to '_' in cli options 2022-12-26 02:48:48 +03:00
cli_describe.cpp Fix compile errors with gcc 10 2023-05-20 23:20:09 +03:00
cli_df.cpp Fix incorrect EC free space statistics in vitastor-cli df output 2023-01-26 02:04:29 +03:00
cli_fix.cpp Implement vitastor-cli fix 2023-05-20 23:19:39 +03:00
cli_fix.h Fix compile errors with gcc 10 2023-05-20 23:20:09 +03:00
cli_flatten.cpp Implement safety check for OSD removal, translate all '-' to '_' in cli options 2022-12-26 02:48:48 +03:00
cli_ls.cpp Support UTF-8 in vitastor-cli table output 2023-07-25 01:48:57 +00:00
cli_merge.cpp Fix CAS retries during snapshot merge 2023-06-30 02:30:23 +03:00
cli_modify.cpp Handle extending writes correctly in NFS proxy 2023-07-26 02:09:43 +03:00
cli_rm.cpp Do not print last subcommand result twice during "inverse" snapshot merge 2023-06-30 02:07:10 +03:00
cli_rm_data.cpp Warn about unfinished deletions in rm-data 2023-06-30 01:18:25 +03:00
cli_rm_osd.cpp Store next scrub timestamp instead of last scrub timestamp 2023-05-20 23:19:39 +03:00
cli_status.cpp Report scrub I/O in vitastor-cli status 2023-06-17 21:11:21 +03:00
cluster_client.cpp Fix CAS retries during snapshot merge 2023-06-30 02:30:23 +03:00
cluster_client.h Do not hang on inactive OSDs during delete, report and skip them instead 2023-06-30 00:15:16 +03:00
cluster_client_list.cpp Do not hang on inactive OSDs during delete, report and skip them instead 2023-06-30 00:15:16 +03:00
crc32c.c Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
crc32c.h Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
disk_simple_offsets.cpp Rename base64.{cpp.h} to str_util 2022-07-31 01:12:37 +03:00
disk_tool.cpp Fix vitastor-disk purge (now it works) 2022-12-27 02:28:20 +03:00
disk_tool.h Fix vitastor-disk purge (now it works) 2022-12-27 02:28:20 +03:00
disk_tool_journal.cpp Fix typo (did not affect execution though) 2023-03-15 01:08:23 +03:00
disk_tool_meta.cpp Fix possible bad realloc in disk_tool_meta for non-standard metadata block sizes 2023-03-15 01:08:23 +03:00
disk_tool_prepare.cpp Also allow "0" and "no" as false for inmemory_metadata and inmemory_journal 2023-07-25 01:48:57 +00:00
disk_tool_resize.cpp Add documentation for the new "vitastor-disk" tool 2022-08-22 00:31:30 +03:00
disk_tool_udev.cpp Suppress warnings in vitastor-disk purge correctly 2022-12-27 11:09:19 +03:00
disk_tool_upgrade.cpp Fix vitastor-disk purge (now it works) 2022-12-27 02:28:20 +03:00
disk_tool_utils.cpp Implement vitastor-cli fix 2023-05-20 23:19:39 +03:00
epoll_manager.cpp Ignore ENOENT in epoll_ctl 2023-05-08 20:39:20 +03:00
epoll_manager.h Handle get_sqe failures, don't die with "will fall out of sync" in epoll_manager 2022-01-31 02:52:20 +03:00
etcd_state_client.cpp Support reloading state when etcd says "revisions were compacted" 2023-07-07 01:33:48 +03:00
etcd_state_client.h Store next scrub timestamp instead of last scrub timestamp 2023-05-20 23:19:39 +03:00
fio_cluster.cpp Fix void* arithmetic again 2022-07-15 01:38:30 +03:00
fio_engine.cpp Fix leaks detected by clang scan-build (only 1 of 4 may be important though) 2022-01-16 00:11:59 +03:00
fio_headers.h Fix compatibility with fio 3.28+ 2022-01-31 23:39:14 +03:00
fio_sec_osd.cpp Use the larger sockaddr_storage structure 2022-02-12 11:22:56 +03:00
http_client.cpp vitastor-disk prepare: implement first form of the command 2022-08-09 01:29:29 +03:00
http_client.h Move simple-offsets into vitastor-disk, too 2022-07-15 02:19:35 +03:00
malloc_or_die.h Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
messenger.cpp Close client FDs only when destroying the client, after handling all async reads/writes 2023-05-25 00:52:43 +03:00
messenger.h Measure scrub statistics 2023-06-17 20:56:26 +03:00
msgr_op.cpp Fix primary_read bitmap buffers being freed too early (use-after-free) 2023-06-30 12:47:45 +03:00
msgr_op.h Fix primary_read bitmap buffers being freed too early (use-after-free) 2023-06-30 12:47:45 +03:00
msgr_rdma.cpp Allow to send more than 1 operation at a time 2023-02-26 02:01:04 +03:00
msgr_rdma.h Allow to send more than 1 operation at a time 2023-02-26 02:01:04 +03:00
msgr_receive.cpp Fix primary_read bitmap buffers being freed too early (use-after-free) 2023-06-30 12:47:45 +03:00
msgr_send.cpp Fix primary_read bitmap buffers being freed too early (use-after-free) 2023-06-30 12:47:45 +03:00
msgr_stop.cpp Close client FDs only when destroying the client, after handling all async reads/writes 2023-05-25 00:52:43 +03:00
nbd_proxy.cpp Fix \n in nbd_proxy 2023-06-19 01:48:58 +03:00
nfs_conn.cpp Handle extending writes correctly in NFS proxy 2023-07-26 02:09:43 +03:00
nfs_portmap.cpp Rename base64.{cpp.h} to str_util 2022-07-31 01:12:37 +03:00
nfs_portmap.h Simplified NFS proxy based on own NFS/XDR implementation 2022-05-07 01:01:20 +03:00
nfs_proxy.cpp Rename base64.{cpp.h} to str_util 2022-07-31 01:12:37 +03:00
nfs_proxy.h Simplified NFS proxy based on own NFS/XDR implementation 2022-05-07 01:01:20 +03:00
object_id.h Selectively sync nonsynced objects on STABILIZE/ROLLBACK (fix for github issue #51) 2023-04-08 02:44:02 +03:00
osd.cpp Allow to disable scrub_find_best 2023-05-21 12:33:38 +03:00
osd.h Support reloading state when etcd says "revisions were compacted" 2023-07-07 01:33:48 +03:00
osd_cluster.cpp Support reloading state when etcd says "revisions were compacted" 2023-07-07 01:33:48 +03:00
osd_flush.cpp Slightly improve some debug prints 2023-05-29 01:04:16 +03:00
osd_id.h Add a new recovery_pg_switch setting to mix all PGs during recovery 2022-12-30 02:03:33 +03:00
osd_main.cpp Use json11 instead of blockstore_config_t 2021-04-30 00:52:46 +03:00
osd_ops.cpp Implement "describe object(s)" operation 2023-05-20 23:19:39 +03:00
osd_ops.h Fix primary_read bitmap buffers being freed too early (use-after-free) 2023-06-30 12:47:45 +03:00
osd_peering.cpp Fix auto_scrubs not starting because of < vs <= =)) 2023-06-17 17:32:21 +03:00
osd_peering_pg.cpp Slightly improve some debug prints 2023-05-29 01:04:16 +03:00
osd_peering_pg.h Implement "describe object(s)" operation 2023-05-20 23:19:39 +03:00
osd_peering_pg_test.cpp Move tests to "make test" 2023-02-21 01:30:42 +03:00
osd_primary.cpp Fix primary_read bitmap buffers being freed too early (use-after-free) 2023-06-30 12:47:45 +03:00
osd_primary.h Implement scrubbing "data path" - OSD_OP_SCRUB 2023-05-20 23:19:39 +03:00
osd_primary_chain.cpp Implement ambiguity detection during scrub 2023-05-20 23:19:39 +03:00
osd_primary_describe.cpp Implement "describe object(s)" operation 2023-05-20 23:19:39 +03:00
osd_primary_subops.cpp Measure scrub statistics 2023-06-17 20:56:26 +03:00
osd_primary_sync.cpp Fix "opcode=5 retval=-2" errors sometimes possible with EC 2023-04-08 02:44:02 +03:00
osd_primary_write.cpp Fix primary_read bitmap buffers being freed too early (use-after-free) 2023-06-30 12:47:45 +03:00
osd_rmw.cpp Fix brute-force error locator for EC n+k with k > 2 2023-05-21 00:57:14 +03:00
osd_rmw.h Allow scrub to fix corrupted object states 2023-05-20 23:19:39 +03:00
osd_rmw_test.cpp Fix brute-force error locator for EC n+k with k > 2 2023-05-21 00:57:14 +03:00
osd_scrub.cpp Measure scrub statistics 2023-06-17 20:56:26 +03:00
osd_secondary.cpp Add min/max stripe and limit to OP_LIST 2023-05-20 23:19:39 +03:00
osd_test.cpp Add missing close() in test stubs 2023-03-15 00:23:56 +03:00
pg_states.cpp Implement ambiguity detection during scrub 2023-05-20 23:19:39 +03:00
pg_states.h Implement ambiguity detection during scrub 2023-05-20 23:19:39 +03:00
qemu_driver.c Remove has_work, it was unnecessary 2023-07-21 00:04:37 +03:00
ringloop.cpp Reset eventfd on every ringloop::loop() 2023-07-21 00:04:41 +03:00
ringloop.h Integrate QEMU driver with io_uring 2023-07-04 00:28:23 +03:00
rw_blocking.cpp Fix read/write return type in rw_blocking 2023-03-15 01:08:14 +03:00
rw_blocking.h Support zero-copy send in fio_sec_osd to allow testing it 2021-12-27 02:12:44 +03:00
sha256.c Simplified NFS proxy based on own NFS/XDR implementation 2022-05-07 01:01:20 +03:00
sha256.h Simplified NFS proxy based on own NFS/XDR implementation 2022-05-07 01:01:20 +03:00
str_util.cpp Support UTF-8 in vitastor-cli table output 2023-07-25 01:48:57 +00:00
str_util.h Support UTF-8 in vitastor-cli table output 2023-07-25 01:48:57 +00:00
stub_bench.cpp Add missing close() in test stubs 2023-03-15 00:23:56 +03:00
stub_osd.cpp Use the larger sockaddr_storage structure 2022-02-12 11:22:56 +03:00
stub_uring_osd.cpp Extract bind socket code into a utility function 2022-02-06 00:39:52 +03:00
test_allocator.cpp Skip double allocs when reading journal 2021-04-03 00:53:28 +03:00
test_blockstore.cpp Implement journaled write throttling for the SSD+HDD case 2021-04-10 17:44:12 +03:00
test_cas.cpp Add a test for CAS write operation 2021-06-15 00:12:35 +03:00
test_cluster_client.cpp Fix cluster_client test after last reenterability fixes 2023-02-05 01:47:32 +03:00
test_crc32.cpp Add crc32c test utility 2022-11-20 00:50:13 +03:00
test_pattern.h Fix build under clang and some warnings 2022-01-16 00:02:54 +03:00
test_shit.cpp Use (uint64_t)1 instead of 1l / 1ul 2022-04-16 01:48:14 +03:00
timerfd_manager.cpp Fix build under clang and some warnings 2022-01-16 00:02:54 +03:00
timerfd_manager.h Add microsecond accuracy to set_timer 2021-04-10 17:44:12 +03:00
vitastor.pc.in Release 0.9.5 2023-07-21 00:04:41 +03:00
vitastor_c.cpp Do not use bool in C library 2023-07-18 23:37:53 +03:00
vitastor_c.h Do not use bool in C library 2023-07-18 23:37:53 +03:00
xor.h Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00