[ 
https://issues.apache.org/jira/browse/KAFKA-6999?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Guozhang Wang resolved KAFKA-6999.
----------------------------------
       Resolution: Fixed
         Assignee: Lee Dongjin
    Fix Version/s: 2.1.0

> Document read-write lock usage of caching enabled stores
> --------------------------------------------------------
>
>                 Key: KAFKA-6999
>                 URL: https://issues.apache.org/jira/browse/KAFKA-6999
>             Project: Kafka
>          Issue Type: Improvement
>          Components: streams
>            Reporter: Matthias J. Sax
>            Assignee: Lee Dongjin
>            Priority: Minor
>             Fix For: 2.1.0
>
>
> From the mailing list
> {quote}Hello again fellow Kafkans,
>  
> Yesterday we observed a production deadlock take down one of our instances. 
> Upon digging, it's clear that our usage of Kafka is the proximate cause, but 
> the danger of our approach is not clear at all just from the Javadocs.
>  
> We have stream processors that read off an incoming KStream, possibly 
> cross-reference some data from an auxiliary table via 
> ReadOnlyKeyValueStore.get()
>  
> This is done via custom logic rather than a direct KTable join because which 
> index is consulted may change depending on the shape of incoming data.
>  
> The ROKVS docs state,
>  * A key value store that only supports read operations.
>  * Implementations should be thread-safe as concurrent reads and writes
>  * are expected.
>  
> They do **not** indicate that the CachingKVS layer uses a ReadWriteLock. If 
> you have one CachingKVS flush a record cause a read from another CKVS, you 
> are suddenly vulnerable to classic lock order reversals! Surprise!
>  
> A partial stack trace highlighting the problem, with many uninteresting 
> frames removed, is inline at the bottom of this mail.
>  
> You could probably rightly point to us allowing a "observer" pattern to 
> callback from within streams processing code is dangerous. We might move this 
> off to an auxiliary thread to alleviate this problem.
>  
> But it still remains -- when you go an read that ROKVS documentation, it sure 
> doesn't prepare you to this possibility!
>  {quote}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to