c'mon, this is so stupid... thanks man very much, this was actually the problem! Kudos for finding the culprit!
On Wednesday, August 15, 2018 at 12:44:20 AM UTC+3, Justin Israel wrote: > > > > On Wed, Aug 15, 2018 at 9:33 AM Sotirios Mantziaris <[email protected] > <javascript:>> wrote: > >> I can see over the wire that i get messages from the server with >> Basic.Delivery. >> The messages do not pop up out of the channel that channel.Consume >> returns when creating the connection. >> I might read some where that channels do not play well with threads. I >> wonder if it is the same with goroutines, because i get the messages one >> one goroutine, send it to another via a channel where the messages get Ack >> or Nack. >> >> You said that your application has a similar pattern. Is the channel and >> Ack, Nack on the same goroutine? do you have code that i can look into? >> > > My application is internal at work, so I can't share it. But I took a look > at your code and I think this might be your problem: > > https://github.com/mantzas/patron/blob/amqp-lock/async/amqp/amqp.go#L119 > > You are only selecting once on the delivery channel, without a for loop. > So you pull one message and your goroutine exits and never delivers another > message. > > You should be fine sharing the messages between goroutines. All that > matters is that the message acks itself back with the tag you set. > > >> >> On Wednesday, August 15, 2018 at 12:24:18 AM UTC+3, Justin Israel wrote: >> >>> >>> >>> On Wed, Aug 15, 2018 at 8:05 AM Sotirios Mantziaris <[email protected]> >>> wrote: >>> >>>> I have actually opened a thread in the rabbitmq-users list where i >>>> checked through wireshark what goes over the wire. It is actually pretty >>>> nice to see the flow. >>>> I have cross posted since i did not know if it is rabbitmq or my go >>>> code... >>>> it seems that i get the next message from the wire but the code does >>>> not get it at all... >>>> >>> >>> If I am reading that properly, you are saying that your message handler >>> is not actually getting triggered at all for subsequent messages? That >>> would mean you have some kind of blocking problem in your goroutines and >>> channels. I thought initially you were saying that you verified the handler >>> was constantly receiving messages and calling ack() but the ack never makes >>> it back to Rabbitmq >>> >>> >>>> On Tuesday, August 14, 2018 at 10:59:15 PM UTC+3, Justin Israel wrote: >>>>> >>>>> >>>>> >>>>> On Wed, Aug 15, 2018, 2:14 AM Sotirios Mantziaris <[email protected]> >>>>> wrote: >>>>> >>>>>> hi, >>>>>> >>>>>> i have setup a "consumer" for a rabbitmq queue. Every delivery is put >>>>>> in a channel which is picked up by a goroutine. >>>>>> After processing the delivery is then Ack or Nack based on the >>>>>> success of the processing. >>>>>> It seems that the first one is processed ok but the rest cannot be >>>>>> Ack/Nack. >>>>>> The ui of rabbitmq shows every message in a unacked state, which >>>>>> probably means that the consumer gets the message from the queue but >>>>>> something prevents it for being put in the above mentioned channel. >>>>>> >>>>>> The consume part of the queue can be found here : >>>>>> https://github.com/mantzas/patron/blob/amqp-lock/async/amqp/amqp.go >>>>>> The processing goroutine can be found here: >>>>>> https://github.com/mantzas/patron/blob/amqp-lock/async/component.go >>>>>> >>>>>> Does anybody have a idea? >>>>>> >>>>> >>>>> I have an application with a similar pattern where is manually acks >>>>> each message after the processing succeeds. So I can check your logic >>>>> against mine. In the meantime, can you clarify if you confirmed that >>>>> processing always happens locally and the ack does get called every time, >>>>> but you are just not seeing it deliver the ack to Rabbitmq? >>>>> >>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "golang-nuts" group. >>>>>> >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>>> an email to [email protected]. >>>>> >>>>> >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "golang-nuts" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> -- >> You received this message because you are subscribed to the Google Groups >> "golang-nuts" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
