Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
341 commits
Select commit Hold shift + click to select a range
3f61104
KAFKA-6052; Fix WriteTxnMarkers request retry issue in InterBrokerSen…
vahidhashemian Mar 24, 2018
f4a39f9
MINOR: Fix flaky standby task test (#4767)
bbejeck Mar 26, 2018
9eb32ea
KAFKA-6446; KafkaProducer initTransactions() should timeout after max…
huxi-2b Mar 27, 2018
395c7e0
MINOR: Fix ReassignPartitionsClusterTest.testHwAfterPartitionReassign…
omkreddy Mar 27, 2018
adbf31a
KAFKA-6473: Add MockProcessorContext to public test-utils (#4736)
vvcephei Mar 27, 2018
964693e
KAFKA-6386: Use Properties instead of StreamsConfig in KafkaStreams c…
Mar 27, 2018
281dbfd
MINOR: LogCleaner.validateReconfiguration fixes (#4770)
ijuma Mar 28, 2018
9baa9bd
MINOR: Update Jackson to 2.9.5 (#4776)
ijuma Mar 28, 2018
5d5a2ce
KAFKA-6716: Should close the `discardChannel` in MockSelector#complet…
huxi-2b Mar 28, 2018
dd70117
KAFKA-6724; ConsumerPerformance should not always reset to earliest o…
rootex- Mar 28, 2018
659fbb0
MINOR: Depend on streams:test-utils for streams and examples tests (#…
vvcephei Mar 28, 2018
28f1fc2
MINOR: Change getMessage to toString (#4790)
guozhangwang Mar 28, 2018
77b840b
MINOR: Downgrade to Gradle 4.5.1 (#4791)
ijuma Mar 28, 2018
29838c1
HOTFIX: ignoring tests using old versions of Streams until KIP-268 is…
bbejeck Mar 29, 2018
cb7cf7c
KAFKA-6702: Wrong className in LoggerFactory.getLogger method (#4772)
Mar 29, 2018
fc0d002
KAFKA-6707: The default value for config of Type.LONG should be *L (#…
Mar 29, 2018
2ef6ee2
KAFKA-6630: Speed up the processing of TopicDeletionStopReplicaRespon…
gitlw Mar 30, 2018
4106cb1
KAFKA-4914: Partition reassignment tool should check types before per…
nicktrav Mar 31, 2018
2e5d4af
MINOR: refactor error message of task migration (#4803)
guozhangwang Apr 2, 2018
ac4374d
KAFKA-6732: Fix Streams doc ref link (#4806)
ro7m Apr 2, 2018
b8f8ce4
KAFKA-6731: waitOnState should check the state to be the target start…
huxi-2b Apr 2, 2018
8662a02
MINOR: Fix partition loading checks in GroupCoordinator (#4788)
hachikuji Apr 2, 2018
1dc3027
KAFKA-5674; Reduce max.connections.per.ip minimum to 0 (#3610)
viktorsomogyi Apr 2, 2018
e4c8e3e
MINOR: Add Timed wait to SslTransportLayerTest.testNetworkThreadTimeR…
omkreddy Apr 3, 2018
67077eb
MINOR: Make kafka-streams-test-utils dependencies work with releases …
ewencp Apr 3, 2018
d9369de
KAFKA-6728: Corrected the worker’s instantiation of the HeaderConverter
rhauch Apr 3, 2018
1815e01
MINOR: Refactor return value (#4810)
khaireddine120 Apr 3, 2018
719a21f
KAFKA-6739; Ignore headers when down-converting from V2 to V0/V1 (#4813)
dhruvilshah3 Apr 3, 2018
9313e18
KAFKA-6560: Use single query for getters as well (#4814)
guozhangwang Apr 4, 2018
d5db4e9
MINOR: fix streams test-utils dependencies (#4821)
vvcephei Apr 5, 2018
53d4267
MINOR: Don’t send the DeleteTopicsRequest for invalid topic names (#4…
chia7712 Apr 5, 2018
9f8c316
KAFKA-4292: Configurable SASL callback handlers (KIP-86) (#2022)
rajinisivaram Apr 5, 2018
63642d6
KAFKA-6694: The Trogdor Coordinator should support filtering task res…
cmccabe Apr 5, 2018
77c79df
KAFKA-6741: Disable Selector's idle connection timeout in testNetwor…
omkreddy Apr 5, 2018
ed2f10e
MINOR: Update max.connections.per.ip.overrides config docs (#4819)
omkreddy Apr 5, 2018
3abd410
KAFKA-6748: double check before scheduling a new task after the punct…
Apr 5, 2018
ac542c9
KAFKA-6747 Check whether there is in-flight transaction before aborti…
tedyu Apr 5, 2018
da32db9
Trogdor: Added commonClientConf and adminClientConf to workload specs…
apovzner Apr 6, 2018
77ebd32
KAFKA-6576: Configurable Quota Management (KIP-257) (#4699)
rajinisivaram Apr 6, 2018
0c0d836
KAFKA-6054: Fix upgrade path from Kafka Streams v0.10.0 (#4779)
mjsax Apr 7, 2018
fedac0c
MINOR: Mention leader in a few follower/controller log messages (#4835)
ijuma Apr 8, 2018
40183e3
KAFKA-6688. The Trogdor coordinator should track task statuses (#4737)
cmccabe Apr 8, 2018
37efc79
MINOR: Remove magic number and extract Pattern instance from method a…
asdf2014 Apr 8, 2018
e6b4d17
MINOR: Java 10 fixes so that the build passes (#4839)
ijuma Apr 9, 2018
0a8f35b
KAFKA-6768; Transactional producer may hang in close with pending req…
hachikuji Apr 9, 2018
989fe04
Kafka-6693: Added consumer workload to Trogdor (#4775)
apovzner Apr 10, 2018
e490a90
Make [Config]Resource.toString() consistent with existing code (#4845)
edenhill Apr 10, 2018
79c6f7c
MINOR: Move creation of quota callback to ensure single instance (#4848)
rajinisivaram Apr 10, 2018
5e277e5
KAFKA-4883: handle NullPointerException while parsing login modue con…
omkreddy Apr 10, 2018
4223ef6
MINOR: Add NullPayloadGenerator to Trogdor (#4844)
cmccabe Apr 10, 2018
e29fa9a
KAFKA-6752: Enable unclean leader election metric (#4838)
omkreddy Apr 11, 2018
47918f2
KAFKA-6447: Add Delegation Token Operations to KafkaAdminClient (KIP-…
omkreddy Apr 11, 2018
6a99da8
KAFKA-6058: KIP-222; Add Consumer Group operations to Admin API
jeqo Apr 11, 2018
83a9e04
MINOR: Fix doc - `FileMessageSet` was replaced by `FileRecords` (#4852)
jiminhsieh Apr 11, 2018
e4d652b
MINOR: Fix AsyncProducerTest bug that hits when logging is turned up …
cmccabe Apr 11, 2018
7421f9d
KAFKA-6773; Allow offset commit/fetch/describe/delete with empty grou…
hachikuji Apr 11, 2018
cc43e77
MINOR: make Sensor#add idempotent (#4853)
vvcephei Apr 12, 2018
4e35a2b
KAFKA-6592: ConsoleConsumer should support WindowedSerdes (#4797)
huxi-2b Apr 12, 2018
fb3a948
MINOR: Disable failing testDescribeConsumerGroupOffsets test case (#4…
hachikuji Apr 12, 2018
886daf5
KAFKA-6234; Increased timeout value for lowWatermark response to fix …
soenkeliebau Apr 12, 2018
8434d49
KAFKA-6790: Fix Streams processor node broken link (#4874)
ro7m Apr 15, 2018
b599b39
KAFKA-6058: Refactor consumer API result return types (#4856)
guozhangwang Apr 15, 2018
0dc7f0e
KAFKA-6611, PART II: Improve Streams SimpleBenchmark (#4854)
guozhangwang Apr 15, 2018
9871357
KAFKA-6592: Follow-up (#4864)
guozhangwang Apr 16, 2018
832b096
KAFKA-6696 Trogdor should support destroying tasks (#4759)
cmccabe Apr 16, 2018
93e0341
KAFKA-6771. Make specifying partitions more flexible (#4850)
cmccabe Apr 16, 2018
f3ed56b
MINOR: Mention that -1 disables retention by time (#4881)
ijuma Apr 16, 2018
19418fc
KAFKA-6514; Add API version as a tag for the RequestsPerSec metric (#…
Apr 16, 2018
b6f0420
Kafka-6792: Fix wrong pointer in the link for stream dsl (#4876)
ro7m Apr 16, 2018
432c82d
KAFKA-6727; Fix broken Config hashCode() and equals() (#4796)
big-andy-coates Apr 16, 2018
4013767
MINOR: Log the exception thrown by Selector.poll (#4873)
chia7712 Apr 16, 2018
341db99
KAFKA-6650: Allowing transition to OfflineReplica state for replicas …
gitlw Apr 17, 2018
e5de679
KAFKA-6765: Handle exception while reading throttle metric value in t…
rajinisivaram Apr 17, 2018
01eddce
KAFKA-6742: TopologyTestDriver error when dealing with stores from Gl…
Apr 17, 2018
8350340
KAFKA-6770; Add New Protocol Versions to 1.1.0 documentation (#4847)
mimaison Apr 17, 2018
ac9c3ed
KAFKA-6376: preliminary cleanup (#4872)
vvcephei Apr 17, 2018
52e9ba6
MINOR: Add line break so example command is readable without scrollin…
Apr 17, 2018
0e0fd4f
HOTFIX: use the new prop object (#4888)
guozhangwang Apr 18, 2018
cae4221
KAFKA-6054: Update Kafka Streams metadata to version 3 (#4880)
mjsax Apr 18, 2018
98bb75a
KAFKA-6772: Load credentials from ZK before accepting connections (#4…
rajinisivaram Apr 18, 2018
4623422
KAFKA-3365; Add documentation method for protocol types and update do…
Apr 18, 2018
6b2be26
KAFKA-6775: Fix the issue of without init super class's (#4859)
jiminhsieh Apr 18, 2018
2162d07
KAFKA-6802: Improved logging for missing topics during task assignmen…
bbejeck Apr 18, 2018
93fd570
MINOR: Retry setting aligned time until set (#4893)
bbejeck Apr 19, 2018
f2514e6
MINOR: Fix kafka-run-class for Java 10 (#4895)
ijuma Apr 19, 2018
1f523d9
MINOR: add window store range query in simple benchmark (#4894)
guozhangwang Apr 19, 2018
b510737
KAFKA-5253: Fixed TopologyTestDriver to handle streams created with p…
jadireddi Apr 20, 2018
9e062b3
MINOR: Use distinct consumer groups in dynamic listener tests (#4870)
rajinisivaram Apr 20, 2018
d9e804b
MINOR: Clarify meaning of end offset in consumer javadocs (#4885)
wicknicks Apr 20, 2018
51db468
MINOR: Fixed deserialization.exception.handler default value of confi…
bistros Apr 23, 2018
ed51b2c
KAFKA-6376; refactor skip metrics in Kafka Streams
vvcephei Apr 23, 2018
35c75ea
MINOR: Fix formatting in --new-consumer deprecation warning (#4903)
patrikerdes Apr 23, 2018
b2e4db0
KAFKA-6670: Implement a Scala wrapper library for Kafka Streams
debasishg Apr 23, 2018
a05e336
KAFKA-6677: Fixed StreamsConfig producer's max-in-flight allowed when…
jadireddi Apr 24, 2018
3bc2575
MINOR: Disabled flaky DynamicBrokerReconfigurationTest.testAddRemoveS…
apovzner Apr 24, 2018
12a0f46
KAFKA-6376: Document skipped records metrics changes (#4922)
vvcephei Apr 24, 2018
acd669e
KAFKA-6796; Fix surprising UNKNOWN_TOPIC error from requests to non-r…
hachikuji Apr 25, 2018
c853ef7
MINOR: Bump version to 2.0.0-SNAPSHOT (#4804)
ijuma Apr 25, 2018
34a1f70
KAFKA-6826 avoid range scans when forwarding values during aggregatio…
xvrl Apr 25, 2018
cbb5b51
KAFKA-6795; Added unit tests for ReplicaAlterLogDirsThread
apovzner Apr 25, 2018
6be908a
MINOR: Refactor AdminClient ListConsumerGroups API (#4884)
cmccabe Apr 26, 2018
459efb0
HOTFIX: ListConsumerGroupsResult should use KafkaFuture (#4933)
hachikuji Apr 26, 2018
fc6e922
MINOR: fix NamedCache metrics in Streams (#4917)
vvcephei Apr 26, 2018
e7f0196
MINOR: Fixes for streams system tests (#4935)
bbejeck Apr 26, 2018
f38bc0c
MINOR: use jdk8 to build/run system tests (#4925)
jarekr Apr 26, 2018
885abbf
KAFKA-6474: Rewrite tests to use new public TopologyTestDriver [parti…
h314to Apr 26, 2018
8725e36
MINOR: Remove deprecated streams config (#4906)
guozhangwang Apr 26, 2018
ff1875f
KAFKA-6778; AdminClient.describeConfigs() should return error for non…
omkreddy Apr 26, 2018
e128f7f
MINOR: Pin pip to 9.0.3 as 10 is not compatible with with system pip …
maxzheng Apr 27, 2018
b2e0812
HOTFIX: rename run_test to execute in streams simple benchmark (#4941)
guozhangwang Apr 27, 2018
3ce14a8
MINOR: Streams web doc table fix (#4942)
Apr 27, 2018
0143a65
Fix streams web doc configs tables (#4943)
Apr 27, 2018
c6fd3d4
MINOR: update VerifiableProducer to send keys if configured and remov…
bbejeck Apr 28, 2018
8577632
MINOR: Fix Trogdor tests, partition assignments (#4892)
cmccabe Apr 29, 2018
aa3c38f
KAFKA-6785: Add Trogdor documentation (#4862)
cmccabe Apr 29, 2018
6655a4d
KAFKA-6535: Set default retention ms for Streams repartition topics t…
khaireddine120 Apr 30, 2018
902009e
KAFKA-3417: Wrap metric reporter calls in try/catch blocks (#3635)
mimaison Apr 30, 2018
be5b0fd
MINOR: Fix sasl.jaas.config doc string (#4921)
omkreddy Apr 30, 2018
f467c9c
MINOR: Ensure exception messages include partition/segment info when …
hachikuji Apr 30, 2018
9d2efd8
KAFKA-6810; Enable dynamic update of SSL truststores (#4904)
rajinisivaram Apr 30, 2018
b4d8552
KAFKA-6526: Enable unclean leader election without controller change …
rajinisivaram May 1, 2018
b82252b
MINOR: Removed unused imports in a few tests (#4938)
mimaison May 1, 2018
31ce3a2
KAFKA-6825: Make StreamsConfig#DEFAULT_PRODUCTION_EXCEPTION_HANDLER_C…
guozhangwang May 2, 2018
1b170df
KAFKA-6657: Add StreamsConfig prefix for different consumers (#4805)
May 2, 2018
a7746dd
HOTFIX: Simplify ConsoleConsumer stripWithPrefix function
guozhangwang May 2, 2018
04a70bd
KAFKA-6829: retry commits on unknown topic or partition (#4948)
bbejeck May 3, 2018
55cdc93
Upgrade ZooKeeper to 3.4.12 and Scala to 2.12.6 (#4940)
ijuma May 3, 2018
de14783
KAFKA-6853: ZooKeeperRequestLatencyMs is incorrect (#4961)
Fuud May 3, 2018
6dbd9b5
KAFKA-6854; Handle batches deleted during log cleaning of logs with t…
rajinisivaram May 3, 2018
a531872
KAFKA-6857; Leader should reply with undefined offset if undefined le…
apovzner May 4, 2018
515ce21
KAFKA-6761: Part 1 of 3; Graph nodes (#4923)
bbejeck May 4, 2018
af98326
MINOR: Removed deprecated schedule function (#4908)
guozhangwang May 4, 2018
2d8049b
KAFKA-5697: issue Consumer#wakeup during Streams shutdown
vvcephei May 4, 2018
de8a67b
HOTFIX: fix streams tutorial code example
guozhangwang May 4, 2018
f448e49
KAFKA-6844: Call shutdown on GlobalStreamThread after all StreamThrea…
bbejeck May 4, 2018
03a2d82
KAFKA-6867; Corrected the typos in upgrade.html (#4970)
surabhidixit May 4, 2018
564311f
MINOR: Remove KafkaStreams#toString (#4909)
guozhangwang May 4, 2018
893e044
MINOR: Build and code sample updates for Kafka Streams DSL for Scala …
seglo May 7, 2018
6f641fe
KAFKA-6474: Rewrite tests to use new public TopologyTestDriver [clean…
h314to May 7, 2018
32e97b1
MINOR: Remove deprecated parameter in ProcessorContext#register (#4911)
guozhangwang May 7, 2018
00d1137
KAFKA-6871: KStreams Scala API: incorrect Javadocs and misleading par…
miguno May 7, 2018
42771eb
MINOR: Remove deprecated KTable#writeAs, print, foreach, to, through …
guozhangwang May 7, 2018
55dd970
KAFKA-6628: RocksDBSegmentedBytesStoreTest does not cover time window…
lijubjohn May 7, 2018
2b5a594
KAFKA-6813: Remove deprecated APIs in KIP-182, Part I (#4919)
guozhangwang May 8, 2018
b88d70b
MINOR: Make Serdes less confusing in Scala (#4963)
joan38 May 8, 2018
bce1079
KAFKA-6879; Invoke session init callbacks outside lock to avoid Contr…
hachikuji May 8, 2018
b328fc7
MINOR: add equals()/hashCode() for Produced/Consumed (#4979)
norwood May 8, 2018
fcb15e3
KAFKA-6292; Improve FileLogInputStream batch position checks to avoid…
SuppieRK May 9, 2018
7afcb3a
KAFKA-6877; Remove completedFetch upon a failed parse if it contains …
efeg May 9, 2018
b27e098
MINOR: Fix trace logging in ReplicaManager (#4916)
cmccabe May 9, 2018
0ecb72f
KAFKA-6834: Handle compaction with batches bigger than max.message.by…
rajinisivaram May 9, 2018
5ca9ed5
KAFKA 6673: Implemented missing override equals method (#4745)
May 9, 2018
e32dcb9
KAFKA-6878: NPE when querying global state store not in READY state (…
tedyu May 9, 2018
abbd53d
KAFKA-6299; Fix AdminClient error handling when metadata changes (#4295)
cmccabe May 9, 2018
8fb5b37
KAFKA-6878 Switch the order of underlying.init and initInternal (#4988)
tedyu May 10, 2018
0b1a118
KAFKA-6813: Remove deprecated APIs in KIP-182, Part II (#4976)
guozhangwang May 10, 2018
9679c44
KAFKA-6361: Fix log divergence between leader and follower after fas…
apovzner May 10, 2018
4f7c11a
KAFKA-6870 Concurrency conflicts in SampledStat (#4985)
chia7712 May 10, 2018
830ee16
MINOR: Update dynamic broker configuration doc for truststore update …
rajinisivaram May 10, 2018
fa1702f
MINOR: Remove deprecated valueTransformer.punctuate (#4993)
guozhangwang May 10, 2018
c90bbc2
MINOR: Fix typo in ConsumerRebalanceListener JavaDoc (#4996)
Gunju-Ko May 10, 2018
7ed7cca
KAFKA-6893; Create processors before starting acceptor in SocketServe…
rajinisivaram May 10, 2018
f69900c
KAFKA-6894: Improve err msg when connecting processor with global sto…
rayokota May 10, 2018
a5ea6d1
MINOR: A few small cleanups in AdminClient from KAFKA-6299 (#4989)
hachikuji May 11, 2018
c3921d4
MINOR: Rename RecordFormat to RecordVersion (#4809)
ijuma May 11, 2018
6eb7cf1
KAFKA-5965: Remove Deprecated AdminClient from Streams Resetter Tool …
fedosov-alexander May 11, 2018
ec7ba32
KAFKA-6394; Add a check to prevent misconfiguration of advertised lis…
omkreddy May 11, 2018
40d191b
MINOR: Count fix and Type alias refactor in Streams Scala API (#4966)
joan38 May 11, 2018
c14b0ad
MINOR - Fix typo in Streams Dev Guide (#4972)
joel-hamill May 11, 2018
caca1fd
KAFKA-6813: Remove deprecated APIs in KIP-182, Part III (#4991)
guozhangwang May 11, 2018
adeced2
HOTFIX: RegexSourceIntegrationTest needs to cleanup shared output top…
mjsax May 11, 2018
9947cd4
MINOR: Ensure sensor names are unique in Kafka Streams (#5009)
mjsax May 12, 2018
0bb48a1
KAFKA-3473; More Controller Health Metrics (KIP-237)
lindong28 May 15, 2018
1e207b2
KAFKA-6896: Add producer metrics exporting in KafkaStreams (#4998)
May 15, 2018
c9161af
MINOR: doc change for deprecate removal (#5006)
guozhangwang May 16, 2018
e9154b7
KAFKA-6905: Document that Processors may be re-used by Streams (#5022)
glasser May 16, 2018
d4204e8
MINOR: fix broken links in streams doc (#5025)
guozhangwang May 16, 2018
0b3712d
MINOR: add missing parameter `processing.guaratees` to Streams docs (…
mjsax May 16, 2018
ac9de82
MINOR: Use Set instead of List for multiple topics (#5024)
joan38 May 17, 2018
1a324d7
KAFKA-6729: Reuse source topics for source KTable's materialized stor…
guozhangwang May 17, 2018
6b8e79b
HOTFIX: move Conusmed to o.a.k.streams.kstream (#5033)
guozhangwang May 17, 2018
ba237c5
HOTFIX: use ConsumedInternal in StreamsBuilder
guozhangwang May 18, 2018
58a910f
KAFKA-5697: revert wakeup-based impl (#5035)
vvcephei May 18, 2018
ee8abb2
KAFKA-6566: Improve Connect Resource Cleanup
rayokota May 18, 2018
05ea580
MINOR: Remove unused class (#5037)
guozhangwang May 18, 2018
c53e274
KAFKA-6917; Process txn completion asynchronously to avoid deadlock (…
rajinisivaram May 18, 2018
4e1c8ff
KAFKA-6849: add transformValues methods to KTable. (#4959)
big-andy-coates May 18, 2018
f65f3a8
KAFKA-6905: Document that Transformers may be re-used by Streams (#5026)
glasser May 20, 2018
9752cca
KAFKA-6729: Follow up; disable logging for source KTable. (#5038)
guozhangwang May 20, 2018
96cda0e
MINOR: Fix type inference on joins and aggregates (#5019)
joan38 May 20, 2018
16ad358
KAFKA-6868; Fix buffer underflow and expose group state in the consum…
cmccabe May 21, 2018
cbce95d
MINOR: Reduce required occurrance from 100 to 10 (#5048)
guozhangwang May 21, 2018
70a506b
MINOR: Ignore test_broker_type_bounce_at_start system test (#5055)
guozhangwang May 22, 2018
95b46a1
KAFKA-6685: Added Exception to distinguish message Key from Value dur…
jadireddi May 22, 2018
e70a191
KAFKA-4423: Drop support for Java 7 (KIP-118) and update deps (#5046)
ijuma May 22, 2018
193c779
MINOR: Remove unnecessary conditional in KafkaAdminClient to fix chec…
ijuma May 22, 2018
6281fbc
KAFKA-6474: Rewrite tests to use new public TopologyTestDriver [part …
h314to May 22, 2018
a30ecc6
MINOR: Remove o.a.kafka.common.utils.Base64 and IS_JAVA8_COMPATIBLE
ijuma May 22, 2018
c1b30a1
MINOR: AdminClient metadata manager should reset state on failure
hachikuji May 22, 2018
5be47a2
MINOR: AdminClient consumer group domain objects should have public c…
hachikuji May 22, 2018
7ecfbab
KAFKA-5807 - Check Connector.config() and Transformation.config() ret…
jcustenborder May 22, 2018
133108c
KAFKA-6850: Add Record Header support to Kafka Streams Processor API …
jeqo May 22, 2018
e884720
MINOR: Fix transiently failing consumer group admin integration test …
hachikuji May 22, 2018
0f86e68
MINOR: Remove dependence on __consumer_offsets in AdminClient listCon…
hachikuji May 23, 2018
ff9f928
KAFKA-6911; Fix dynamic keystore/truststore update check (#5029)
rajinisivaram May 24, 2018
7132a85
KAFKA-6921; Remove old Scala producer and related code
ijuma May 25, 2018
440445e
KAFKA-2061; Offer a --version flag to print the kafka version [KIP-27…
sasakitoa May 25, 2018
70f0d0b
MINOR: Use reflection for signal handler and do not enable it for IBM…
ijuma May 25, 2018
c9ec292
Improve kafka client sensor registration performance by lazily calcul…
radai-rosenblatt May 25, 2018
345db59
KAFKA-6937: In-sync replica delayed during fetch if replica throttle …
junrao May 25, 2018
ab3ff71
KAFKA-6930: Convert byte array to string in KafkaZkClient debug log (…
darionyaphet May 25, 2018
39fe105
Minor: Fixed ConsumerOffset#path (#5060)
maytals May 26, 2018
7f19df2
MINOR: AdminClient should respect retry backoff
hachikuji May 26, 2018
d45d7ec
KAFKA-2951; Add a test to verify produce, consume with ACLs for topic…
omkreddy May 26, 2018
8c5d7e0
KAFKA-6562: OAuth Authentication via SASL/OAUTHBEARER (KIP-255) (#4994)
rondagostino May 26, 2018
8d1e961
MINOR: Replace unused variables by underscore (#5003)
chia7712 May 26, 2018
c470ff7
KAFKA-5697; Implement new consumer poll API from KIP-266 (#4855)
vvcephei May 26, 2018
b751321
MINOR: Remove MaxPermSize from gradle.properties
ijuma May 27, 2018
8bf20bb
MINOR: Update consumer javadoc for invalid operations on unassigned p…
omkreddy May 28, 2018
24a7b1c
MINOR: Remove findbugs exclusion matching removed old producer (#5090)
May 28, 2018
3a8d3a7
KAFKA-6916; Refresh metadata in admin client if broker connection fai…
rajinisivaram May 29, 2018
a64ab91
KAFKA-5540: Deprecate internal converter configs (KIP-174)
C0urante May 29, 2018
4943c3f
MINOR: reduce commit time on test (#5095)
bbejeck May 29, 2018
fffb9c5
KAFKA-6913: Add Connect converters and header converters for short, i…
rhauch May 29, 2018
9809495
KAFKA-6776: ConnectRestExtension Interfaces & Rest integration (KIP-285)
mageshn May 30, 2018
d99f4a0
KAFKA-6617; Improve controller performance by batching reassignment z…
May 30, 2018
f24a62d
KAFKA-6608; Add timeout parameter to blocking consumer calls [KIP-266…
ConcurrencyPractitioner May 30, 2018
1facab3
KAFKA-6028: Improve the quota throttle communication (KIP-219)
Apr 12, 2018
1e0793c
Update doc of curried joins and aggregates (#5053)
joan38 May 30, 2018
2b6630b
Remove duplicate code which is invoked twice (#5039)
Dark0096 May 30, 2018
14171fa
KAFKA-6957 make InternalTopologyBuilder accessible from AbstractStrea…
fhussonnois May 30, 2018
f8dfbb0
KAFKA-6738: Implement error handling for source and sink tasks (KIP-298)
wicknicks May 30, 2018
f33e9a3
KAFKA-4936: Add dynamic routing in Streams (#5018)
guozhangwang May 30, 2018
08e8fac
KAFKA-6886: Externalize secrets from Connect configs (KIP-297)
rayokota May 30, 2018
3683d47
MINOR: Follow-up improvements for KIP-266 (#5084)
hachikuji May 31, 2018
d166485
KAFKA-6054: Add 'version probing' to Kafka Streams rebalance (#4636)
mjsax May 31, 2018
837f31d
KAFKA-6927; Chunked down-conversion to prevent out of memory errors o…
dhruvilshah3 May 31, 2018
ad56f04
KAFKA-6936: Implicit materialized for aggregate, count and reduce (#5…
joan38 Jun 1, 2018
e24916a
MINOR:Fix table outer join test (#5099)
emmanuelharel Jun 1, 2018
0120e88
KAFKA-6973: Validate topic config message.timestamp.type (#5106)
huxi-2b Jun 1, 2018
cb2f024
MINOR: Use thread name and task for sensor name (#5111)
bbejeck Jun 1, 2018
73e2cbb
KAFKA-6760: Fix response logging in the Controller (#4834)
mimaison Jun 1, 2018
f4783ca
Removed ignored "version" field in JSON file for deleting records
ppatierno Sep 18, 2017
c777bd1
Added handling default earliest version (1)
ppatierno Sep 29, 2017
23ca324
Redadded "version" field in the documentation about JSON file format
ppatierno Sep 29, 2017
26b96a6
Added more one check on "partitions" field
ppatierno Sep 29, 2017
467b205
Removed duplicated check and exception on not supported version
ppatierno Sep 29, 2017
08756fb
Changed the error message when the file content is not a valid JSON
ppatierno Sep 29, 2017
463bf40
Added checking "version" field for the topics-to-move JSON input
ppatierno Oct 2, 2017
d873ebe
Merge branch 'kafka-5919' of https://github.com/ppatierno/kafka into …
ppatierno Jun 2, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -47,3 +47,7 @@ tests/venv
docs/generated/

.release-settings.json

kafkatest.egg-info/
systest/
*.swp
6 changes: 2 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ See our [web site](http://kafka.apache.org) for details on the project.

You need to have [Gradle](http://www.gradle.org/installation) and [Java](http://www.oracle.com/technetwork/java/javase/downloads/index.html) installed.

Kafka requires Gradle 3.0 or higher.
Kafka requires Gradle 4.5 or higher.

Java 7 should be used for building in order to support both Java 7 and Java 8 at runtime.
Java 8 should be used for building in order to support both Java 8 and Java 10 at runtime.

### First bootstrap and download the wrapper ###
cd kafka_source_dir
Expand Down Expand Up @@ -85,8 +85,6 @@ You can pass either the major version (eg 2.11) or the full version (eg 2.11.12)
./gradlew -PscalaVersion=2.11 test
./gradlew -PscalaVersion=2.11 releaseTarGz

Scala 2.12.x requires Java 8.

### Running a task for a specific project ###
This is for `core`, `examples` and `clients`

Expand Down
154 changes: 154 additions & 0 deletions TROGDOR.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
Trogdor
========================================
Trogdor is a test framework for Apache Kafka.

Trogdor can run benchmarks and other workloads. Trogdor can also inject faults in order to stress test the system.

Quickstart
=========================================================
First, we want to start a single-node Kafka cluster with a ZooKeeper and a broker.

Running ZooKeeper:

> ./bin/zookeeper-server-start.sh ./config/zookeeper.properties &> /tmp/zookeeper.log &

Running Kafka:

> ./bin/kafka-server-start.sh ./config/server.properties &> /tmp/kafka.log &

Then, we want to run a Trogdor Agent, plus a Trogdor broker.

To run the Trogdor Agent:

> ./bin/trogdor.sh agent -c ./config/trogdor.conf -n node0 &> /tmp/trogdor-agent.log &

To run the Trogdor Coordinator:

> ./bin/trogdor.sh coordinator -c ./config/trogdor.conf -n node0 &> /tmp/trogdor-coordinator.log &

Let's confirm that all of the daemons are running:

> jps
116212 Coordinator
115188 QuorumPeerMain
116571 Jps
115420 Kafka
115694 Agent

Now, we can submit a test job to Trogdor. Here's an example of a short bash script which makes it easier.

> ./tests/bin/trogdor-run-produce-bench.sh
[2018-04-12 10:32:04,055] DEBUG Sending POST with input {"id":"produce_bench_22137","spec":{"class":"org.apache.kafka.trogdor.workload.ProduceBenchSpec","startMs":0,"durationMs":10000000,"producerNode":"node0","bootstrapServers":"localhost:9092","targetMessagesPerSec":10,"maxMessages":100,"keyGenerator":{"type":"sequential","size":4,"startOffset":0},"valueGenerator":{"type":"constant","size":512,"value":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},"totalTopics":10,"activeTopics":5,"topicPrefix":"foo","replicationFactor":1,"classLoader":{},"numPartitions":1}} to http://localhost:8889/coordinator/task/create (org.apache.kafka.trogdor.coordinator.CoordinatorClient)
Created task.
$TASK_ID = produce_bench_20462

To get the test results, we run --show-tasks:

./tests/bin/trogdor.sh client --show-tasks localhost:8889
Got coordinator tasks: {
"tasks" : {
"produce_bench_20462" : {
"state" : "DONE",
"spec" : {
"class" : "org.apache.kafka.trogdor.workload.ProduceBenchSpec",
"startMs" : 0,
"durationMs" : 10000000,
"producerNode" : "node0",
"bootstrapServers" : "localhost:9092",
"targetMessagesPerSec" : 10,
"maxMessages" : 100,
"keyGenerator" : {
"type" : "sequential",
"size" : 4,
"startOffset" : 0
},
"valueGenerator" : {
"type" : "constant",
"size" : 512,
"value" : "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
},
"totalTopics" : 10,
"activeTopics" : 5,
"topicPrefix" : "foo",
"replicationFactor" : 1,
"classLoader" : { },
"numPartitions" : 1
},
"startedMs" : 1523552769850,
"doneMs" : 1523552780878,
"cancelled" : false,
"status" : {
"totalSent" : 500,
"averageLatencyMs" : 4.972,
"p50LatencyMs" : 4,
"p95LatencyMs" : 6,
"p99LatencyMs" : 12
}
}
}
}

Trogdor Architecture
========================================
Trogdor has a single coordinator process which manages multiple agent processes. Each agent process is responsible for a single cluster node.

The Trogdor coordinator manages tasks. A task is anything we might want to do on a cluster, such as running a benchmark, injecting a fault, or running a workload. In order to implement each task, the coordinator creates workers on one or more agent nodes.

The Trogdor agent process implements the tasks. For example, when running a workload, the agent process is the process which produces and consumes messages.

Both the coordinator and the agent expose a REST interface that accepts objects serialized via JSON. There is also a command-line program which makes it easy to send messages to either one without manually crafting the JSON message body.

All Trogdor RPCs are idempotent except the shutdown requests. Sending an idempotent RPC twice in a row has the same effect as sending the RPC once.

Tasks
========================================
Tasks are described by specifications containing:

* A "class" field describing the task type. This contains a full Java class name.
* A "startMs" field describing when the task should start. This is given in terms of milliseconds since the UNIX epoch.
* A "durationMs" field describing how long the task should last. This is given in terms of milliseconds.
* Other fields which are task-specific.

The task specification is usually written as JSON. For example, this task specification describes a network partition between nodes 1 and 2, and 3:

{
"class": "org.apache.kafka.trogdor.fault.NetworkPartitionFaultSpec",
"startMs": 1000,
"durationMs": 30000,
"partitions": [["node1", "node2"], ["node3"]]
}

Tasks are submitted to the coordinator. Once the coordinator determines that it is time for the task to start, it creates workers on agent processes. The workers run until the task is done.

Task specifications are immutable; they do not change after the task has been created.

Tasks can be in several states:
* PENDING, when task is waiting to execute,
* RUNNING, when the task is running,
* STOPPING, when the task is in the process of stopping,
* DONE, when the task is done.

Tasks that are DONE also have an error field which will be set if the task failed.

Workloads
========================================
Trogdor can run several workloads. Workloads perform operations on the cluster and measure their performance. Workloads fail when the operations cannot be performed.

### ProduceBench
ProduceBench starts a Kafka producer on a single agent node, producing to several partitions. The workload measures the average produce latency, as well as the median, 95th percentile, and 99th percentile latency.

### RoundTripWorkload
RoundTripWorkload tests both production and consumption. The workload starts a Kafka producer and consumer on a single node. The consumer will read back the messages that were produced by the producer.

### ConsumeBench
ConsumeBench starts a Kafka consumer on a single agent node. The workload measures the average produce latency, as well as the median, 95th percentile, and 99th percentile latency.

Faults
========================================
Trogdor can run several faults which deliberately break something in the cluster.

### ProcessStopFault
ProcessStopFault stops a process by sending it a SIGSTOP signal. When the fault ends, the process is resumed with SIGCONT.

### NetworkPartitionFault
NetworkPartitionFault sets up an artificial network partition between one or more sets of nodes. Currently, this is implemented using iptables. The iptables rules are set up on the outbound traffic from the affected nodes. Therefore, the affected nodes should still be reachable from outside the cluster.
9 changes: 6 additions & 3 deletions Vagrantfile
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ ec2_keypair_file = nil

ec2_region = "us-east-1"
ec2_az = nil # Uses set by AWS
ec2_ami = "ami-9eaa1cf6"
ec2_ami = "ami-905730e8"
ec2_instance_type = "m3.medium"
ec2_user = "ubuntu"
ec2_instance_name_prefix = "kafka-vagrant"
Expand Down Expand Up @@ -80,7 +80,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# share to a temporary location and the provisioning scripts symlink data
# to the right location.
override.cache.enable :generic, {
"oracle-jdk7" => { cache_dir: "/tmp/oracle-jdk7-installer-cache" },
"oracle-jdk8" => { cache_dir: "/tmp/oracle-jdk8-installer-cache" },
}
end
end
Expand Down Expand Up @@ -141,7 +141,10 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
def name_node(node, name, ec2_instance_name_prefix)
node.vm.hostname = name
node.vm.provider :aws do |aws|
aws.tags = { 'Name' => ec2_instance_name_prefix + "-" + Socket.gethostname + "-" + name }
aws.tags = {
'Name' => ec2_instance_name_prefix + "-" + Socket.gethostname + "-" + name,
'JenkinsBuildUrl' => ENV['BUILD_URL']
}
end
end

Expand Down
17 changes: 17 additions & 0 deletions bin/kafka-dump-log.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#!/bin/bash
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

exec $(dirname $0)/kafka-run-class.sh kafka.tools.DumpLogSegments "$@"
59 changes: 47 additions & 12 deletions bin/kafka-run-class.sh
Original file line number Diff line number Diff line change
Expand Up @@ -69,28 +69,50 @@ do
fi
done

for file in "$base_dir"/clients/build/libs/kafka-clients*.jar;
do
if should_include_file "$file"; then
CLASSPATH="$CLASSPATH":"$file"
fi
done
if [ -z "$UPGRADE_KAFKA_STREAMS_TEST_VERSION" ]; then
clients_lib_dir=$(dirname $0)/../clients/build/libs
streams_lib_dir=$(dirname $0)/../streams/build/libs
rocksdb_lib_dir=$(dirname $0)/../streams/build/dependant-libs-${SCALA_VERSION}
else
clients_lib_dir=/opt/kafka-$UPGRADE_KAFKA_STREAMS_TEST_VERSION/libs
streams_lib_dir=$clients_lib_dir
rocksdb_lib_dir=$streams_lib_dir
fi


for file in "$base_dir"/streams/build/libs/kafka-streams*.jar;
for file in "$clients_lib_dir"/kafka-clients*.jar;
do
if should_include_file "$file"; then
CLASSPATH="$CLASSPATH":"$file"
fi
done

for file in "$base_dir"/streams/examples/build/libs/kafka-streams-examples*.jar;
for file in "$streams_lib_dir"/kafka-streams*.jar;
do
if should_include_file "$file"; then
CLASSPATH="$CLASSPATH":"$file"
fi
done

for file in "$base_dir"/streams/build/dependant-libs-${SCALA_VERSION}/rocksdb*.jar;
if [ -z "$UPGRADE_KAFKA_STREAMS_TEST_VERSION" ]; then
for file in "$base_dir"/streams/examples/build/libs/kafka-streams-examples*.jar;
do
if should_include_file "$file"; then
CLASSPATH="$CLASSPATH":"$file"
fi
done
else
VERSION_NO_DOTS=`echo $UPGRADE_KAFKA_STREAMS_TEST_VERSION | sed 's/\.//g'`
SHORT_VERSION_NO_DOTS=${VERSION_NO_DOTS:0:((${#VERSION_NO_DOTS} - 1))} # remove last char, ie, bug-fix number
for file in "$base_dir"/streams/upgrade-system-tests-$SHORT_VERSION_NO_DOTS/build/libs/kafka-streams-upgrade-system-tests*.jar;
do
if should_include_file "$file"; then
CLASSPATH="$CLASSPATH":"$file"
fi
done
fi

for file in "$rocksdb_lib_dir"/rocksdb*.jar;
do
CLASSPATH="$CLASSPATH":"$file"
done
Expand Down Expand Up @@ -137,7 +159,7 @@ done
shopt -u nullglob

if [ -z "$CLASSPATH" ] ; then
echo "Classpath is empty. Please build the project first e.g. by running './gradlew jar -Pscala_version=$SCALA_VERSION'"
echo "Classpath is empty. Please build the project first e.g. by running './gradlew jar -PscalaVersion=$SCALA_VERSION'"
exit 1
fi

Expand Down Expand Up @@ -216,6 +238,12 @@ if [ -z "$KAFKA_JVM_PERFORMANCE_OPTS" ]; then
KAFKA_JVM_PERFORMANCE_OPTS="-server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcurrent -Djava.awt.headless=true"
fi

# version option
for args in "$@" ; do
if [ "$args" = "--version" ]; then
exec $JAVA $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp $CLASSPATH $KAFKA_OPTS "kafka.utils.VersionInfo"
fi
done

while [ $# -gt 0 ]; do
COMMAND=$1
Expand Down Expand Up @@ -246,9 +274,16 @@ GC_FILE_SUFFIX='-gc.log'
GC_LOG_FILE_NAME=''
if [ "x$GC_LOG_ENABLED" = "xtrue" ]; then
GC_LOG_FILE_NAME=$DAEMON_NAME$GC_FILE_SUFFIX
# the first segment of the version number, which is '1' for releases before Java 9

# The first segment of the version number, which is '1' for releases before Java 9
# it then becomes '9', '10', ...
JAVA_MAJOR_VERSION=$($JAVA -version 2>&1 | sed -E -n 's/.* version "([^.-]*).*"/\1/p')
# Some examples of the first line of `java --version`:
# 8 -> java version "1.8.0_152"
# 9.0.4 -> java version "9.0.4"
# 10 -> java version "10" 2018-03-20
# 10.0.1 -> java version "10.0.1" 2018-04-17
# We need to match to the end of the line to prevent sed from printing the characters that do not match
JAVA_MAJOR_VERSION=$($JAVA -version 2>&1 | sed -E -n 's/.* version "([0-9]*).*$/\1/p')
if [[ "$JAVA_MAJOR_VERSION" -ge "9" ]] ; then
KAFKA_GC_LOG_OPTS="-Xlog:gc*:file=$LOG_DIR/$GC_LOG_FILE_NAME:time,tags:filecount=10,filesize=102400"
else
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@ rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rem See the License for the specific language governing permissions and
rem limitations under the License.

"%~dp0kafka-run-class.bat" kafka.tools.ConsumerOffsetChecker %*
"%~dp0kafka-run-class.bat" kafka.tools.DumpLogSegments %*
Loading