[ 
https://issues.apache.org/jira/browse/KAFKA-4996?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17142592#comment-17142592
 ] 

Sophie Blee-Goldman commented on KAFKA-4996:
--------------------------------------------

Took a quick look at removing the spotBugs rule exclusions, and we get failures 
on
 # InternalTopologyBuilder.applicationId  – this should be fine, as we set this 
once at the beginning before we start up any other threads
 # StreamsMetadataState.localMetadata  – I think this is actually not 
threadsafe, but should be? Seems like we synchronize on setting it, but expose 
it through a public API with no synchronization
 # CachingWindowStore.maxObservedTimestamp – this also seems potentially 
problematic, we only update it in the synchronized #put method but it is used 
during #fetch methods which can be called from other IQ threads right?

Anyways, we had this multithread warning in the excluded rules for pretty much 
every package in Streams, which is definitely "not good"

> Fix findbugs multithreaded correctness warnings for streams
> -----------------------------------------------------------
>
>                 Key: KAFKA-4996
>                 URL: https://issues.apache.org/jira/browse/KAFKA-4996
>             Project: Kafka
>          Issue Type: Bug
>          Components: streams
>            Reporter: Colin McCabe
>            Priority: Major
>              Labels: newbie
>
> Fix findbugs multithreaded correctness warnings for streams
> {code}
> Multithreaded correctness Warnings                                            
>                                                                               
>                                                                               
>                                                 
>                                                                               
>                                                                               
>                                                                               
>                                                 
>    Code Warning                                                               
>                                                                               
>                                                                               
>                                                 
>    AT   Sequence of calls to java.util.concurrent.ConcurrentHashMap may not 
> be atomic in 
> org.apache.kafka.streams.state.internals.Segments.getOrCreateSegment(long, 
> ProcessorContext)                                                             
>                                         
>    IS   Inconsistent synchronization of 
> org.apache.kafka.streams.KafkaStreams.stateListener; locked 66% of time       
>                                                                               
>                                                                               
>         
>    IS   Inconsistent synchronization of 
> org.apache.kafka.streams.processor.internals.StreamThread.stateListener; 
> locked 66% of time                                                            
>                                                                               
>              
>    IS   Inconsistent synchronization of 
> org.apache.kafka.streams.processor.TopologyBuilder.applicationId; locked 50% 
> of time                                                                       
>                                                                               
>          
>    IS   Inconsistent synchronization of 
> org.apache.kafka.streams.state.internals.CachingKeyValueStore.context; locked 
> 66% of time                                                                   
>                                                                               
>         
>    IS   Inconsistent synchronization of 
> org.apache.kafka.streams.state.internals.CachingWindowStore.cache; locked 60% 
> of time                                                                       
>                                                                               
>         
>    IS   Inconsistent synchronization of 
> org.apache.kafka.streams.state.internals.CachingWindowStore.context; locked 
> 66% of time                                                                   
>                                                                               
>           
>    IS   Inconsistent synchronization of 
> org.apache.kafka.streams.state.internals.CachingWindowStore.name; locked 60% 
> of time                                                                       
>                                                                               
>          
>    IS   Inconsistent synchronization of 
> org.apache.kafka.streams.state.internals.CachingWindowStore.serdes; locked 
> 70% of time                                                                   
>                                                                               
>            
>    IS   Inconsistent synchronization of 
> org.apache.kafka.streams.state.internals.RocksDBStore.db; locked 63% of time  
>                                                                               
>                                                                               
>         
>    IS   Inconsistent synchronization of 
> org.apache.kafka.streams.state.internals.RocksDBStore.serdes; locked 76% of 
> time                                                                          
>                                                                               
>           
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to