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
Due to bad timing it can happen that the Welcome Message from the Core is never received on the Adapter.
During the handshake, a hello message is send from the adapter to the core, containing an address where the core should deliver the welcome message to ("welcome topic"). Prior to sending this hello message, the adapter also issues a subsciption to the welcome topic.
While tcp guarantees that messages arrive in order, the welcome topic subscription and hello message are subject to different tcp connections, so there is no guarantee in which order they arrive, nor how they are proccessed by the cores zmq.
If the hello message is processed and answered by the core by publising the welcome message to the welcome topic before the welcome topic subscription is processed, the message is not delivered to the adapter.
Possible workadrounds are to add an adapterside delay between subscribing to the welcome topic and publishing the hello message or to disable Nagle's algorithm (setting TCP_NODELAY). Both are suboptimal since waiting is never a good idea (how long should we actually wait?) and disabeling Nagle can spam the network with loads of small tcp packages, creating a massiv overhead.
A suggested coreside fix is using the SubscriptionTracker, to wait until there are subscribers on the welcome topic before publising to it.
The text was updated successfully, but these errors were encountered:
Due to bad timing it can happen that the Welcome Message from the Core is never received on the Adapter.
During the handshake, a hello message is send from the adapter to the core, containing an address where the core should deliver the welcome message to ("welcome topic"). Prior to sending this hello message, the adapter also issues a subsciption to the welcome topic.
While tcp guarantees that messages arrive in order, the welcome topic subscription and hello message are subject to different tcp connections, so there is no guarantee in which order they arrive, nor how they are proccessed by the cores zmq.
If the hello message is processed and answered by the core by publising the welcome message to the welcome topic before the welcome topic subscription is processed, the message is not delivered to the adapter.
Possible workadrounds are to add an adapterside delay between subscribing to the welcome topic and publishing the hello message or to disable Nagle's algorithm (setting TCP_NODELAY). Both are suboptimal since waiting is never a good idea (how long should we actually wait?) and disabeling Nagle can spam the network with loads of small tcp packages, creating a massiv overhead.
A suggested coreside fix is using the
SubscriptionTracker
, to wait until there are subscribers on the welcome topic before publising to it.The text was updated successfully, but these errors were encountered: