[jira] [Created] (KAFKA-9258) Connect ConnectorStatusMetricsGroup sometimes NPE

2019-12-02 Thread Cyrus Vafadari (Jira)
Cyrus Vafadari created KAFKA-9258:
-

 Summary: Connect ConnectorStatusMetricsGroup sometimes NPE
 Key: KAFKA-9258
 URL: https://issues.apache.org/jira/browse/KAFKA-9258
 Project: Kafka
  Issue Type: Bug
  Components: KafkaConnect
Reporter: Cyrus Vafadari


java.lang.NullPointerException
at 
org.apache.kafka.connect.runtime.Worker$ConnectorStatusMetricsGroup.recordTaskRemoved(Worker.java:901)
at 
org.apache.kafka.connect.runtime.Worker.awaitStopTask(Worker.java:720)
at 
org.apache.kafka.connect.runtime.Worker.awaitStopTasks(Worker.java:740)
at 
org.apache.kafka.connect.runtime.Worker.stopAndAwaitTasks(Worker.java:758)
at 
org.apache.kafka.connect.runtime.distributed.DistributedHerder.processTaskConfigUpdatesWithIncrementalCooperative(DistributedHerder.java:575)
at 
org.apache.kafka.connect.runtime.distributed.DistributedHerder.tick(DistributedHerder.java:396)
at 
org.apache.kafka.connect.runtime.distributed.DistributedHerder.run(DistributedHerder.java:282)
at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
at java.util.concurrent.FutureTask.run(FutureTask.java)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)



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


[jira] [Updated] (KAFKA-8605) Warn users when they have same connector in their plugin-path more than once

2019-08-03 Thread Cyrus Vafadari (JIRA)


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

Cyrus Vafadari updated KAFKA-8605:
--
Labels:   (was: needs-kip)

> Warn users when they have same connector in their plugin-path more than once
> 
>
> Key: KAFKA-8605
> URL: https://issues.apache.org/jira/browse/KAFKA-8605
> Project: Kafka
>  Issue Type: Improvement
>  Components: KafkaConnect
>Reporter: Cyrus Vafadari
>Priority: Major
>
> Right now it is very easy to have multiple copies of the same connector in 
> the plugin-path and not realize it.
> This can be problematic if a user is adding dependencies into the plugin, or 
> accidentally using the wrong version of the connector.
> An unintrusive improvement would be to log a warning if the same connector 
> appears in the plugin-path more than once



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Updated] (KAFKA-8749) Connect SinkTask.put(...) to specify ArrayList in Signature

2019-08-03 Thread Cyrus Vafadari (JIRA)


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

Cyrus Vafadari updated KAFKA-8749:
--
Labels: needs-kip  (was: )

> Connect SinkTask.put(...) to specify ArrayList in Signature
> ---
>
> Key: KAFKA-8749
> URL: https://issues.apache.org/jira/browse/KAFKA-8749
> Project: Kafka
>  Issue Type: Improvement
>  Components: KafkaConnect
>Reporter: Cyrus Vafadari
>Priority: Major
>  Labels: needs-kip
>
> Detailed in 
> [KIP-502|https://cwiki.apache.org/confluence/display/KAFKA/KIP-502%3A+Connect+SinkTask.put%28...%29+to+specify+ArrayList%3CSinkRecord%3E+in+Signature]
>  
> The key class in a Sink Connector is the `SinkTask` implementation. The 
> `SinkTask.put(...)` method delivers the records from the KafkaConsumer to the 
> Connector-specific code through this entrypoint, and its current abstract 
> class specifies:
> public abstract void put(Collection records);
> Usually, the implementer will use a for-each loop to iterate through the 
> records one by one and act on them. There is only one caller, WorkerSinkTask 
> which always passes an ArrayList.
> There are two shortcomings with this signature:
>  # The Connector implementation is not provide with any *ordering guarantees* 
> of Records.
>  # The decision values giving flexibility to the caller of the method over 
> the implementer of the method.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Updated] (KAFKA-8605) Warn users when they have same connector in their plugin-path more than once

2019-08-03 Thread Cyrus Vafadari (JIRA)


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

Cyrus Vafadari updated KAFKA-8605:
--
Labels: needs-kip  (was: )

> Warn users when they have same connector in their plugin-path more than once
> 
>
> Key: KAFKA-8605
> URL: https://issues.apache.org/jira/browse/KAFKA-8605
> Project: Kafka
>  Issue Type: Improvement
>  Components: KafkaConnect
>Reporter: Cyrus Vafadari
>Priority: Major
>  Labels: needs-kip
>
> Right now it is very easy to have multiple copies of the same connector in 
> the plugin-path and not realize it.
> This can be problematic if a user is adding dependencies into the plugin, or 
> accidentally using the wrong version of the connector.
> An unintrusive improvement would be to log a warning if the same connector 
> appears in the plugin-path more than once



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Updated] (KAFKA-8749) Connect SinkTask.put(...) to specify ArrayList in Signature

