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
Since no log come out from client when my problem appear even with sarama.Logger = log.New(os.Stdout, "[sarama] ", log.LstdFlags) I added spew to see what response i get from broker. For sake of simplicity I only watch partition 7
I am consuming a topic which producer are java stream API using exactly_once sementic.
At some point my consumer using sarama-cluster block on an offset. There is no log in the console, there is no message coming from the chanel returned by Messages().
Basically nothing happen from client library user point of view.
It block on very differents offset foreach partition.
Reconsuming from start end up blocking on the exact same offsets.
I looked a bit inside the library and made a custom log on func (b *Broker) Fetch(request *FetchRequest) (*FetchResponse, error) to see what is happening.
For sake of simplicity i focus on only one partition.
Turn out my client constantly request for offset 46508 and received a response containing a control record.
A bit further in func (child *partitionConsumer) parseResponse(response *FetchResponse) ([]*ConsumerMessage, error)
I see that when receiving what is considered as a control record, the child offset is not incremented.
Not intended as a PR, just to show basically what i am talking about, here is a quick fix that solve my current situation: ricardo-ch@525bef5
The text was updated successfully, but these errors were encountered:
Versions
Sarama Version: 3c763ff
Kafka Version: Client V1_0_0_0 , Server 0.11.0.0
Go Version: 1.10
Configuration
Logs
Since no log come out from client when my problem appear even with
sarama.Logger = log.New(os.Stdout, "[sarama] ", log.LstdFlags)
I added spew to see what response i get from broker. For sake of simplicity I only watch partition 7When my problem happen I get a loop of this:
Problem Description
I am consuming a topic which producer are java stream API using
exactly_once
sementic.At some point my consumer using sarama-cluster block on an offset. There is no log in the console, there is no message coming from the chanel returned by
Messages()
.Basically nothing happen from client library user point of view.
It block on very differents offset foreach partition.
Reconsuming from start end up blocking on the exact same offsets.
I looked a bit inside the library and made a custom log on
func (b *Broker) Fetch(request *FetchRequest) (*FetchResponse, error)
to see what is happening.For sake of simplicity i focus on only one partition.
Turn out my client constantly request for offset 46508 and received a response containing a control record.
A bit further in
func (child *partitionConsumer) parseResponse(response *FetchResponse) ([]*ConsumerMessage, error)
I see that when receiving what is considered as a control record, the child offset is not incremented.
Not intended as a PR, just to show basically what i am talking about, here is a quick fix that solve my current situation:
ricardo-ch@525bef5
The text was updated successfully, but these errors were encountered: