Vitaliy Filippov
25fcedf6e7
Enable vitastor-cli fix in test
2023-05-20 23:19:39 +03:00
Vitaliy Filippov
6ca20aa194
Allow scrub to fix corrupted object states
2023-05-20 23:19:39 +03:00
Vitaliy Filippov
4bfd994341
Sync unsynced deletes before overwriting them with a lower version
2023-05-20 23:19:39 +03:00
Vitaliy Filippov
59e959dcbb
Do not die when "different versions are returned from subops"
2023-05-20 23:19:39 +03:00
Vitaliy Filippov
a9581f0739
Handle dirty deletes during read correctly O_o
2023-05-20 23:19:39 +03:00
Vitaliy Filippov
105a405b0a
Implement vitastor-cli fix
2023-05-20 23:19:39 +03:00
Vitaliy Filippov
d55d7d5326
Add scrub test
2023-05-20 23:19:39 +03:00
Vitaliy Filippov
0e5d0e02a9
Add "vitastor-cli describe" command
2023-05-20 23:19:39 +03:00
Vitaliy Filippov
0439981a66
Implement "describe object(s)" operation
...
Required to implement fixing inconsistent objects in vitastor-cli
2023-05-20 23:19:39 +03:00
Vitaliy Filippov
6648f6bb6e
Implement ambiguity detection during scrub
2023-05-20 23:19:39 +03:00
Vitaliy Filippov
281be547eb
Implement brute-force error locator for EC
2023-05-20 23:19:39 +03:00
Vitaliy Filippov
0c78dd7178
Add no_scrub flag
2023-05-20 23:19:39 +03:00
Vitaliy Filippov
3c924397e7
Store next scrub timestamp instead of last scrub timestamp
2023-05-20 23:19:39 +03:00
Vitaliy Filippov
c3bd26193d
Implement PG scrub runner
2023-05-20 23:19:39 +03:00
Vitaliy Filippov
43b77d7619
Implement scrubbing "data path" - OSD_OP_SCRUB
2023-05-20 23:19:39 +03:00
Vitaliy Filippov
a6d846863b
Add min/max stripe and limit to OP_LIST
2023-05-20 23:19:39 +03:00
Vitaliy Filippov
8dc427b43c
Retry failed reads (including chained and RMW) from other replicas
2023-05-20 23:19:39 +03:00
Vitaliy Filippov
bf2112653b
Refcount object_states
2023-05-20 23:19:39 +03:00
Vitaliy Filippov
0538a484b3
Add corrupted object state
2023-05-20 23:19:39 +03:00
Vitaliy Filippov
97720fa6b4
Remove unused capture
2023-05-20 22:58:51 +03:00
Vitaliy Filippov
e60e352df6
Improve vitastor-nbd documentation
2023-05-20 22:58:51 +03:00
Vitaliy Filippov
98077a1712
Remove unused dependencies from CSI
2023-05-18 11:54:47 +03:00
Vitaliy Filippov
1c7d53996d
Reweight only 2 OSDs to zero in test_rebalance_verify, otherwise the test does not pass with EC 3+2
2023-05-18 00:42:40 +03:00
Vitaliy Filippov
2ca07b1ea7
Raise timeout in test_rebalance_verify
2023-05-17 01:58:01 +03:00
Vitaliy Filippov
022176aa98
Fix NaN during PG optimisation if there are nonexisting OSDs in node_placement
2023-05-17 01:20:30 +03:00
Vitaliy Filippov
120e3fa7bc
Fix pool deletion
2023-05-17 00:45:59 +03:00
Vitaliy Filippov
629999f789
Clear journal_device and meta_device before initialising the next OSD in automatic mode
2023-05-15 23:58:55 +03:00
Vitaliy Filippov
93eca11ba2
Fix rhel 9 installation docs
2023-05-15 13:09:18 +03:00
Vitaliy Filippov
5a9e1ede52
Release 0.8.9
...
- The tests are now stable and run in a CI system based on Gitea CI
- The release includes final bug fixes for EC:
- Implement missing EC recovery of allocation bitmap when built with ISA-L
- Fix broken snapshot export with EC (allocation bitmap reads were giving incorrect results previously)
- Also fixed bugs manifesting under heavy load:
- Fix monitor possibly applying incorrect PG history on retries
- Fix monitor incorrectly changing PG count when last_clean_pgs contains less PGs than the new number
- Allow writes to wait for free space again, but now correctly (previously dropped in 0.8.2)
- Fix a rare segfault in client (handle client stop during incoming stream handling in 1 more place)
- Make monitor correctly handle etcd connection errors - it could die instead of connecting to another etcd
- Fix OSD rarely being unable to report PG states after a PG was taken over by another OSD
- Fixed return code for incomplete EC objects (now EIO) and made cluster client retry this error
- Made other small changes for tests: timeouts, nice/ionice for etcd, waiting conditions, NBD device checks and so on
2023-05-14 01:25:09 +03:00
Vitaliy Filippov
1c9a188600
Add tests to CI
2023-05-14 00:06:09 +03:00
Vitaliy Filippov
de3e609166
Add a FIXME about QEMU driver thread safety
2023-05-14 00:06:09 +03:00
Vitaliy Filippov
11481170f5
Add a FIXME about ENOSPC
2023-05-13 23:59:44 +03:00
Vitaliy Filippov
e69d459d43
Allow rebalance to start in test_interrupted_rebalance, raise etcd start timeout
2023-05-13 15:16:28 +03:00
Vitaliy Filippov
da82754baa
Wait for conditions in test_move_reappear instead of waiting a fixed amount of time
2023-05-12 23:18:07 +03:00
Vitaliy Filippov
d356aca030
Add missing $NO_SAME OSD argument to test_splitbrain
2023-05-12 23:18:07 +03:00
Vitaliy Filippov
04a273d213
Raise NBD timeout in tests
2023-05-12 23:18:07 +03:00
Vitaliy Filippov
6442010f93
Skip offline PGs during state reporting when the state is already deleted or taken over by another OSD
...
This fixes OSDs being unable to report PG states in rare conditions
2023-05-12 23:17:45 +03:00
Vitaliy Filippov
6f4dc16c59
Handle etcd connection errors correctly in mon (unhandled error events)
2023-05-11 11:02:44 +03:00
Vitaliy Filippov
ce4a8067b5
Handle client stop during incoming stream handling in 1 more place
2023-05-11 01:53:41 +03:00
Vitaliy Filippov
e431ecb715
Make tests more stable in CI
2023-05-11 01:53:41 +03:00
Vitaliy Filippov
8cac795445
Return EIO instead of EINVAL for incomplete EC objects
2023-05-11 01:15:23 +03:00
Vitaliy Filippov
a409598b16
Wait for free space again, but count on big_write flushes instead of just flusher activity
2023-05-10 01:51:02 +03:00
Vitaliy Filippov
f4c6765522
Ignore ENOENT in epoll_ctl
2023-05-08 20:39:20 +03:00
Vitaliy Filippov
ad2916068a
Fix test_add_osd rebalance timeout check
2023-05-08 20:39:20 +03:00
Vitaliy Filippov
321cb435a6
Fix monitor incorrectly changing PG count when last_clean_pgs contains less PGs than the new number
2023-05-08 20:39:20 +03:00
Vitaliy Filippov
cfcf4f4355
Support checking /dev/nbdX nodes in Docker
2023-05-08 20:39:20 +03:00
Vitaliy Filippov
e0fb17bfee
Make etcd more stable in tests (add ionice and raise timeout)
2023-05-08 20:36:00 +03:00
Vitaliy Filippov
5b9031fecc
Fix monitor possibly applying incorrect PG history under heavy load
...
Monitor could deceive itself by immediately saving PG configuration changes
which weren't applied to etcd yet in memory, and apply incorrect PG history
changes next time if the first update fails.
This usually only happened under heavy load and was caught in CI. :-)
2023-05-07 23:23:00 +03:00
Vitaliy Filippov
5da1d8e1b5
Fix EC just-bitmap reads (len=0) (fixes SCHEME=ec test_snapshot.sh)
2023-05-07 14:00:08 +03:00
Vitaliy Filippov
44f86f1999
Add a basic EC 2+2 recovery test (not really required, but let it be there)
2023-05-07 11:26:27 +03:00