2019-08-03 Thread Cyrus Vafadari (JIRA)


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

Cyrus Vafadari updated KAFKA-8749:
--
Description: 
 

[

Detailed in KIP-502

 

 

|https://cwiki.apache.org/confluence/display/KAFKA/KIP-502%3A+Connect+SinkTask.put%28...%29+to+specify+ArrayList%3CSinkRecord%3E+in+Signature]

The key class in a Sink Connector is the `SinkTask` implementation. The 
`SinkTask.put(...)` method delivers the records from the KafkaConsumer to the 
Connector-specific code through this entrypoint, and its current abstract class 
specifies:

public abstract void put(Collection records);

Usually, the implementer will use a for-each loop to iterate through the 
records one by one and act on them. There is only one caller, WorkerSinkTask 
which always passes an ArrayList.

There are two shortcomings with this signature:
 # The Connector implementation is not provide with any *ordering guarantees* 
of Records.
 # The decision values giving flexibility to the caller of the method over the 
implementer of the method.

  was:
Detailed in KIP-502

The key class in a Sink Connector is the `SinkTask` implementation. The 
`SinkTask.put(...)` method delivers the records from the KafkaConsumer to the 
Connector-specific code through this entrypoint, and its current abstract class 
specifies:

public abstract void put(Collection records);

Usually, the implementer will use a for-each loop to iterate through the 
records one by one and act on them. There is only one caller, WorkerSinkTask 
which always passes an ArrayList.

There are two shortcomings with this signature:
 # The Connector implementation is not provide with any *ordering guarantees* 
of Records.
 # The decision values giving flexibility to the caller of the method over the 
implementer of the method.


> Connect SinkTask.put(...) to specify ArrayList in Signature
> ---
>
> Key: KAFKA-8749
> URL: https://issues.apache.org/jira/browse/KAFKA-8749
> Project: Kafka
>  Issue Type: Improvement
>  Components: KafkaConnect
>Reporter: Cyrus Vafadari
>Priority: Major
>
>  
> [
> Detailed in KIP-502
>  
>  
> |https://cwiki.apache.org/confluence/display/KAFKA/KIP-502%3A+Connect+SinkTask.put%28...%29+to+specify+ArrayList%3CSinkRecord%3E+in+Signature]
> The key class in a Sink Connector is the `SinkTask` implementation. The 
> `SinkTask.put(...)` method delivers the records from the KafkaConsumer to the 
> Connector-specific code through this entrypoint, and its current abstract 
> class specifies:
> public abstract void put(Collection records);
> Usually, the implementer will use a for-each loop to iterate through the 
> records one by one and act on them. There is only one caller, WorkerSinkTask 
> which always passes an ArrayList.
> There are two shortcomings with this signature:
>  # The Connector implementation is not provide with any *ordering guarantees* 
> of Records.
>  # The decision values giving flexibility to the caller of the method over 
> the implementer of the method.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Updated] (KAFKA-8749) Connect SinkTask.put(...) to specify ArrayList in Signature

2019-08-03 Thread Cyrus Vafadari (JIRA)


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

Cyrus Vafadari updated KAFKA-8749:
--
Description: 
Detailed in 
[KIP-502|https://cwiki.apache.org/confluence/display/KAFKA/KIP-502%3A+Connect+SinkTask.put%28...%29+to+specify+ArrayList%3CSinkRecord%3E+in+Signature]
 
The key class in a Sink Connector is the `SinkTask` implementation. The 
`SinkTask.put(...)` method delivers the records from the KafkaConsumer to the 
Connector-specific code through this entrypoint, and its current abstract class 
specifies:

public abstract void put(Collection records);

Usually, the implementer will use a for-each loop to iterate through the 
records one by one and act on them. There is only one caller, WorkerSinkTask 
which always passes an ArrayList.

There are two shortcomings with this signature:
 # The Connector implementation is not provide with any *ordering guarantees* 
of Records.
 # The decision values giving flexibility to the caller of the method over the 
implementer of the method.

  was:
 

[

Detailed in KIP-502

 

 

|https://cwiki.apache.org/confluence/display/KAFKA/KIP-502%3A+Connect+SinkTask.put%28...%29+to+specify+ArrayList%3CSinkRecord%3E+in+Signature]

The key class in a Sink Connector is the `SinkTask` implementation. The 
`SinkTask.put(...)` method delivers the records from the KafkaConsumer to the 
Connector-specific code through this entrypoint, and its current abstract class 
specifies:

public abstract void put(Collection records);

Usually, the implementer will use a for-each loop to iterate through the 
records one by one and act on them. There is only one caller, WorkerSinkTask 
which always passes an ArrayList.

There are two shortcomings with this signature:
 # The Connector implementation is not provide with any *ordering guarantees* 
of Records.
 # The decision values giving flexibility to the caller of the method over the 
implementer of the method.


> Connect SinkTask.put(...) to specify ArrayList in Signature
> ---
>
> Key: KAFKA-8749
> URL: https://issues.apache.org/jira/browse/KAFKA-8749
> Project: Kafka
>  Issue Type: Improvement
>  Components: KafkaConnect
>Reporter: Cyrus Vafadari
>Priority: Major
>
> Detailed in 
> [KIP-502|https://cwiki.apache.org/confluence/display/KAFKA/KIP-502%3A+Connect+SinkTask.put%28...%29+to+specify+ArrayList%3CSinkRecord%3E+in+Signature]
>  
> The key class in a Sink Connector is the `SinkTask` implementation. The 
> `SinkTask.put(...)` method delivers the records from the KafkaConsumer to the 
> Connector-specific code through this entrypoint, and its current abstract 
> class specifies:
> public abstract void put(Collection records);
> Usually, the implementer will use a for-each loop to iterate through the 
> records one by one and act on them. There is only one caller, WorkerSinkTask 
> which always passes an ArrayList.
> There are two shortcomings with this signature:
>  # The Connector implementation is not provide with any *ordering guarantees* 
> of Records.
>  # The decision values giving flexibility to the caller of the method over 
> the implementer of the method.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Created] (KAFKA-8749) Connect SinkTask.put(...) to specify ArrayList in Signature

2019-08-03 Thread Cyrus Vafadari (JIRA)
Cyrus Vafadari created KAFKA-8749:
-

 Summary: Connect SinkTask.put(...) to specify 
ArrayList in Signature
 Key: KAFKA-8749
 URL: https://issues.apache.org/jira/browse/KAFKA-8749
 Project: Kafka
  Issue Type: Improvement
  Components: KafkaConnect
Reporter: Cyrus Vafadari


Detailed in KIP-502

The key class in a Sink Connector is the `SinkTask` implementation. The 
`SinkTask.put(...)` method delivers the records from the KafkaConsumer to the 
Connector-specific code through this entrypoint, and its current abstract class 
specifies:

public abstract void put(Collection records);

Usually, the implementer will use a for-each loop to iterate through the 
records one by one and act on them. There is only one caller, WorkerSinkTask 
which always passes an ArrayList.

There are two shortcomings with this signature:
 # The Connector implementation is not provide with any *ordering guarantees* 
of Records.
 # The decision values giving flexibility to the caller of the method over the 
implementer of the method.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Updated] (KAFKA-8694) Connect REST Endpoint for Transformations (SMTs) and other Plugins

2019-07-23 Thread Cyrus Vafadari (JIRA)


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

Cyrus Vafadari updated KAFKA-8694:
--
Description: 
[KIP-494|https://cwiki.apache.org/confluence/display/KAFKA/KIP-494%3A+Connect+REST+Endpoint+for+Transformations+%28SMTs%29+and+other+Plugins]
 Proposes to add REST endpoints to Connect workers to enable them to return 
plugins of all types, not just Connector Plugins, as implemented currently by 
ConnectorPluginsResource.

This will be an update to the REST API of the Connect Worker.

  was:KIP-494 Proposes to add REST endpoints to Connect workers to enable them 
to return plugins of all types, not just Connector Plugins, as implemented 
currently by ConnectorPluginsResource


> Connect REST Endpoint for Transformations (SMTs) and other Plugins
> --
>
> Key: KAFKA-8694
> URL: https://issues.apache.org/jira/browse/KAFKA-8694
> Project: Kafka
>  Issue Type: Improvement
>  Components: KafkaConnect
>Reporter: Cyrus Vafadari
>Priority: Major
>  Labels: needs-kip
>
> [KIP-494|https://cwiki.apache.org/confluence/display/KAFKA/KIP-494%3A+Connect+REST+Endpoint+for+Transformations+%28SMTs%29+and+other+Plugins]
>  Proposes to add REST endpoints to Connect workers to enable them to return 
> plugins of all types, not just Connector Plugins, as implemented currently by 
> ConnectorPluginsResource.
> This will be an update to the REST API of the Connect Worker.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Commented] (KAFKA-8694) Connect REST Endpoint for Transformations (SMTs) and other Plugins

2019-07-23 Thread Cyrus Vafadari (JIRA)


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

Cyrus Vafadari commented on KAFKA-8694:
---

[~kkonstantine], these aren't the same improvement: KAFKA-5012 is about 
indexing plugins within the connect worker, and this ticket KAFKA-8694 is about 
REST APIs and updating REST API to support more types of plugin than just 
Connector type. I will update the description in this ticket to have more 
information and a link to the KIP

However, I do now see that KAFKA-5012 does trivialize KAFKA-8605, which is a 
very simple corollary.

> Connect REST Endpoint for Transformations (SMTs) and other Plugins
> --
>
> Key: KAFKA-8694
> URL: https://issues.apache.org/jira/browse/KAFKA-8694
> Project: Kafka
>  Issue Type: Improvement
>  Components: KafkaConnect
>Reporter: Cyrus Vafadari
>Priority: Major
>  Labels: needs-kip
>
> KIP-494 Proposes to add REST endpoints to Connect workers to enable them to 
> return plugins of all types, not just Connector Plugins, as implemented 
> currently by ConnectorPluginsResource



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Created] (KAFKA-8694) Connect REST Endpoint for Transformations (SMTs) and other Plugins

2019-07-20 Thread Cyrus Vafadari (JIRA)
Cyrus Vafadari created KAFKA-8694:
-

 Summary: Connect REST Endpoint for Transformations (SMTs) and 
other Plugins
 Key: KAFKA-8694
 URL: https://issues.apache.org/jira/browse/KAFKA-8694
 Project: Kafka
  Issue Type: Improvement
  Components: KafkaConnect
Reporter: Cyrus Vafadari


KIP-494 Proposes to add REST endpoints to Connect workers to enable them to 
return plugins of all types, not just Connector Plugins, as implemented 
currently by ConnectorPluginsResource



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Created] (KAFKA-8605) Warn users when they have same connector in their plugin-path more than once

2019-06-26 Thread Cyrus Vafadari (JIRA)
Cyrus Vafadari created KAFKA-8605:
-

 Summary: Warn users when they have same connector in their 
plugin-path more than once
 Key: KAFKA-8605
 URL: https://issues.apache.org/jira/browse/KAFKA-8605
 Project: Kafka
  Issue Type: Improvement
  Components: KafkaConnect
Reporter: Cyrus Vafadari


Right now it is very easy to have multiple copies of the same connector in the 
plugin-path and not realize it.

This can be problematic if a user is adding dependencies into the plugin, or 
accidentally using the wrong version of the connector.

An unintrusive improvement would be to log a warning if the same connector 
appears in the plugin-path more than once



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


[jira] [Updated] (KAFKA-8447) New Metric to Measure Number of Tasks on a Connector

2019-05-30 Thread Cyrus Vafadari (JIRA)


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

Cyrus Vafadari updated KAFKA-8447:
--
Summary: New Metric to Measure Number of Tasks on a Connector  (was: Add 
Connector-level metric to count tasks)

> New Metric to Measure Number of Tasks on a Connector
> 
>
> Key: KAFKA-8447
> URL: https://issues.apache.org/jira/browse/KAFKA-8447
> Project: Kafka
>  Issue Type: New Feature
>Reporter: Cyrus Vafadari
>Priority: Major
>
> KIP-475
> Worker-level metrics expose number of tasks on a worker, but for many 
> applications it is useful to have metrics on how many tasks each connector 
> has.



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


[jira] [Created] (KAFKA-8447) Add Connector-level metric to count tasks

2019-05-29 Thread Cyrus Vafadari (JIRA)
Cyrus Vafadari created KAFKA-8447:
-

 Summary: Add Connector-level metric to count tasks
 Key: KAFKA-8447
 URL: https://issues.apache.org/jira/browse/KAFKA-8447
 Project: Kafka
  Issue Type: New Feature
Reporter: Cyrus Vafadari


KIP-475

Worker-level metrics expose number of tasks on a worker, but for many 
applications it is useful to have metrics on how many tasks each connector has.



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


[jira] [Commented] (KAFKA-6788) Grouping consumer requests per consumer coordinator in admin client

2018-07-02 Thread Cyrus Vafadari (JIRA)


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

Cyrus Vafadari commented on KAFKA-6788:
---

[~guozhang] I abandoned it a while ago when it didn't get attention, so haven't 
actively worked on it in a while. I think if the code is moving towards using 
futures/promise it might be better to start from scratch. If you like this 
strategy though I'll fix merge conflicts and reopen the PR

> Grouping consumer requests per consumer coordinator in admin client
> ---
>
> Key: KAFKA-6788
> URL: https://issues.apache.org/jira/browse/KAFKA-6788
> Project: Kafka
>  Issue Type: Improvement
>  Components: admin
>Reporter: Guozhang Wang
>Assignee: Yishun Guan
>Priority: Major
>  Labels: newbie++
>
> In KafkaAdminClient, for some requests like describeGroup and deleteGroup, we 
> will first try to get the coordinator for each requested group id, and then 
> send the corresponding request for that group id. However, different group 
> ids could be hosted on the same coordinator, and these requests do support 
> multi group ids be sent within the same request. So we can consider optimize 
> it by grouping the requests per coordinator destination.



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