[ https://issues.apache.org/jira/browse/KAFKA-353?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Joel Koshy updated KAFKA-353: ----------------------------- Attachment: kafka-353_v3.patch Thanks for catch-21 :) Fixed that - (note that requiredAcks cannot be 0 in isSatisfied.) For 22, turned out to be due to inconsistent default values for the producer config. Test passes now. Re: Jay's comment. It is true that the requests that collectSatisfied returns will not go through expiration (by virtue of the satisfied guard). The issue is that the client needs to be aware that the call to expire and checkSatisfied can be simultaneous and so may need to synchronize on data structures that their implementations may access. So we can either synchronize on the purgatory or clearly document this. Personally, I'm leaning toward fixing it in purgatory because: - if checkSatisfied is called (and it will return true), it seems we should consider the deadline to have been met (although this is not clear cut) so expiration should not proceed. - it makes the purgatory a little harder to use as the client needs to be aware of the race condition. > tie producer-side ack with high watermark and progress of replicas > ------------------------------------------------------------------ > > Key: KAFKA-353 > URL: https://issues.apache.org/jira/browse/KAFKA-353 > Project: Kafka > Issue Type: Sub-task > Affects Versions: 0.8 > Reporter: Jun Rao > Assignee: Joel Koshy > Attachments: kafka-353_v1.patch, kafka-353_v2.patch, > kafka-353_v2_to_v3.patch, kafka-353_v3.patch > > -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira