You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Earlier today, @muXxer identified an issue in which the broker would crash with fatal errors, caused when the primary server routine and clients attempted to read and write from the inflight messages map simultaneously.
This is a new issue as of 1.3.0, and resulted from the changes made to inflight handling - specifically, allowing the server event loop to scan and resend inflights (where previously, inflights would only be engaged during connection establishment or within the client itself).
The collision occurred between three locations:
Map reads at github.com/mochi-co/mqtt/server.(*Server).ResendClientInflight() (mqtt/server/server.go:912)
Map writes at github.com/mochi-co/mqtt/server/internal/clients.(*Inflight).Delete() (server/internal/clients/clients.go:570)
Map writes at github.com/mochi-co/mqtt/server/internal/clients.(*Clients).Add() (server/internal/clients/clients.go:48)
The problem was reproducible by placing the server under heavy load with inovex/mqtt-stresser, using qos=2 for both the publisher and subscriber: mqtt-stresser -broker tcp://localhost:1883 -num-clients=200 -num-messages=100 -subscriber-qos=2 -publisher-qos=2
A patch is immediately forthcoming and will be released as v1.3.2
The text was updated successfully, but these errors were encountered:
Earlier today, @muXxer identified an issue in which the broker would crash with fatal errors, caused when the primary server routine and clients attempted to read and write from the inflight messages map simultaneously.
This is a new issue as of 1.3.0, and resulted from the changes made to inflight handling - specifically, allowing the server event loop to scan and resend inflights (where previously, inflights would only be engaged during connection establishment or within the client itself).
The collision occurred between three locations:
The problem was reproducible by placing the server under heavy load with inovex/mqtt-stresser, using qos=2 for both the publisher and subscriber:
mqtt-stresser -broker tcp://localhost:1883 -num-clients=200 -num-messages=100 -subscriber-qos=2 -publisher-qos=2
A patch is immediately forthcoming and will be released as
v1.3.2
The text was updated successfully, but these errors were encountered: