Ewen Cheslack-Postava created KAFKA-2925:
--------------------------------------------

             Summary: NullPointerException if FileStreamSinkTask is stopped 
before initialization finishes
                 Key: KAFKA-2925
                 URL: https://issues.apache.org/jira/browse/KAFKA-2925
             Project: Kafka
          Issue Type: Bug
          Components: copycat
    Affects Versions: 0.9.0.0
            Reporter: Ewen Cheslack-Postava
            Assignee: Ewen Cheslack-Postava
            Priority: Minor


If a FileStreamSinkTask is stopped too quickly after a distributed herder 
rebalances work, it can result in cleanup happening without start() ever being 
called:

{quote}
Sink task org.apache.kafka.connect.runtime.WorkerSinkTask@f9ac651 was stopped 
before completing join group. Task initialization and start is being skipped 
(org.apache.kafka.connect.runtime.WorkerSinkTask:150)
{quote}

This is actually a bit weird since stop() is still called so resources 
allocated in the constructor can be cleaned up, but possibly unexpected that 
stop() will be called without start() ever being called.

Because the code in FileStreamSinkTask's stop() method assumes start() has been 
called, it can result in a NullPointerException because it assumes the 
PrintStream is already initialized.

The easy fix is to check for nulls before closing. However, we should probably 
also consider whether the current possibly sequence of events is confusing and 
if we shoud not invoke stop() and make it clear in the SInkTask interface that 
you should only initialize stuff in the constructor that won't need any manual 
cleanup later.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to