-
Notifications
You must be signed in to change notification settings - Fork 43
Boost 1.90.0 beta1: merge develop to master #336
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
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Removes async_append_some
Moves read_buffer memory reservation to the connection's constructor Makes read_buffer memory reservation size be a power of 2
Add parse event init, node and done.
* Adds Valkey CIs Modifies existing builds to use different database flavors and versions: * Redis 7.4.5 * Redis 8.2.1 * Valkey 8.1.3 * Update docs
Refactors the handshake process to use asio::deferred instead of a custom composed operation. Fixes logging on HELLO error (close #297) Fixes a potential problem on reconnection after a HELLO error is encountered (close #290) Fixes a race condition in the health checker that could cause it to never exit on cancellation Adds support for users with a username different than "default" and an empty password (close #298) Adds integration testing for authentication Adds unit testing for the hello utility functions
Adds config::setup and config::use_setup, to run arbitrary Redis commands on connection establishment
Improves docs for config::{username, password, clientname, database_index}
Splits all connection establishment tests into test_conn_hello
close #302
* In the context of the multiplexer, replaces tribool by consume_result to enhance readability and make values smaller * Splits the multiplexer tests out of test_low_level_sync_sans_io into a separate test file * Increases testing coverage for the multiplexer class Entails no functional change.
) Changes how cancel_on_conn_lost is used to ensure it is called only once and after the reader and writer tasks have exited. This fixes a problem in test_conn_reconnect Adds a test for multiplexer::reset() Adds stronger invariants to the multiplexer functions to be called by the reader and writer Removes test_issue_181, since the same functionality is being covered by unit tests already Removes basic_connection::run_is_canceled
* Terminal cancellation in async_exec no longer tears down the connection when the cancelled request has been sent to the server. * Adds support for partial cancellation in async_exec with the same semantics.
…_monitor (#316) Splits test_conn_health_check into a test to verify that the health checker works and another to verify that MONITOR is handled correctly. Tests no longer wait or use CLIENT PAUSE
Modifies the health checker to use asio::cancel_after rather than a separate parallel group task
Data rotation in the read buffer creates latency, we know it is preset but so far its magnitude was unknown. This PR adds it as a new field to the usage struct. For example, the test_conn_echo_stress outputs now Commands sent: 780,002 Bytes sent: 32,670,085 Responses received: 780,001 Pushes received: 750,001 Bytes received (response): 3,210,147 Bytes received (push): 32,250,036 Bytes rotated: 3,109,190,184 In total approximately 34Mb are received but 3Gb are rotated.
Simplifies the read_buffer and add rotated bytes to usage.
…ncellation (#321) * Adds support for terminal and partial cancellation to async_run. * Makes basic_connection::cancel use per-operation cancellation under the hood. * Fixes a number of race conditions during cancellation which could cause the cancellation to be ignored. This could happen if the cancellation is delivered while an async handler is pending execution. * Deprecates operation::{resolve, connect, ssl_handshake, reconnection, health_check}, in favor of operation::run. Calling basic_connection::cancel with these values (excepting reconnection) is now equivalent to using operation::run. * Fixes a problem in the health checker that caused ping timeouts to be reported as cancellations. * Sanitizes how the parallel group computes its final error code. * Simplifies the reader, writer and health checker to not care about connection cancellation. This is now the responsibility of the parallel group. * Removes an unnecessary setup_cancellation action in the reader FSM. * Adds documentation regarding per-operation cancellation to async_receive. * Adds additional health checker tests. * Adds async_run per-operation cancellation tests. * Adds reader FSM cancellation tests. * Makes test_conn_exec_retry tests more resilient. * Removes leftovers in the UNIX and TLS reconnection tests. These were required due to race conditions that have already been fixed. close #318 close #319
Removes a conditional from CMake that was causing examples to never be run under CI.
Implements redis_stream::async_connect as a FSM Adds per-operation cancellation handling code Adds tests
* Adds support for asio::cancel_after in connection::{async_exec, async_run}
* Adds cancel_after tests
* Adds an example on using asio::cancel_after
* Adds a discussion page on timeouts and the `cancel_if_unresponded` flag
close #226
* Refactors the writer task into a FSM and adds unit tests. * Adds a testing utility to check logging. Entails no functional change (other than cosmetic word fixes to the logs).
Fixes inaccuracies in request::config::cancel_if_unresponded
* Implements async_run as a FSM and adds tests * Places all sans-io variables in connection_impl in a connection_state struct Entails no functional change.
* Removes logging all the reader actions, and logs specific messages inside the reader_fsm instead * Adds constructors to reader actions * Makes reader_fsm use connection_state * Refactors reader_fsm tests * Moves exec_fsm action printing to test code
Adds unit tests to cover setup request execution in run_fsm Entails no functional change
Changes request default constructor to set cancel_on_connection_lost to false, matching request::config's default initializer Overwrites this flag to true for the setup request Adds unit tests for the latter
Replaces connection_logger by buffered_logger and log_utils.hpp Adds a system to log arbitrary values without defining new logger methods
|
Release cycle starts today, with major changes closing on the 29th, so we may consider merging to master soon. |
|
Yeah, please, go ahead. Thanks. |
Removes unused clear_response Removes include in connection.hpp Moves the header to impl/ and makes functions inline
Adds a test covering UNSUBSCRIBE and PUNSUBSCRIBE close #306
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.