Yes, I'm using my own client following: https://cwiki.apache.org/confluence/display/KAFKA/A+Guide+To+The+Kafka+Protocol
Everything works except for this weirdness. On Tue, Jan 14, 2014 at 5:50 AM, Jun Rao <jun...@gmail.com> wrote: > So, you implemented your own consumer client using netty? > > Thanks, > > Jun > > > On Mon, Jan 13, 2014 at 8:42 AM, Gerrit Jansen van Vuuren < > gerrit...@gmail.com> wrote: > > > I'm using netty and async write, read. > > For read I used a timeout such that if I do not see anything on the read > > channel, my read function times out and returns null. > > I do not see any error on the socket, and the same socket is used > > throughout all of the fetches. > > > > I'm using the console producer and messages are "11", "22", "abc", "iiii" > > etc. > > > > I can reliably reproduce it every time. > > > > Its weird yes, no compression is used, the timeout happens for the same > > scenario every time. > > > > > > > > On Mon, Jan 13, 2014 at 4:44 PM, Jun Rao <jun...@gmail.com> wrote: > > > > > I can't seen to find the log trace for the timed out fetch request > (every > > > fetch request seems to have a corresponding completed entry). For the > > timed > > > out fetch request, is it that the broker never completed the request or > > is > > > it that it just took longer than the socket timeout to finish > processing > > > the request? Do you use large messages in your test? > > > > > > If you haven't enabled compression, it's weird that you will re-get 240 > > and > > > 241 with an offset of 242 in the fetch request. Is that easily > > > reproducible? > > > > > > Thanks, > > > > > > Jun > > > > > > > > > On Mon, Jan 13, 2014 at 1:26 AM, Gerrit Jansen van Vuuren < > > > gerrit...@gmail.com> wrote: > > > > > > > Hi, > > > > > > > > the offset in g is 240, and in i 242, the last message read was at > > offset > > > > 239. > > > > > > > > After reading from 0 - 239, I make another request for 240, this > > request > > > > timesout and never returns. > > > > I then manually add 2 entries via the console producer, all the time > > > while > > > > making a request for 240 every 10 seconds, all subsequent requests > for > > > > offset 240 returns empty messages, till the responses are written. > > Then I > > > > get the 2 messages at offsets 240,241 and an end of response. Then I > > > make a > > > > request for offset 242, and get the messages at offsets 240,241 > again. > > > > > > > > I've attached a portion of the kafka-request.log set to trace. > > > > > > > > The correlation ids are: > > > > 1389604489 - first request at offset 0 > > > > 1389604511 - timeout at offset 240 > > > > 1389604563 - got data request at offset 240 > > > > 1389604573 - got duplicates request at offset 242 > > > > > > > > Regards, > > > > Gerrit > > > > > > > > > > > > > > > > > > > > On Mon, Jan 13, 2014 at 5:10 AM, Jun Rao <jun...@gmail.com> wrote: > > > > > > > >> What's the offset used in the fetch request in steps g and i that > both > > > >> returned offsets 10 and 11? > > > >> > > > >> Thanks, > > > >> > > > >> Jun > > > >> > > > >> > > > >> On Sat, Jan 11, 2014 at 3:19 AM, Gerrit Jansen van Vuuren < > > > >> gerrit...@gmail.com> wrote: > > > >> > > > >> > Hi, > > > >> > > > > >> > > > > >> > No the offsets are not the same. I've printed out the values to > see > > > >> this, > > > >> > and its not the case. > > > >> > > > > >> > > > > >> > > > > >> > On Fri, Jan 10, 2014 at 5:02 PM, Jun Rao <jun...@gmail.com> > wrote: > > > >> > > > > >> > > Are the offset used in the 2 fetch requests the same? If so, you > > > will > > > >> get > > > >> > > the same messages twice. You consumer is responsible for > advancing > > > the > > > >> > > offsets after consumption. > > > >> > > > > > >> > > Thanks, > > > >> > > > > > >> > > Jun > > > >> > > > > > >> > > > > > >> > > On Thu, Jan 9, 2014 at 1:00 PM, Gerrit Jansen van Vuuren < > > > >> > > gerrit...@gmail.com> wrote: > > > >> > > > > > >> > > > Hi, > > > >> > > > > > > >> > > > I'm writing a custom consumer for kafka 0.8. > > > >> > > > Everything works except for the following: > > > >> > > > > > > >> > > > a. connect, send fetch, read all results > > > >> > > > b. send fetch > > > >> > > > c. send fetch > > > >> > > > d. send fetch > > > >> > > > e. via the console publisher, publish 2 messages > > > >> > > > f. send fetch :corr-id 1 > > > >> > > > g. read 2 messages published :offsets [10 11] :corr-id 1 > > > >> > > > h. send fetch :corr-id 2 > > > >> > > > i. read 2 messages published :offsets [10 11] :corr-id 2 > > > >> > > > j. send fetch ... > > > >> > > > > > > >> > > > The problem is I get the messages sent twice as a response to > > two > > > >> > > separate > > > >> > > > fetch requests. The correlation id is distinct so it cannot be > > > that > > > >> I > > > >> > > read > > > >> > > > the response twice. The offsets of the 2 messages are are the > > same > > > >> so > > > >> > > they > > > >> > > > are duplicates, and its not the producer sending the messages > > > twice. > > > >> > > > > > > >> > > > Note: the same connection is kept open the whole time, and I > > send > > > >> > > > block,receive then send again, after the first 2 messages are > > > read, > > > >> the > > > >> > > > offsets are incremented and the next fetch will ask kafka to > > give > > > it > > > >> > > > messages from the new offsets. > > > >> > > > > > > >> > > > any ideas of why kafka would be sending the messages again on > > the > > > >> > second > > > >> > > > fetch request? > > > >> > > > > > > >> > > > Regards, > > > >> > > > Gerrit > > > >> > > > > > > >> > > > > > >> > > > > >> > > > > > > > > > > > > > >