The GitHub Actions job "CI" on pekko-connectors.git/main has succeeded.
Run started by GitHub user raboof (triggered by raboof).

Head commit for run:
817d8f4334eefb33fd832a8bc54a05bd17812414 / PJ Fanning 
<[email protected]>
MQTT Streaming: fix BroadcastHub race in server flow tests (#1977)

Motivation:
MqttFlowTest.establishServerBidirectionalConnectionAndSubscribeToATopic
intermittently timed out: the server received the client's Connect but
never replied with ConnAck. The connection handler feeds events into a
BroadcastHub with two consumers - runForeach (which sends ConnAck,
SubAck and PubAck) and the source returned to flatMapMerge (drained by
Sink.ignore). BroadcastHub only holds elements while it has no
consumers, so if the returned source attached first, the Connect could
be delivered before runForeach attached and was never answered. The
leaked streams then also failed the next test's assertAllStagesStopped.

Modification:
Use BroadcastHub with startAfterNrOfConsumers = 2 in the server flow of
MqttFlowTest and MqttFlowSpec so no event is emitted until both
consumers are attached. This also fixes the documentation snippet.

Result:
The handler always sees the Connect, so the server test no longer
depends on consumer attach order.

Tests:
- sbt mqtt-streaming/Test/javafmt mqtt-streaming/Test/scalafmt 
mqtt-streaming/Test/compile
- sbt 'mqtt-streaming/testOnly docs.javadsl.MqttFlowTest docs.scaladsl.*' (x3):
  server flow tests pass in MqttFlowTest, TypedMqttFlowSpec and
  UntypedMqttFlowSpec; broker-dependent tests fail locally only because
  no MQTT broker was running (connection refused on localhost:1883)

References:
Refs #468

Report URL: https://github.com/apache/pekko-connectors/actions/runs/36740980529

With regards,
GitHub Actions via GitBox


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to