hubcio commented on code in PR #4092:
URL: https://github.com/apache/iggy/pull/4092#discussion_r3986620245
##########
core/server/src/http/handlers.rs:
##########
@@ -1405,17 +1427,18 @@ pub(in crate::http) async fn send_messages(
.map_err(PartitionWriteError::Rejected)?;
match query.ack {
ProduceAck::Replicated => {
+ let policy = topic_durability(&state, &stream_id, &topic_id);
let (reply, header) = SendWrapper::new(partition_write_replicated(
&state,
&identity.session,
Operation::SendMessages,
&body,
))
.await?;
- let durability = [(
- DURABILITY_HEADER,
- HeaderValue::from_static(DURABILITY_REPLICATED_MEMORY),
- )];
+ let policy = policy.map_or(iggy_common::Durability::Replicated,
|policy| {
+ policy.confirmed_policy(&state)
Review Comment:
thanks for the repro, this is fixed locally in
https://github.com/apache/iggy/pull/4092/commits/c1e808f693f977ae9c63696ba571bb596d0f1aad.
the handler pins the numeric stream and topic ids captured with the durability
policy before waiting on the session gate, and keeps the incarnation check
afterward. renames can’t redirect the write anymore. the routing and policy
tests pass.
##########
core/server/src/http/handlers.rs:
##########
@@ -1405,17 +1427,18 @@ pub(in crate::http) async fn send_messages(
.map_err(PartitionWriteError::Rejected)?;
match query.ack {
ProduceAck::Replicated => {
+ let policy = topic_durability(&state, &stream_id, &topic_id);
let (reply, header) = SendWrapper::new(partition_write_replicated(
&state,
&identity.session,
Operation::SendMessages,
&body,
))
.await?;
- let durability = [(
- DURABILITY_HEADER,
- HeaderValue::from_static(DURABILITY_REPLICATED_MEMORY),
- )];
+ let policy = policy.map_or(iggy_common::Durability::Replicated,
|policy| {
+ policy.confirmed_policy(&state)
Review Comment:
thanks for the repro, this is fixed in [`c1e808f` (this
PR)](https://github.com/apache/iggy/pull/4092/commits/c1e808f693f977ae9c63696ba571bb596d0f1aad).
the handler pins the numeric stream and topic ids captured with the durability
policy before waiting on the session gate, and keeps the incarnation check
afterward. renames can’t redirect the write anymore. the routing and policy
tests pass.
--
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]