Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Galera 26.4.21 #32

Open
wants to merge 28 commits into
base: mariadb-4.x
Choose a base branch
from
Open

Galera 26.4.21 #32

wants to merge 28 commits into from

Conversation

janlindstrom
Copy link

No description provided.

ayurchen and others added 28 commits August 11, 2024 01:24
…ructs

gcs, gcs_core, gcs_group instead of using calloc()
 - make gcs_register_params() take gu::Coonfig& and return void in line with
other such methods
Remove remainig calls to gu_abort() in gcs_group.cc. Instead marshall
errors up to the main recv loop where graceful leave will be attempted
before abort.
The header `openssl/engine.h` is required to compile `gu_asio_test.cpp`.
However, the engine functionality is being deprecated on some
platforms, which makes galerautils ASIO specific unit test compilation
to fail. The `openssl/engine.h` is not required by any other
part of Galera code.

Fix by removing `openssl/engine.h` include from `gu_asio_test.cpp` and
fixing compilation errors by including `openssl/err.h`.
Before the GALERA_GIT_REVISION was written under PROJECT_SOURCE_DIR,
but this breaks with out-of-source builds if the source directory
is read-only. Write GALERA_GIT_REVISION under CMAKE_BINARY_DIR instead.
The warning was emitted from `gu_atomic.hpp`

    galerautils/tests/../src/gu_atomic.hpp:22:19:
       error: template-id not allowed for constructor in C++20
       [-Werror=template-id-cdtor]
   22 |         Atomic<I>(I i = 0) : i_(i) { }
      |                   ^
/galera/galerautils/tests/../src/gu_atomic.hpp:22:19: note: remove the ‘< >’

Fix by removing unnecessary template parameter from the constructor.
It likely to happen that IST donor locks seqno of already released action.
In fact it is very likely since only uncommitted actions are not released.
As of now `GCache::seqno_lock()` affects only results of top-level
`GCache::release()`, `GCache::discard_seqno()` and `GCache::discard_tail()`
calls and in the case of GCache::release() it is almost pointless as
mentioned above: a large part of "locked" actions already has been released.
At the same time underlying data stores (like the `RingBuffer` store) are
unaware of the locked seqno and may discard released actions which are
supposed to be protected by the lock in response to e.g. malloc() requests.
Pass locked seqno down to stores to inform them of discard limits.
…mented parameters

For some reason ssl_cipher parameter type was type_bool
when correct type is string. Fixed parameter type
and added test case.
When a node progresses from JOINED to SYNCED there is a race between
it becoming counted in commit cut recalculation (it needs to report last
applied that is greater than the current commit cut) and some other node
andvancing the commit cut even further. Make sure that the node is counted
in commit cut recalculation as soon as it announces itself SYNCED and
don't advance the commit cut until the node reports last applied greater
than the current commit cut.

Bump GCS protocol version (makes rolling downgrade impossible)
Expose versions of all protocols agreed on by quorum via status call.
@janlindstrom janlindstrom self-assigned this Nov 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

3 participants