Commit Graph

7577 Commits

Author SHA1 Message Date
avalsa 99115cba00
KAFKA-9561: Update task input partitions after rebalance (#8221)
Co-authored-by: Vyacheslav Stepanenko <vstepanenko@aligntech.com>
Co-authored-by: Guozhang Wang <wangguoz@gmail.com>

Reviewers: Boyang Chen <boyang@confluent.io>, Guozhang Wang <wangguoz@gmail.com>
2020-05-27 10:40:41 -07:00
dengziming 33c8774ace
KAFKA-9353; Add groupInstanceId to DescribeGroup for better visibility (#7886)
Kafka-8538(#6957) has already added `group.instance.id` to `MemberDescription` but didn't print it in the describe group output, so this patch adds the logic to do so.

Before the change, the describe command prints as follows:
```
GROUP           CONSUMER-ID                                                  HOST            CLIENT-ID               #PARTITIONS     
DemoConsumer    consumer-DemoConsumer-2-89251f12-f0ae-4dc1-a118-bda49f2a6e86 /127.0.0.1      consumer-DemoConsumer-2 0               
DemoConsumer    consumer-DemoConsumer-1-72221c6b-f3d9-4c68-96db-ffffa12ddf93 /127.0.0.1      consumer-DemoConsumer-1 1               
```

After the change, the describe command prints as follows:
```
GROUP           CONSUMER-ID                                    GROUP-INSTANCE-ID HOST            CLIENT-ID                       #PARTITIONS     
DemoConsumer    groupIns2-f050379c-9c0d-433c-bbe0-44de6177b60d groupIns2         /127.0.0.1      consumer-DemoConsumer-groupIns2 0               
DemoConsumer    groupIns1-44805ba9-ae6f-49d3-89af-44a4b95aff8d groupIns1         /127.0.0.1      consumer-DemoConsumer-groupIns1 1                        
```

If all the `GROUP-INSTANCE-ID` is null, just as the previous:
```
GROUP           CONSUMER-ID                                                  HOST            CLIENT-ID               #PARTITIONS     
DemoConsumer    consumer-DemoConsumer-2-89251f12-f0ae-4dc1-a118-bda49f2a6e86 /127.0.0.1      consumer-DemoConsumer-2 0               
DemoConsumer    consumer-DemoConsumer-1-72221c6b-f3d9-4c68-96db-ffffa12ddf93 /127.0.0.1      consumer-DemoConsumer-1 1               
```

Reviewers: Alice <WheresAlice@users.noreply.github.com>, Matthias J. Sax <matthias@confluent.io>, Boyang Chen <boyang@confluent.io>, Jason Gustafson <jason@confluent.io>
2020-05-27 09:06:00 -07:00
Ismael Juma ac3043cff0
MINOR: Remove unused `Json.legacyEncodeAsString` (#8726)
Updated a couple of test usages not to rely on it and removed
the tests for the removed method.

Reviewers: Manikumar Reddy <manikumar.reddy@gmail.com>
2020-05-27 05:50:58 -07:00
Konstantine Karantasis 371f14c3c1
KAFKA-5295: Allow source connectors to specify topic-specific settings for new topics (KIP-158) (#8722)
Kafka Connect workers have been able to create Connect's internal topics using the new admin client for some time now (see KAFKA-4667 for details). However, tasks of source connectors are still relying upon the broker to auto-create topics with default config settings if they don't exist, or expect these topics to exist before the connector is deployed, if their configuration needs to be specialized. 

With the implementation of KIP-158 here, if `topic.creation.enable=true`, Kafka Connect will supply the source tasks of connectors that are configured to create topics with an admin client that will allow them to create new topics on-the-fly before writing the first source records to a new topic. Additionally, each source connector has the opportunity to customize the topic-specific settings of these new topics by defining groups of topic configurations. 

This feature is tested here via unit tests (old tests that have been adjusted and new ones) as well as integration tests.

Reviewers: Randall Hauch <rhauch@gmail.com>
2020-05-26 22:07:34 -07:00
Navinder Pal Singh Brar 4b97e50eea
MINOR: Added doc for KIP-535 and updated it for KIP-562 (#8395)
Reviewers: Boyang Chen <boyang@confluent.io>, Vinoth Chandar <vchandar@confluent.io>, Matthias J. Sax <matthias@confluent.io>
2020-05-26 16:24:00 -07:00
Jason Gustafson c95b45d04f
MINOR: Add reason to log message when incrementing the log start offset (#8701)
Sometimes logging leaves us guessing at the cause of an increment to the log start offset. Since this results in deletion of user data, we should provide the reason explicitly.

Reviewers: Chia-Ping Tsai <chia7712@gmail.com>, Ismael Juma <ismael@juma.me.uk>
2020-05-26 13:52:19 -07:00
Lucas Bradstreet c6adcca95f
MINOR: avoid unnecessary list iteration in ApiVersion.lastVersion (#8708)
We unnecessarily iterate the versions list each time we lookup
lastVersion, including in the hotpath Log.appendAsFollower.
Given that allVersions is a constant, this is unnecessary.

Reviewers: Chia-Ping Tsai <chia7712@gmail.com>, Ismael Juma <ismael@juma.me.uk>
2020-05-25 21:51:14 -07:00
Chris Egerton de6468ae59
KAFKA-9472: Remove deleted Connect tasks from status store (#8118)
Although the statuses for tasks are removed from the status store when their connector is deleted, their statuses are not removed when only the task is deleted, which happens in the case that the number of tasks for a connector is reduced.

This commit adds logic for deleting the statuses for those tasks from the status store whenever a rebalance has completed and the leader of a distributed cluster has detected that there are recently-deleted tasks. Standalone is also updated to accomplish this.

Unit tests for the `DistributedHerder` and `StandaloneHerder` classes are updated and an integration test has been added.

Reviewers: Nigel Liang <nigel@nigelliang.com>, Konstantine Karantasis <konstantine@confluent.io>
2020-05-25 09:10:03 -07:00
Florian Hussonnois 3818770d7f
KAFKA-4794: Add access to OffsetStorageReader from SourceConnector (#2604)
Added access to OffsetStorageReader from SourceConnector per KIP-131. 

Added two interfaces SinkConnectorContext/SourceConnectContext that extend ConnectorContext in order to expose an OffsetStorageReader instance.

Added unit tests for Connector, SinkConnector and SourceConnector default methods

Author: Florian Hussonnois <florian.hussonnois@gmail.com>, Randall Hauch <rhauch@gmail.com>
Reviewers: Randall Hauch <rhauch@gmail.com>, Konstantine Karantasis <konstantine@confluent.io>
2020-05-24 20:09:54 -05:00
阿洋 45383f75b3
KAFKA-10022:console-producer supports the setting of client.id (#8698)
"console-producer" supports the setting of "client.id", which is a reasonable requirement, and the way "console consumer" and "console producer" handle "client.id" can be unified. "client.id" defaults to "console-producer"

Co-authored-by: xinzhuxiansheng <xinzhuxiansheng@autohome.com.cn>

Reviewers: Guozhang Wang <wangguoz@gmail.com>
2020-05-24 17:10:43 -07:00
Ismael Juma 5302efb2d1
MINOR: Improve broker registration and Log logging (#8714)
Broker registration previously:

> INFO Registered broker 0 at path /brokers/ids/0 with addresses: ArraySeq(EndPoint(localhost,9092,ListenerName(PLAINTEXT),PLAINTEXT),EndPoint(localhost,9093,ListenerName(SSL),SSL)), czxid (broker epoch):
4294967320 (kafka.zk.KafkaZkClient)

Now:

> INFO Registered broker 0 at path /brokers/ids/0 with addresses: PLAINTEXT://localhost:9092,SSL://localhost:9093, czxid (broker epoch):
4294967320 (kafka.zk.KafkaZkClient)

The second improvement is to avoid logging messages like:

> "Deleting segments List()"

Reviewers: Manikumar Reddy <manikumar.reddy@gmail.com>
2020-05-24 09:35:24 -07:00
Valeria 9aeb78b990
KAFKA-6755: Allow literal value for MaskField SMT (#6284)
Implemented KIP-437 by adding a new optional configuration property for the `MaskField` transformation that allows users to define a replacement literal for specific fields in matching records.

Author: Valeria Vasylieva <valeria.vasylieva@gmail.com>
Reviewer: Randall Hauch <rhauch@gmail.com>
2020-05-24 09:22:40 -05:00
Chris Egerton 85ed123ac6
KAFKA-9767: Add logging to basic auth rest extension (#8357)
Add logging to basic auth rest extension.

Author: Chris Egerton <chrise@confluent.io>
Reviewers: Magesh Nandakumar <magesh.n.kumar@gmail.com>, Randall Hauch <rhauch@gmail.com>
2020-05-24 09:09:40 -05:00
Jeff Huang 2988eac082
KAFKA-9944: Added supporting customized HTTP response headers for Kafka Connect. (#8620)
Added support for customizing the HTTP response headers for Kafka Connect as described in KIP-577.

Author: Jeff Huang <jeff.huang@confluent.io>
Reviewer: Randall Hauch <rhauch@gmail.com>
2020-05-24 08:56:27 -05:00
Chris Egerton 40ee580ed2
KAFKA-9888: Copy connector configs before passing to REST extensions (#8511)
The changes made in KIP-454 involved adding a `connectorConfig` method to the ConnectClusterState interface that REST extensions could use to query the worker for the configuration of a given connector. The implementation for this method returns the Java `Map` that's stored in the worker's view of the config topic (when running in distributed mode). No copying is performed, which causes mutations of that `Map` to persist across invocations of `connectorConfig` and, even worse, propagate to the worker when, e.g., starting a connector.

In this commit the map is copied before it's returned to REST extensions.

An existing unit test is modified to ensure that REST extensions receive a copy of the connector config, not the original.

Reviewers: Nigel Liang <nigel@nigelliang.com>, Konstantine Karantasis <konstantine@confluent.io>
2020-05-23 15:35:43 -07:00
Randall Hauch 981ef5166d
KAFKA-9931: Implement KIP-605 to expand support for Connect worker internal topic configurations (#8654)
Added support for -1 replication factor and partitions for distributed worker internal topics by expanding the allowed values for the internal topics’ replication factor and partitions from positive values to also include -1 to signify that the broker defaults should be used.

The Kafka storage classes were already constructing a `NewTopic` object (always with a replication factor and partitions) and sending it to Kafka when required. This change will avoid setting the replication factor and/or number of partitions on this `NewTopic` if the worker configuration uses -1 for the corresponding configuration value.

Also added support for extra settings for internal topics on distributed config, status, and offset internal topics.

Quite a few new tests were added to verify that the `TopicAdmin` utility class is correctly using the AdminClient, and that the `DistributedConfig` validators for these configurations are correct. Also added integration tests for internal topic creation, covering preexisting functionality plus the new functionality.

Author: Randall Hauch <rhauch@gmail.com>
Reviewer: Konstantine Karantasis <konstantine@confluent.io>
2020-05-23 09:00:32 -05:00
Bruno Cadonna ec205171e5
KAFKA-6145: Add unit tests for assignments of only stateless tasks (#8713)
Reviewers: John Roesler <vvcephei@apache.org>
2020-05-22 15:35:25 -05:00
Jason Gustafson 713f305172
MINOR: Fix join group request timeout lower bound (#8702)
If the request timeout is larger than the rebalance timeout, we should use the former as the JoinGroup request timeout. This patch also includes some minor improvements to request/response logging in `NetworkClient` including adding the request timeout to the log message.

Reviewers: Boyang Chen <boyang@confluent.io>, Guozhang Wang <wangguoz@gmail.com>
2020-05-22 11:52:59 -07:00
Jim Galasyn 9111374974
MINOR: Improve security documentation for Kafka Streams #8710
Reviewers: Matthias J. Sax <matthias@confluent.io>
2020-05-22 11:40:25 -07:00
John Roesler 9fdd87715e
KAFKA-6145: KIP-441: Enforce Standby Task Stickiness (#8696)
We should treat standbys similarly to active stateful tasks and
re-assign them to instances that are already caught-up on them
while we warm them up on the desired destination, instead of
immediately moving them to the destination.

Reviewers: Bruno Cadonna <bruno@confluent.io>
2020-05-22 11:41:15 -05:00
Matthias J. Sax 27824baa21
KAFKA-10003: Mark KStream.through() as deprecated and update Scala API (#8679)
- part of KIP-221

Co-authored-by: John Roesler <john@confluent.io>
2020-05-22 08:41:28 -07:00
Brian Byrne d9e9a18a19
KAFKA-9980: Fix bug where alterClientQuotas could not set default client quotas (#8658)
Reviewers: Colin P. McCabe <cmccabe@apache.org>
2020-05-21 17:50:21 -07:00
Mario Molina 856e366512
KAFKA-9780: Deprecate commit records without record metadata (#8379)
Author: Mario Molina <mmolimar@gmail.com>
Reviewer: Randall Hauch <rhauch@gmail.com>
2020-05-21 14:18:09 -05:00
Magnus Edenhill 4aa4786a81
MINOR: Deploy VerifiableClient in constructor to avoid test timeouts (#8651)
Previous to this fix a plugged-in verifiable client, such as
confluent-kafka-python, would be deployed on the node in the background
worker thread as the client was started. Since this could be time consuming
(e.g., 10+ seconds) and since the main test thread would continue to
operate, it was common for the current test to time out waiting
for e.g. the verifiable producer to produce messages while it was in fact
still deploying.

The fix here is to deploy the verifiable client on the node when
the verifiable client is instantiated, which is thus a blocking
operation on the main test thread, avoiding any test-based timeouts.

Reviewers: Jason Gustafson <jason@confluent.io>
2020-05-21 09:59:32 -07:00
Anna Povzner f6781f42ff
MINOR: Added unit tests for ConnectionQuotas (#8650)
Reviiewers: David Jacot <djacot@confluent.io>, Rajini Sivaram <rajinisivaram@googlemail.com>
2020-05-21 17:21:04 +01:00
Randall Hauch d4ffc24a02
MINOR: Correct MirrorMaker2 integration test configs for Connect internal topics (#8653)
The replication factor for the Connect workers’ internal topics were incorrectly named and not actually used.
2020-05-21 10:56:04 -05:00
Radai Rosenblatt aa1b3c1107
KAFKA-9855 - return cached Structs for Schemas with no fields (#8472)
At the time of this writing there are 6 schemas in kafka APIs with no fields - 3
versions each of LIST_GROUPS and API_VERSIONS.

When reading instances of these schemas off the wire there's little point in
returning a unique Struct object (or a unique values array inside that Struct)
since there is no payload.

Reviewers: Ismael Juma <ismael@juma.me.uk>
2020-05-20 21:24:00 -07:00
Chris Egerton ab4b4d7372
KAFKA-9950: Construct new ConfigDef for MirrorTaskConfig before defining new properties (#8608)
`MirrorTaskConfig` class mutates the `ConfigDef` by defining additional properties, which leads to a potential `ConcurrentModificationException` during worker configuration validation and unintended inclusion of those new properties in the `ConfigDef` for the connectors which in turn is then visible via the REST API's `/connectors/{name}/config/validate` endpoint.

The fix here is a one-liner that just creates a copy of the `ConfigDef` before defining new properties.

Reviewers: Ryanne Dolan <ryannedolan@gmail.com>, Konstantine Karantasis <konstantine@confluent.io>
2020-05-20 21:14:40 -07:00
Chris Egerton 82f5efabc9
KAFKA-8869: Remove task configs for deleted connectors from config snapshot (#8444)
Currently, if a connector is deleted, its task configurations will remain in the config snapshot tracked by the KafkaConfigBackingStore. This causes issues with incremental cooperative rebalancing, which utilizes that config snapshot to determine which connectors and tasks need to be assigned across the cluster. Specifically, it first checks to see which connectors are present in the config snapshot, and then, for each of those connectors, queries the snapshot for that connector's task configs.

The lifecycle of a connector is for its configuration to be written to the config topic, that write to be picked up by the workers in the cluster and trigger a rebalance, the connector to be assigned to and started by a worker, task configs to be generated by the connector and then written to the config topic, that write to be picked up by the workers in the cluster and trigger a second rebalance, and finally, the tasks to be assigned to and started by workers across the cluster.

There is a brief period in between the first time the connector is started and when the second rebalance has completed during which those stale task configs from a previously-deleted version of the connector will be used by the framework to start tasks for that connector. This fix aims to eliminate that window by preemptively clearing the task configs from the config snapshot for a connector whenever it has been deleted.

An existing unit test is modified to verify this behavior, and should provide sufficient guarantees that the bug has been fixed.

Reviewers: Nigel Liang <nigel@nigelliang.com>, Konstantine Karantasis <konstantine@confluent.io>
2020-05-20 20:15:43 -07:00
belugabehr 59efa12d0c
KAFKA-9409: Supplement immutability of ClusterConfigState class in Connect (#7942)
The class claims to be immutable, but there are some mutable features of this class.
Increase the immutability of it and add a little cleanup:

* Pre-initialize size of ArrayList
* Remove superfluous syntax
* Use ArrayList instead of LinkedList since the list is created once

Reviewers: Ron Dagostino <rdagostino@confluent.io>, Konstantine Karantasis <konstantine@confluent.io>
2020-05-20 20:05:28 -07:00
Manikumar Reddy 9a18e0e3e8
MINOR: Increase gradle daemon’s heap size to 2g (#8700)
Reviewers: Ismael Juma <ismael@juma.me.uk>
2020-05-21 07:18:26 +05:30
Bruno Cadonna 9a47d7e35f
KAFKA-9603: Do not turn on bulk loading for segmented stores on stand-by tasks (#8661)
Segmented state stores turn on bulk loading of the underlying RocksDB
when restoring. This is correct for segmented state stores that
are in restore mode on active tasks and the onRestoreStart() and
onRestoreEnd() in RocksDBSegmentsBatchingRestoreCallback take care
of toggling bulk loading mode on and off. However, restoreAll()
in RocksDBSegmentsBatchingRestoreCallback might also turn on bulk loading
mode. When this happens on a stand-by task bulk loading mode is never
turned off. That leads to steadily increasing open file decriptors
in RocksDB because in bulk loading mode RocksDB creates continuously new
files but never compacts them (which is the intended behaviour).

Reviewers: A. Sophie Blee-Goldman <sophie@confluent.io>, Guozhang Wang <wangguoz@gmail.com>
2020-05-20 15:11:15 -07:00
Levani Kokhreidze 67770072da
KAFKA-9859 / kafka-streams-application-reset tool doesn't take into account topics generated by KTable foreign key join operation (#8671)
This PR fixes kafka-streams-application-reset tool. Before, kafka-streams-application-reset tool wasn't taking into account topics generated by KTable foreign key join operation.

Reviewers: Matthias J. Sax <matthias@confluent.io>, Guozhang Wang <wangguoz@gmail.com>
2020-05-20 10:03:57 -07:00
Okada Haruki affb270bbc
MINOR: Fix redundant typos in comments and javadocs (#8693)
* MINOR: Fix typo in RecordAccumulator
* MINOR: Fix typo in several files

Reviewers: Ron Dagostino <rdagostino@confluent.io>, Konstantine Karantasis <konstantine@confluent.io>
2020-05-19 23:53:32 -07:00
Boyang Chen 7c7d88339b
KAFKA-10010: Should make state store registration idempotent (#8681)
Standby task could also at risk of getting into illegal state when not being closed during HandleLostAll:

1. The standby task was initializing as CREATED state, and task corrupted exception was thrown from registerStateStores
2. The task corrupted exception was caught, and do a non-affected task commit
3. The task commit failed due to task migrated exception
4. The handleLostAll didn't close the standby task, leaving it as CREATED state
5. Next rebalance complete, the same task was assigned back as standby task.
6. Illegal Argument exception caught as state store already registered

Reviewers: A. Sophie Blee-Goldman <ableegoldman@gmail.com>, Guozhang Wang <wangguoz@gmail.com>
2020-05-19 15:02:55 -07:00
Boyang Chen 76e0233c93
KAFKA-10011: Remove task id from lockedTaskDirectories during handleLostAll (#8682)
As stated, we couldn't wait for handleRebalanceComplete in the case of handleLostAll, as we already closed the active task as dirty, and could potentially require its offset in the next thread.runOnce call.

Co-authored-by: Guozhang Wang <wangguoz@gmail.com>

Reviewers: A. Sophie Blee-Goldman <ableegoldman@gmail.com>, Guozhang Wang <wangguoz@gmail.com>
2020-05-19 14:00:13 -07:00
Andras Katona c0fa36dde7
KAFKA-9992: Eliminate JavaConverters in EmbeddedKafkaCluster (#8673)
Fixes EmbeddedKafkaCluster.deleteTopicAndWait for use with kafka_2.13

Reviewers: Boyang Chen <boyang@confluent.io>, Chia-Ping Tsai <chia7712@gmail.com>, John Roesler <vvcephei@apache.org>
2020-05-19 13:38:35 -05:00
Bruno Cadonna af02f76623
KAFKA-6145: Add unit tests to verify fix of bug KAFKA-9173 (#8689)
Ensure that the assignor will always assign tasks to new instances.

Reviewers: John Roesler <vvcephei@apache.org>
2020-05-19 13:34:36 -05:00
showuon 82fb6e9473
MINOR: Update stream documentation (#8622)
fix broken links
rephrase a sentence
update the version number
Reviewers: Sophie Blee-Goldman <sophie@confluent.io>, Boyang Chen <boyang@confluent.io>, Bill Bejeck <bbejeck@apache.org>
2020-05-19 11:05:55 -04:00
showuon 3ec5e8e652
MINOR: Small fixes in the documentation (#8623)
These minor documentation fixes included: 

1. fix broken links
2. remove redundant sentences
3. fix content format issue

Reviewers: Konstantine Karantasis <konstantine@confluent.io>
2020-05-19 07:31:06 -07:00
showuon ad0850659f
KAFKA-10004: ConfigCommand fails to find default broker configs without ZK (#8675)
Reviewers: Brian Byrne <bbyrne@confluent.io>, Colin P. McCabe <cmccabe@apache.org>
2020-05-18 18:43:45 -07:00
A. Sophie Blee-Goldman 392e49b1ed
MINOR: consolidate processor context for active/standby (#8669)
This is a prerequisite for KAFKA-9501 and will also be useful for KAFKA-9603

There should be no logical changes here: the main difference is the removal of StandbyContextImpl in preparation for contexts to transition between active and standby.

Also includes some minor cleanup, eg pulling the ReadOnly/ReadWrite decorators out into a separate file.

Reviewers: Bruno Cadonna <bruno@confluent.io>, John Roesler <vvcephei@apache.org>, Guozhang Wang <wangguoz@gmail.com>
2020-05-18 14:50:54 -07:00
Colin Patrick McCabe 1f2ff73b28
KIP-551: Expose disk read and write metrics (#8569)
Reviewers: David Arthur <mumrah@gmail.com>, Mickael Maison <mickael.maison@gmail.com>
2020-05-18 14:18:16 -07:00
Matthias J. Sax f04fd7e9fd
MINOR: updated MacOS compatibility statement for RocksDB (#8687)
Reviewers: A. Sophie Blee-Goldman <sophie@confluent.io>, Guozhang Wang <guozhang@confluent.io>
2020-05-18 12:43:35 -07:00
showuon b72ab51e4d
Remove redundant TOC and introduction in Running Streams Applications (#8686)
Reviewers: Guozhang Wang <wangguoz@gmail.com>
2020-05-18 09:30:19 -07:00
Ismael Juma 2d37c8c844
Update Gradle to 6.4.1 (#8678)
This fixes critical bugs in Gradle 6.4:

* Regression: Different daemons are used between IDE and CLI builds for the same project
* Regression: Main-Class attribute always added to jar manifest when using application plugin
* Fix potential NPE if code is executed concurrently

More details: https://github.com/gradle/gradle/releases/tag/v6.4.1

Reviewers: Manikumar Reddy <manikumar@confluent.io>
2020-05-17 11:02:53 -07:00
Chia-Ping Tsai 78e18b575c
KAFKA-9617 Replica Fetcher can mark partition as failed when max.message.bytes is changed (#8659)
Skip to check the size of record if the record is already accepted by leader.

Reviewers: Guozhang Wang <wangguoz@gmail.com>
2020-05-16 10:05:17 -07:00
Greg Harris 62fa8fc9a9
KAFKA-9955: Prevent SinkTask::close from shadowing other exceptions (#8618)
* If two exceptions are thrown the `closePartitions` exception is suppressed
* Add unit tests that throw exceptions in put and close to verify that
  the exceptions are propagated and suppressed appropriately out of WorkerSinkTask::execute

Reviewers: Chris Egerton <chrise@confluent.io>, Nigel Liang <nigel@nigelliang.com>, Konstantine Karantasis <konstantine@confluent.io>
2020-05-15 17:53:32 -07:00
Levani Kokhreidze 8a0fcd1695
KAFKA-8611: update documentation for KIP-221 (#8558)
Reviewer: Matthias J. Sax <matthias@confluent.io>
2020-05-15 15:28:23 -07:00
Guozhang Wang d534b5d817
KAFKA-10001: Should trigger store specific callback if it is also a listener (#8670)
The store's registered callback could also be a restore listener, in which case it should be triggered along with the user specified global listener as well.

Reviewers: Boyang Chen <boyang@confluent.io>, Matthias J. Sax <matthias@confluent.io>
2020-05-15 11:27:02 -07:00