vitastor/src
Vitaliy Filippov f72f14e6a7
Test / buildenv (push) Successful in 9s Details
Test / build (push) Successful in 2m53s Details
Test / make_test (push) Successful in 32s Details
Test / test_add_osd (push) Successful in 1m27s Details
Test / test_cas (push) Successful in 8s Details
Test / test_change_pg_count (push) Successful in 40s Details
Test / test_change_pg_size (push) Successful in 8s Details
Test / test_create_nomaxid (push) Successful in 8s Details
Test / test_change_pg_count_ec (push) Successful in 39s Details
Test / test_etcd_fail (push) Successful in 53s Details
Test / test_interrupted_rebalance (push) Successful in 1m50s Details
Test / test_failure_domain (push) Successful in 43s Details
Test / test_interrupted_rebalance_ec (push) Successful in 2m3s Details
Test / test_interrupted_rebalance_imm (push) Successful in 2m9s Details
Test / test_snapshot (push) Successful in 24s Details
Test / test_minsize_1 (push) Successful in 14s Details
Test / test_snapshot_ec (push) Successful in 30s Details
Test / test_interrupted_rebalance_ec_imm (push) Successful in 1m24s Details
Test / test_rm (push) Successful in 16s Details
Test / test_snapshot_down (push) Successful in 23s Details
Test / test_snapshot_down_ec (push) Successful in 25s Details
Test / test_splitbrain (push) Successful in 21s Details
Test / test_snapshot_chain (push) Successful in 2m24s Details
Test / test_snapshot_chain_ec (push) Successful in 3m5s Details
Test / test_rebalance_verify_imm (push) Successful in 3m21s Details
Test / test_write (push) Successful in 36s Details
Test / test_rebalance_verify (push) Successful in 4m12s Details
Test / test_write_no_same (push) Successful in 15s Details
Test / test_write_xor (push) Successful in 52s Details
Test / test_rebalance_verify_ec_imm (push) Successful in 4m29s Details
Test / test_rebalance_verify_ec (push) Successful in 5m25s Details
Test / test_heal_pg_size_2 (push) Successful in 4m10s Details
Test / test_heal_ec (push) Successful in 4m46s Details
Test / test_heal_csum_32k_dmj (push) Successful in 5m31s Details
Test / test_heal_csum_32k_dj (push) Successful in 5m41s Details
Test / test_heal_csum_32k (push) Successful in 6m41s Details
Test / test_scrub (push) Successful in 1m13s Details
Test / test_heal_csum_4k_dmj (push) Successful in 6m53s Details
Test / test_scrub_xor (push) Successful in 54s Details
Test / test_scrub_zero_osd_2 (push) Successful in 58s Details
Test / test_heal_csum_4k_dj (push) Successful in 6m27s Details
Test / test_scrub_pg_size_6_pg_minsize_4_osd_count_6_ec (push) Successful in 1m15s Details
Test / test_scrub_pg_size_3 (push) Successful in 1m27s Details
Test / test_heal_csum_4k (push) Successful in 6m20s Details
Test / test_scrub_ec (push) Successful in 29s Details
Test / test_move_reappear (push) Successful in 17s Details
Clear old PG states, history, and OSD states on etcd state reload
Also add protection from etcd watcher messages being split into multiple websocket
messages - I'm not sure if etcd actually does that, but it's better to have extra
protection anyway.

Also check that all etcd watchers are started in the keepalive routine, otherwise
it sometimes tries to revive etcd watchers starting with revision=1 which obviously
always fails because this revision is nearly always compacted.

