> On Feb. 13, 2014, 10:54 p.m., Joel Koshy wrote:
> > core/src/main/scala/kafka/utils/Utils.scala, line 545
> > <https://reviews.apache.org/r/16718/diff/6/?file=484571#file484571line545>
> >
> >     Thanks for the comment. However, I still don't get it. Why are JSON 
> > strings
> >     relevant here? i.e., we are ultimately dealing with a Java regex in the
> >     TopicFilter. I'm sure your patch works (as verified by Jason), but I 
> > can't
> >     say I understand this.
> >
> 
> Joe Stein wrote:
>     It is because the regex is used from zookeeper after it is saved as JSON 
> and parsed as JSON for use. e.g. during rebalance from the 
> TopicCount.constructTopicCount
>     
>     If we set Whitelist("test-(?!bad\\b)[\\w]+") and then consume, when 
> consumer starts it has the regex correct and creates the PartitionTopicInfo 
> for the topic "test-good" which we expect (with an instantiated chunkQueue: 
> BlockingQueue[FetchedDataChunk] for the topic "test-good" and filters out the 
> "test-bad" topic properly)). 
>     
>     The regex patern is then stored in Zookeeper as JSON.  From there on the 
> regex is not correct when retrieved and as parsed.  So it is missing from the 
> partitionMap in ConsumerFetcherThread (correctly so) but it is still in the 
> topicAndPartition of processPartitionData in ConsumerFetcherThread (because 
> of this issue).  
>     
>     So you get the scenario of the ConsumerFetcherThread trying to enque 
> partitionData for the topic "test-bad" which it doesn't have an instantiated 
> chunkQueue: BlockingQueue[FetchedDataChunk] for the PartitionTopicInfo (nor 
> should it).
>

Got it - thanks for the explanation.


> On Feb. 13, 2014, 10:54 p.m., Joel Koshy wrote:
> > core/src/test/scala/unit/kafka/consumer/TopicFilterTest.scala, line 51
> > <https://reviews.apache.org/r/16718/diff/6/?file=484572#file484572line51>
> >
> >     Do we actually need this test? i.e., my thinking was that we could just 
> > add
> >     the escaped cases to the whitelist/blacklist tests above - including the
> >     specific failure case that Jason reported.
> >
> 
> Joe Stein wrote:
>     I thought it made sense since the issue was use of this function is where 
> the problem was stemming from

True - although I felt it may be clearer to (implicitly) exercise that logic 
through real whitelist/blacklist tests such as the one that was reported in the 
ticket.


- Joel


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/16718/#review34433
-----------------------------------------------------------


On Feb. 13, 2014, 8:24 p.m., Joe Stein wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/16718/
> -----------------------------------------------------------
> 
> (Updated Feb. 13, 2014, 8:24 p.m.)
> 
> 
> Review request for kafka.
> 
> 
> Bugs: KAFKA-1180
>     https://issues.apache.org/jira/browse/KAFKA-1180
> 
> 
> Repository: kafka
> 
> 
> Description
> -------
> 
> KAFKA-1180 WhiteList topic filter gets a NullPointerException on complex 
> Regex and added Blacklist test that was missing
> 
> 
> Diffs
> -----
> 
>   core/src/main/scala/kafka/consumer/TopicCount.scala 
> e33263378489f7cb5ba98476a8e6d65640130965 
>   core/src/main/scala/kafka/utils/Utils.scala 
> a89b0463685e6224d263bc9177075e1bb6b93d04 
>   core/src/test/scala/unit/kafka/consumer/TopicFilterTest.scala 
> cf2724bb68d39256f033687c25cde24c667c3d8d 
> 
> Diff: https://reviews.apache.org/r/16718/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Joe Stein
> 
>

Reply via email to