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]

Reply via email to