-
Notifications
You must be signed in to change notification settings - Fork 5k
redis: harden connection lifecycle (Handshake enum, promise-settlement fixes, -1251 LOC) #34829
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
Open
robobun
wants to merge
93
commits into
main
Choose a base branch
from
farm/edd33c02/harden-redis-lifecycle
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
93 commits
Select commit
Hold shift + click to select a range
1e97365
valkey: drop discriminant PartialEq on TLS; add TLS::is_none()
robobun 2f005d1
valkey: route reconnect fail through client, report on_message errors
robobun 919d83f
valkey: fix PUNSUBSCRIBE typo, case-insensitive pipeline check
robobun 638a07c
valkey: drop lying JsTerminated aliases; drain reject_all fully
robobun cd389db
valkey: simplify upsert_receive_handler; scope subscribe() rollback
robobun 8548e07
valkey: flatten valkey_jsc mod.rs — drop alias maze, one canonical path
robobun 08465b0
valkey: [u8;3] format, move Push.kind, private leaf readers, re-exports
robobun 264d51a
valkey: drop dead params and phantom return types
robobun 0180768
valkey: collapse Meta onto Promise; drop PromisePair/Entry.meta dup
robobun ef6dfd9
valkey: add ServerError code; drop dead RedisError arms in to_js map
robobun 30950c5
valkey: delete dead code (connection_strings, on_valkey_timeout, stal…
robobun db68ee6
valkey: rollback only the handler added when SUBSCRIBE send fails
robobun 94a6dcb
valkey: fire onclose when reconnect's connect() errors
robobun 8733036
valkey: use ServerError code for subscriber RESP errors; document code
robobun 6ed93f5
valkeyseal round 1: land edits the per-item commits missed
robobun 1b188af
valkey: send_err_to_js returns rejected Promise, not bare Error
robobun bba753a
valkey: encapsulate JS-wrapper binding in JSValkeyClient::bind_js
robobun 3f15c8d
valkey: derive Clone for Address/TLS; drop unreachable!() reconstruction
robobun db6c144
valkey: *-1 -> Null, validate _\r\n, BigNumber always string
robobun b9480e2
valkey: replace handshake bools with Handshake enum; add mark_connected
robobun 5b28830
valkey: type handle_subscribe_response on Push; settle popped promise
robobun 15f742b
valkey: pass method names as &str; drop bname()+unsafe; fix labels
robobun 016118c
valkey: exhaustive SubscriptionPushMessage; drop is_reply_kind hack
robobun ffdf202
valkey: cmd_key* macros accept $meta; collapse 14 hand-written methods
robobun 92ce63a
valkey: resp_value_to_js by value; OOM via create_out_of_memory_error…
robobun d05e5c9
valkey: unify varargs policy to throw; fix file-blob/arg0 label
robobun ea8d2c1
valkey: restore validate_integer_range guard on expire(seconds)
robobun 91bc900
valkey: fix E0521 in collect_varargs by using &'static str params
robobun b7ff8af
valkey: skip pmessage pattern before on_valkey_message dispatch
robobun 61778a7
valkey: connection_ready() requires Connected; drop reachable unreach…
robobun 6dd8d1d
valkey: flatten command Entry/Promise queue type aliases
robobun 7e22cc7
valkey: wrap _secure in OwnedSslCtx RAII, drop manual SSL_CTX_free
robobun 8bea128
valkey: read_value() returns Option so Err is always a protocol error
robobun ac84fd4
valkey: drop six unused deps from bun_valkey Cargo.toml
robobun 29ef955
valkey: add ClientStateRequirement::Subscriber; gate punsubscribe
robobun 271f2ea
valkey: table-drive RedisClient command proto; fill 55 missing lengths
robobun 16f089b
valkey: inline on_valkey_* forwarders; global_object takes &self
robobun f46e241
valkey: drop dead ValkeyClient.protocol; use Protocol::is_unix()
robobun 34155fd
valkey: fold SubscriptionCtx bools into Option<SavedFlags>; Option map
robobun 434c14a
valkey: derive send_cmd err from command; add require_arg; drop dup m…
robobun 324eb8b
valkey: reuse boringssl::c::OwnedSslCtx for _secure field
robobun 308074f
valkey: revert punsubscribe Subscriber gate; restore require_subscrib…
robobun cad1a3e
valkeyseal round 3: land edits the per-item commits missed
robobun 20b2892
valkey: hset_impl use JSValue::to_slice for RAII string release
robobun 3877aff
valkey: Options::default honors env flag; drop Options shim struct
robobun 101b717
valkey: fold RETURN_AS_BOOL into command::Promise::resolve
robobun 30a396b
valkey: surface TLS ctx error; stop JsResult leaking from connect()
robobun 675fe62
valkey: defer unsubscribe handler-map mutation until send() succeeds
robobun d01c7a3
valkey: SocketHandler methods uniformly return JsResult<()>
robobun 3f39690
valkey: on_close releases socket-ref even if fail() throws
robobun 159e7d6
valkey: extract read_aggregate_header/read_n_values/read_n_entries
robobun 0c9df11
valkey: fix length comment; guard reserved proto slot collisions
robobun 1cda92c
valkey: extract parse_valkey_url + new_disconnected; dedupe ctor literal
robobun 1d235aa
valkey: publish via cmd_key_value!; js_send via send_cmd; ERR_INVALID…
robobun ebe2dc0
valkey: propagate JsResult from unsubscribe rollback (OOM-only Err path)
robobun d4ce4bb
valkey: use ERR_MISSING_ARGS for arity errors in command fns
robobun 3893a34
valkey: update BlobError torn-read test for reject semantics
robobun 70b8ecc
valkey: don't tear down connection on subscriber error/push
robobun 4e96bad
valkey: report JSMap::size exception instead of discarding it
robobun d8d3aac
valkey: extract JSValkeyClient::fail_fmt for stack-buffer formatting
robobun 776fa3d
valkey: collapse on_writable+update_poll_ref into flush_and_update_po…
robobun bf6b4ed
valkey: simplify enqueue() routing and on_close() reconnect predicate
robobun d6f7698
valkey: iterate both ring-buffer halves when scanning queue
robobun 2e6a391
valkey: on_auto_flush stays unregistered when no progress made
robobun da3ec49
valkey: BigNumber honours return_as_buffer; merge identical arms
robobun 08defc3
valkey: surface connect errno instead of generic 'Connection closed'
robobun 864cbff
valkey: safe stringify channel_name in invoke_callbacks debug log
robobun 0df529e
valkey: lift wrapped-ring iter onto LinearFifo; drop iter_entries
robobun dfcd00d
valkey: fix WTFStringImpl leak + swallowed throw in invoke_callbacks …
robobun 22f49f4
valkey: accept 'connect E<errno>' in connection-failure test regexes
robobun 00bc522
valkey: compute sub_count only in subscribe-ack arm
robobun c01daed
valkey: rename command::Args::Args variant to Blobs
robobun 09e2863
valkey: derive protocol-scheme error list from PROTOCOL_MAP.keys()
robobun 667edc1
valkey: rename free from_js helper to coerce_redis_arg
robobun 15e5f78
valkey: drop dead post-enqueue flusher re-register and empty-queue drain
robobun 13f228e
valkey: always include RedisError variant in JS error message
robobun 35990d9
valkey: subscribe ack only consumes SUBSCRIPTION_REQUEST promise
robobun 3a43b4f
valkey: drop misleading underscore prefix on pub fields
robobun 9956eec
valkey: only append variant tag for collapsed REDIS_INVALID_RESPONSE
robobun fd23fa0
valkey: derive SUBSCRIPTION_REQUEST in Meta::check for all send paths
robobun c28d1a7
valkey: update psubscribe test for subscribe-ack routing behavior
robobun 33266a9
valkey: reword moved stop-gap comments without TODO markers
robobun 8347af7
[autofix.ci] apply automated fixes
autofix-ci[bot] dbf1dd7
valkey: update error-message snapshots for unified require_arg labels
robobun 836f27d
valkey: drop is_subscriber assert on trailing unsubscribe ack; prune …
robobun 517a121
valkey: add SSUBSCRIBE/SUNSUBSCRIBE to auto-pipeline disallow set
robobun a1df82d
valkey: psubscribe/ssubscribe acks do not enter subscriber mode
robobun 77fc987
valkey: reject cached connectionPromise when reconnect's connect() fails
robobun f7eebbb
valkey: condense subscribe-ack comment; cover SSUBSCRIBE sibling in n…
robobun d06d67b
[autofix.ci] apply automated fixes
autofix-ci[bot] edb5524
valkey: gate subscriber-mode entry on handler-map count, not ack kind
robobun 9a44e8d
Merge origin/main into farm/edd33c02/harden-redis-lifecycle
robobun a90e1e2
Merge remote-tracking branch 'origin/main' into farm/edd33c02/harden-…
robobun File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
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
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
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
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
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
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.