All these changes should fix an old rarely reproduced bug where SOMETIMES OSDs
didn't react to PG config changes which was leading to offline pools on node reboot.
It happened on the full reload of state from etcd.
2023-12-24 02:02:13 +03:00
..
mock Implement client writeback cache 2023-09-16 17:52:17 +03:00
nfs Simplified NFS proxy based on own NFS/XDR implementation 2022-05-07 01:01:20 +03:00
CMakeLists.txt Release 1.3.1 2023-12-04 18:35:09 +03:00
addr_util.cpp Allow multiple interfaces with the same IP address, for "simple routed" full mesh network 2023-12-17 13:25:56 +03:00
addr_util.h Use the larger sockaddr_storage structure 2022-02-12 11:22:56 +03:00
allocator.cpp Implement large csum_block_size support (more than 4k) + refactor blockstore_flush 2023-07-29 12:17:18 +03:00
allocator.h Implement large csum_block_size support (more than 4k) + refactor blockstore_flush 2023-07-29 12:17:18 +03:00
blockstore.cpp Implement online config update 2023-03-26 19:21:50 +03:00
blockstore.h Implement bitmap-granular (4k) metadata & data checksums 2023-07-29 12:17:18 +03:00
blockstore_disk.cpp Add a third I/O mode: O_DIRECT|O_SYNC, change parameters to data_io/meta_io/journal_io 2023-08-09 00:57:08 +03:00
blockstore_disk.h Add a third I/O mode: O_DIRECT|O_SYNC, change parameters to data_io/meta_io/journal_io 2023-08-09 00:57:08 +03:00
blockstore_flush.cpp Fix "cannot be narrowed" in clang 2023-11-04 18:14:44 +03:00
blockstore_flush.h Track used blocks, not object versions 2023-07-29 12:17:18 +03:00
blockstore_impl.cpp Autosync in blockstore every autosync_writes, too 2023-09-16 17:52:17 +03:00
blockstore_impl.h Reserve journal space for stabilize requests dynamically to prevent stalls 2023-11-20 03:01:57 +03:00
blockstore_init.cpp Fix possible out of bounds when checking invalid journal entries 2023-12-08 00:01:07 +03:00
blockstore_init.h Implement bitmap-granular (4k) metadata & data checksums 2023-07-29 12:17:18 +03:00
blockstore_journal.cpp Oops, 1.3.0 needs a hotfix 2023-12-04 13:45:54 +03:00
blockstore_journal.h Reserve journal space for stabilize requests dynamically to prevent stalls 2023-11-20 03:01:57 +03:00
blockstore_open.cpp Autosync in blockstore every autosync_writes, too 2023-09-16 17:52:17 +03:00
blockstore_read.cpp Track used blocks, not object versions 2023-07-29 12:17:18 +03:00
blockstore_rollback.cpp ...and partially remove the perversion with bitmap inlining 2023-07-29 12:17:18 +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 Reserve journal space for stabilize requests dynamically to prevent stalls 2023-11-20 03:01:57 +03:00
blockstore_write.cpp Oops, 1.3.0 needs a hotfix 2023-12-04 13:45:54 +03:00
cli.cpp Raise default NBD timeout from 30 to 300 seconds and allow to take it from /etc/vitastor/vitastor.conf 2023-12-02 14:11:14 +03:00
cli.h Implement vitastor-cli fix 2023-05-20 23:19:39 +03:00
cli_alloc_osd.cpp Fix sscanf validation usage (field count instead of null_byte == 0) 2023-09-07 02:34:35 +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 Remove spaces from old->new PG count in df 2023-11-05 01:45:45 +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 Fix possible segfault in vitastor-cli ls -l 2023-10-18 11:11:41 +03:00
cli_merge.cpp Prevent stack overflows in cli_merge with CAS and writeback cache 2023-09-16 17:52:17 +03:00
cli_modify.cpp Handle extending writes correctly in NFS proxy 2023-07-26 02:09:43 +03:00
cli_rm.cpp Fix sscanf validation usage (field count instead of null_byte == 0) 2023-09-07 02:34:35 +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 Do not print "-X offline" in status when changing pool PG count, print it in df instead 2023-11-04 13:12:13 +03:00
cluster_client.cpp Parse log_level in cluster_client 2023-12-20 02:21:23 +03:00
cluster_client.h Parse log_level in cluster_client 2023-12-20 02:21:23 +03:00
cluster_client_impl.h Implement client writeback cache 2023-09-16 17:52:17 +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
cluster_client_wb.cpp Fix unused capture warnings and void* arithmetic (clang) 2023-11-04 14:55:12 +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 Implement bitmap-granular (4k) metadata & data checksums 2023-07-29 12:17:18 +03:00
disk_tool.cpp Add vitastor-disk update-sb command 2023-12-14 01:11:42 +03:00
disk_tool.h Add vitastor-disk update-sb command 2023-12-14 01:11:42 +03:00
disk_tool_journal.cpp Fix mismatch journal pos format in vitastor-disk 2023-11-19 15:19:54 +03:00
disk_tool_meta.cpp Rename meta_version to meta_format 2023-07-29 12:17:18 +03:00
disk_tool_prepare.cpp Add a third I/O mode: O_DIRECT|O_SYNC, change parameters to data_io/meta_io/journal_io 2023-08-09 00:57:08 +03:00
disk_tool_resize.cpp Use io_uring SQ size for ringloop capacity - otherwise get_sqe could return NULL when space_left() was > 0 under load 2023-11-20 03:04:06 +03:00
disk_tool_udev.cpp Add vitastor-disk update-sb command 2023-12-14 01:11:42 +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 bitmap-granular (4k) metadata & data checksums 2023-07-29 12:17:18 +03:00
epoll_manager.cpp Allow to use epoll_manager without ringloop 2023-10-26 22:57:36 +03:00
epoll_manager.h Allow to use epoll_manager without ringloop 2023-10-26 22:57:36 +03:00
etcd_state_client.cpp Clear old PG states, history, and OSD states on etcd state reload 2023-12-24 02:02:13 +03:00
etcd_state_client.h Clear old PG states, history, and OSD states on etcd state reload 2023-12-24 02:02:13 +03:00
fio_cluster.cpp Support vitastor_c_create_epoll() in fio driver 2023-10-26 22:57:36 +03:00
fio_engine.cpp Use io_uring SQ size for ringloop capacity - otherwise get_sqe could return NULL when space_left() was > 0 under load 2023-11-20 03:04:06 +03:00
fio_headers.h Fix compatibility with fio 3.28+ 2022-01-31 23:39:14 +03:00
fio_sec_osd.cpp Fix fio_sec_osd attr_len 2023-09-16 17:49:10 +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 Support RDMA without ODP by stupidly copying memory. Disable ODP by default 2023-11-12 15:03:47 +03:00
messenger.h Support RDMA without ODP by stupidly copying memory. Disable ODP by default 2023-11-12 15:03:47 +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 Support RDMA without ODP by stupidly copying memory. Disable ODP by default 2023-11-12 15:03:47 +03:00
msgr_rdma.h Support RDMA without ODP by stupidly copying memory. Disable ODP by default 2023-11-12 15:03:47 +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 RDMA connection leak which was preventing stable functioning of RDMA :) 2023-11-11 23:40:47 +03:00
msgr_stop.cpp Do not include msgr_rdma.h into messenger.h 2023-08-24 01:55:35 +03:00
nbd_proxy.cpp Raise default NBD timeout from 30 to 300 seconds and allow to take it from /etc/vitastor/vitastor.conf 2023-12-02 14:11:14 +03:00
nfs_conn.cpp Handle parallel NFS extending writes without imposing extra load on etcd 2023-07-27 02:26:17 +00: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 Raise default NBD timeout from 30 to 300 seconds and allow to take it from /etc/vitastor/vitastor.conf 2023-12-02 14:11:14 +03:00
nfs_proxy.h Handle parallel NFS extending writes without imposing extra load on etcd 2023-07-27 02:26:17 +00: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 %d -> %lu 2023-11-20 03:02:26 +03:00
osd.h Split etcd_stats_interval out of etcd_report_interval 2023-10-27 01:26:26 +03:00
osd_cluster.cpp Clear old PG states, history, and OSD states on etcd state reload 2023-12-24 02:02:13 +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 io_uring SQ size for ringloop capacity - otherwise get_sqe could return NULL when space_left() was > 0 under load 2023-11-20 03:04:06 +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 Support keeping checksums on disk (not in memory) 2023-07-29 12:17:18 +03:00
osd_rmw.cpp Fix ISA-L version EC recovery with first missing data chunk not being read 2023-11-04 01:34:18 +03:00
osd_rmw.h Allow scrub to fix corrupted object states 2023-05-20 23:19:39 +03:00
osd_rmw_test.cpp Add a test for EC with multiple missing data chunks, but without recovery of first of them 2023-11-04 01:34:18 +03:00
osd_scrub.cpp Measure scrub statistics 2023-06-17 20:56:26 +03:00
osd_secondary.cpp Do not include msgr_rdma.h into messenger.h 2023-08-24 01:55:35 +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 Fix warning with QEMU 8.1 2023-12-04 01:59:07 +03:00
ringloop.cpp Use io_uring SQ size for ringloop capacity - otherwise get_sqe could return NULL when space_left() was > 0 under load 2023-11-20 03:04:06 +03:00
ringloop.h Use io_uring SQ size for ringloop capacity - otherwise get_sqe could return NULL when space_left() was > 0 under load 2023-11-20 03:04:06 +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 Use io_uring SQ size for ringloop capacity - otherwise get_sqe could return NULL when space_left() was > 0 under load 2023-11-20 03:04:06 +03:00
test_allocator.cpp Skip double allocs when reading journal 2021-04-03 00:53:28 +03:00
test_blockstore.cpp Use io_uring SQ size for ringloop capacity - otherwise get_sqe could return NULL when space_left() was > 0 under load 2023-11-20 03:04:06 +03:00
test_cas.cpp Use io_uring SQ size for ringloop capacity - otherwise get_sqe could return NULL when space_left() was > 0 under load 2023-11-20 03:04:06 +03:00
test_cluster_client.cpp Implement client writeback cache 2023-09-16 17:52:17 +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 Prevent re-entry into timerfd set_nearest 2023-12-22 02:32:40 +03:00
timerfd_manager.h Prevent re-entry into timerfd set_nearest 2023-12-22 02:32:40 +03:00
vitastor.pc.in Release 1.3.1 2023-12-04 18:35:09 +03:00
vitastor_c.cpp Use io_uring SQ size for ringloop capacity - otherwise get_sqe could return NULL when space_left() was > 0 under load 2023-11-20 03:04:06 +03:00
vitastor_c.h Allow to create vitastor_c with plain epoll without uring :-) 2023-10-26 22:57:36 +03:00
xor.h Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00