DataUpdater should serialize all MessageTracker and DataUpdater.Server start requests #375
Labels
app:data_updater_plant
This issue or pull request is about astarte_data_updater_plant application
bug
Something isn't working
Currently,
MessageTracker
andDataUpdater.Server
starts can be triggered from two different points: handling a message coming from VerneMQ (called fromAMQPDataConsumer
) or handling an RPC call (called fromRPC.Server
).This causes two problems: first, there's a race condition between the Registry lookup and the call to start for both types of processes. The second problem is that if the
MessageTracker
process is started fromRPC.Server
, it uses it asacknowledger
, but this does not make sense since theacknowledger
is used to ack data messages. This also has the side-effect ofAMQPDataConsumer
never detecting crashes inMessageTracker
, leading to possible stalls in Data Updater Plant queues.To avoid all these problems, the start of
MessageTracker
s andDataUpdater.Server
s should always be serialized throughAMQPDataConsumer
.The text was updated successfully, but these errors were encountered: