- Dec 27, 2024
-
-
Previously, using a default port of another protocol would result in an error like the following ``` error: Invalid value "localhost:8080" for '--pg-listen <[HOST][:PORT]>': PGPROTO cannot listen on port 8080 because it is default port for HTTP ``` This commit allows default ports to be used by other protocols, as long as the port is not already occupied. Close #1254
-
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
-
Кирилл Безуглый 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 25, 2024
-
-
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
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.
-
- Dec 20, 2024
-
-
Вартан Бабаян authored
-
Вартан Бабаян authored
-
Вартан Бабаян authored
-
Erik Khamitov authored
-
- Dec 19, 2024
-
-
Вартан Бабаян authored
-
-
-
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
-
- Dec 17, 2024
-
-
Кирилл Безуглый authored
-
Кирилл Безуглый authored
-
Erik Khamitov authored
-
Вартан Бабаян authored
-
Вартан Бабаян authored
-
- Dec 16, 2024
-
-
-
Erik Khamitov authored
-
- Dec 11, 2024
-
-
Georgy Moshkin authored
Now panics from plugin code are handled the same way panics from picodata code, that is they log the backtrace to the tarantool logger and then abort the process.
-
Georgy Moshkin authored
-
Georgy Moshkin authored
-
- Dec 09, 2024
-
-
Кирилл Безуглый authored
-
Вартан Бабаян authored
-
Вартан Бабаян authored
-
-
-
-
-
-
Kurdakov Alexander authored
Introduce new parameters for alter system: - vdbe_max_steps - vtable_max_rows
-
- Dec 04, 2024
-
-
Вартан Бабаян authored
-
- Dec 03, 2024
-
-
Erik Khamitov authored
-