krishvishal opened a new pull request, #4103:
URL: https://github.com/apache/iggy/pull/4103
Shard dispatch silently ignores requests that neither consensus plane
accepts, leaving the client waiting until its read timeout. `DeleteSegments`
and `NonReplicated` fall into this gap. Released builds avoid it because
`classify` handles both before dispatch, as checked by
`classify_pins_probe_order`.
Operation routing is defined separately in `classify`, `route_typed`, and
the two plane predicates. These definitions already differ, so a future
operation or caller could reach the silent fallback.
This change adds `is_plane_routable` checks to the request, prepare, and
prepare-ack branches of `dispatch_message`:
* Requests receive a permanent `InvalidCommand`; retrying cannot fix an
unsupported operation.
* Prepares and acks are dropped, counted as
`frame_drops_total{variant=consensus,reason=unroutable}`, and logged with frame
details.
The checks stay inside those branches because other messages use `Reserved`
and have dedicated handlers.
An operation-coverage test checks every known code, rejects overlapping
plane ownership, and lists the three excluded operations with their handling
paths. The workload runner also checks `unroutable` and `misrouted` counters
each tick, reporting the shard and reason immediately instead of waiting for
the quiescence timeout.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]