zeromq / malamute

The ZeroMQ Enterprise Messaging Broker
Mozilla Public License 2.0
323 stars 77 forks source link

Calling mlm_client_set_worker during exchange can lead to missed message #281

Open diorcety opened 7 years ago

diorcety commented 7 years ago

Call mlm_client_set_worker will change the state of the client to confirming_state. If a message (stream, service, mailbox) arrived between this state change and the reply from the server, the message will not be handled (https://github.com/zeromq/malamute/blob/master/src/mlm_client_engine.inc#L853)

diorcety commented 7 years ago

Small hacky(i'm not sure it's the good way to handle that) patch: https://github.com/diorcety/malamute/commit/eae44c5d172d740984b0fb66e7b566cbf4b18b3f

malanka commented 7 years ago

Seems that you are on the right way, but this file is 100% generated. You need to make changes in the template https://github.com/zeromq/zproto/blob/master/src/zproto_client_c.gsl

diorcety commented 7 years ago

You mean src/mlm_client.xml ?