- Dec 27, 2024
-
-
Georgy Moshkin authored
The bug was introduced when I changed the behaviour of conf_change in regard to instances with target_state Expelled. As a result we would sometimes arbitrarily demote healthy voters in presence of degenerate ones. For example we could have this situation: instance i1: raft_id=1, target_state=Online, raft_configuration=voter instance i2: raft_id=2, target_state=Expelled, raft_configuration=voter (!) instance i3: raft_id=3, target_state=Offline, raft_configuration=voter (!) instance i4: raft_id=4, target_state=Online, raft_configuration=learner (!) instance i5: raft_id=5, target_state=Online, raft_configuration=learner (!)
-
Georgy Moshkin authored
-
Georgy Moshkin authored
-
The check arrived late when elections were already completed. Circumstances are a bit weird. For some reason the check hang for two seconds. Only after that it received conn refused, and during these two seconds elections happened and leader was chosen so check can never succeed after that.
-
Виталий Шунков authored
-
Follow-up for !1425
-
-
Кирилл Безуглый authored
BREAKING CHANGE: as soon as PostgreSQL protocol is enabled by default, we must be careful with `--pg-listen` cli flag when creating more than a single instance, because we will suddenly get a port confict error (busy port)
-
- Dec 26, 2024
-
-
Виталий Шунков authored
-
- Dec 25, 2024
-
-
Dmitry Rodionov authored
Logs help to debug flaky tests. Because sometimes just by instance logs it is not that easy to guess what the test was doing at that time. Especially when there is a repetitive pattern in the test. For now instance logs and test output are printed in separate sections. It still allows to match events by time easier compared to looking only at instance log (it is way bigger compared to test log). Additionally this patch sets up a `framework` package intended to host reusable test code without polluting conftest.py
-
-
Dmitry Rodionov authored
I found this by compiling tarantool with CMAKE_BUILD_TYPE=Debug
-
Georgy Moshkin authored
We used to automatically truncate the index in compact_log if the caller requested to compact too many entries. This made it so that the requirement of not compacting any un-applied entries was implicit in our code base, which is not good as it allows for some bugs to creep in (like the one we fix a couple commits ago). Now this is changed and instead of silently adjusting the index of last compacted entry, we just assert that it's no greater than the applied index. As a consequence there's a minor improvement in do_raft_log_auto_compaction function.
-
Georgy Moshkin authored
-
Georgy Moshkin authored
There was a hard-to-reproduce bug in our snapshot application code. We always compact the raft log before applying the snapshot, because the snapshot replaces the entries and some of the logic in raft-rs seems to rely on this. The problem was, that our compact_log function would not remove any unapplied entries, which makes sense for compaction triggered automatically by raft log size, but doesn't make sense for raft snapshot, as the snapshot contains the state corresponding to the newer entries. The fix is simple: don't guard from unapplied entry compaction in case the compaction is for raft snapshot. We don't add any regression tests for this, because the implementation would be too difficult and would need us to pollute the code with error injection logic, which is not a worthy trade off in this case. But also the logic will still be tested, because this bug was responsible for a large amount of flaky tests, so we should see a significant reduction in flakiness from now on in tests concerning raft snapshots.
-
Georgy Moshkin authored
-
Erik Khamitov authored
-
- Dec 24, 2024
-
-
- Dec 23, 2024
-
-
Dmitry Rodionov authored
-
Dmitry Rodionov authored
-
- Dec 20, 2024
-
-
Вартан Бабаян authored
-
Вартан Бабаян authored
-
Вартан Бабаян authored
-
Erik Khamitov authored
-
- Dec 19, 2024
-
-
Вартан Бабаян authored
-
-
-
-
Close #1228
-
-
-
Georgy Moshkin authored
TopologyCache is a collection of deserialized structures with information about cluster topology. This currently includes data from _pico_instance, _pico_replicaset, _pico_tier & _pico_service_route_table. The info is automatically kept up to date with the corresponding system tables. The TopologyCache also caches the immutable info related to the current instance, like instance name, replicaset uuid, etc. From now on we should be reading this data from TopologyCache whenever possible instead of going directly to system tables as we were doing previosly. At the moment only the plugin RPC module has transitioned to using TopologyCache but other modules should be refactored as well. Especially governor.
-
Georgy Moshkin authored
-
Georgy Moshkin authored
-
Georgy Moshkin authored
Before this fix if requesting RPC by an invalid bucket_id we would send an RPC to every replicaset to check if they have such a bucket_id. This is not needed because we know the allowed range.
-
Georgy Moshkin authored
-
Georgy Moshkin authored
-
Georgy Moshkin authored
-
EmirVildanov authored
this adr is a proposal of implementing TRUNCATE sql command, its context and possible problems
-
- Dec 18, 2024
-
-
Кирилл Безуглый authored
-