Skip to content

Commit 4a5f54f

Browse files
committed
fix(dmq): missing wait for Done message in publisher server state machine
1 parent 56ac1b3 commit 4a5f54f

File tree

1 file changed

+27
-3
lines changed
  • internal/mithril-dmq/src/publisher/server

1 file changed

+27
-3
lines changed

internal/mithril-dmq/src/publisher/server/pallas.rs

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,30 @@ impl DmqPublisherServer for DmqPublisherServerPallas {
175175
}
176176
}
177177

178+
let request = server.msg_submission().recv_next_request().await.map_err(|err| {
179+
anyhow!(
180+
"Failed to receive next request from DMQ publisher client: {}",
181+
err
182+
)
183+
})?;
184+
match request {
185+
Request::Done => {
186+
debug!(
187+
self.logger,
188+
"Received Done request from DMQ publisher client"
189+
);
190+
}
191+
_ => {
192+
error!(
193+
self.logger,
194+
"Expected a Done request, but received: {request:?}"
195+
);
196+
return Err(anyhow!(
197+
"Expected a Done request, but received: {request:?}"
198+
));
199+
}
200+
}
201+
178202
Ok(())
179203
}
180204

@@ -201,11 +225,11 @@ impl DmqPublisherServer for DmqPublisherServerPallas {
201225
}
202226
Err(err) => {
203227
error!(self.logger, "Failed to process message"; "error" => ?err);
204-
if let Err(drop_err) = self.drop_server().await {
205-
error!(self.logger, "Failed to drop DMQ publisher server"; "error" => ?drop_err);
206-
}
207228
}
208229
}
230+
if let Err(drop_err) = self.drop_server().await {
231+
error!(self.logger, "Failed to drop DMQ publisher server"; "error" => ?drop_err);
232+
}
209233
}
210234
}
211235
}

0 commit comments

Comments
 (0)