Skip to content

Multisite 4.1.5 - #25

Merged
ants merged 8 commits into
multisitefrom
multisite-4.1.5
Aug 19, 2026
Merged

ants merged 8 commits into
multisitefrom
multisite-4.1.5

Conversation

@ants

@ants ants commented Aug 14, 2026

Copy link
Copy Markdown

Merge in new release.

kylemclaren and others added 8 commits August 12, 2026 09:43
)

Wrap the response-writing in `RestApiHandler.write_response()` in
`try/except ConnectionError` and log it at `DEBUG` instead.
`ConnectionError` is the base class of `ConnectionResetError`,
`BrokenPipeError` and `ConnectionAbortedError`, so the common "client
went away mid-write" variants are all covered. Any genuine
(non-connection) error still propagates exactly as before.
patroni#3681)

The synchronous_mode configuration option accepts three types of values
at runtime (via global_config.py): boolean, PostgreSQL-style boolean
strings (on/off/yes/no/true/false/1/0), and the special 'quorum' string.

However, the config validator (patroni --validate-config) only accepted
strict Python bool, rejecting valid values like 'quorum' with:
  'synchronous_mode quorum is not a boolean'

This adds a validate_synchronous_mode() function that mirrors the
runtime logic by using parse_bool() for boolean-like strings and
explicit check for 'quorum', keeping validator.py consistent with
global_config.py.

Fixes patroni#3606

---------

Co-authored-by: eray.araz <eray.araz@trendyol.com>
- Move memory warning for Python 3.11+ to the Configuration section
- Adjust formatting
The `thread_stack_size` schema entry aligns on `65535` instead of
`65536`:

```python
Optional("thread_stack_size"): IntValidator(min=65536, base_unit='B', aligned=65535, ...)
```

`IntValidator` checks `value % aligned == 0`, so with `aligned=65535`
every realistic stack size is rejected by `patroni --validate-config`,
including the `524288` default that the daemon itself applies
(`daemon.py`) and every power-of-two / page-multiple value. Only
multiples of 65535 pass, which are exactly the values
`threading.stack_size()` refuses at runtime.

`65536` (64 KiB) is a multiple of every common page size and matches the
`min`, so this is a one-character typo. Changing it to `65536` makes the
validator accept the values the runtime already accepts.

Introduced in patroni#3526.

### Tests

Added `test_thread_stack_size` covering that the `524288` default passes
and a non-aligned value (`65535`) is still rejected.
added new GUC, `output_plugin_libraries`, which restricts logical
decoding output plugins
- Update RNs
- Update version
@ants
ants requested a review from hughcapet as a code owner August 14, 2026 08:44
@ants
ants merged commit 764d226 into multisite Aug 19, 2026
22 of 23 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants