Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
966 commits
Select commit Hold shift + click to select a range
86b4d9d
KAFKA-7430: Improve Transformer interface JavaDoc (#5675)
efeller Sep 24, 2018
057c530
KAFKA-7223: Suppress API with only immediate emit (#5567)
vvcephei Sep 24, 2018
c835331
KAFKA-5066; Add KafkaMetricsConfig (Yammer metrics reporters) props t…
omkreddy Sep 25, 2018
81d1244
MINOR: Upgrade to Jackson 2.9.7 (#5662)
ijuma Sep 25, 2018
2933f21
KAFKA-7403; Use default timestamp if no expire timestamp set in offse…
vahidhashemian Sep 25, 2018
f712ce6
KAFKA-7223: add tests in preparation for suppression (#5687)
vvcephei Sep 25, 2018
888423e
KAFKA-7428: ConnectionStressSpec: add "action", allow multiple client…
cmccabe Sep 26, 2018
5916db1
MINOR: Fix broken link in security.html (#5670)
asasvari Sep 26, 2018
9f7267d
KAFKA-7437; Persist leader epoch in offset commit metadata (#5689)
hachikuji Sep 26, 2018
70d90c3
KAFKA-7409; Validate message format version before creating topics or…
huxi-2b Sep 28, 2018
0a8205c
KAFKA-7453: Expire registered channels not selected within idle timeo…
rajinisivaram Sep 28, 2018
e7b6d65
KAFKA-6620: Fix documentation about 'exactly_once'
dongjinleekr Sep 28, 2018
cb21bca
KAFKA-7454: Use lazy allocation for SslTransportLayer buffers and nul…
rajinisivaram Sep 29, 2018
22f1724
KAFKA-7434: Fix NPE in DeadLetterQueueReporter
mihbor Sep 29, 2018
69709d7
MINOR: Update Scala to 2.12.7, lz4-java to 1.5 and others
ijuma Sep 30, 2018
08dfab0
KAFKA-3514: Upgrade Documentation (#5714)
guozhangwang Sep 30, 2018
eb61df6
KAFKA-7223: internally provide full consumer record during restore (#…
vvcephei Sep 30, 2018
49b5206
MINOR: don't log config during unit tests (#5671)
vvcephei Sep 30, 2018
b35e971
KAFKA-7459: Use thread-safe Pool for RequestMetrics.requestRateIntern…
hzxa21 Oct 1, 2018
c1457be
KAFKA-7460: Fix Connect Values converter date format pattern
amitsela Oct 1, 2018
fd44dc7
KAFKA-6684: Support casting Connect values with bytes schema to string
amitsela Oct 1, 2018
d568f73
KAFKA-7456: Serde Inheritance in DSL (#5521)
guozhangwang Oct 1, 2018
dff1a37
KAFKA-7406: Name join group repartition topics (#5709)
bbejeck Oct 2, 2018
5ba9cad
KAFKA-7223: In-Memory Suppression Buffering (#5693)
vvcephei Oct 2, 2018
8fb5e63
KAFKA-7429: Enable key/truststore update with same filename/password …
rajinisivaram Oct 2, 2018
2a0abe5
MINOR KAFKA-7406: Follow up and address final comments (#5730)
bbejeck Oct 2, 2018
044350f
MINOR: Reduce in-memory copies of partition objects in onJoinComplete…
radai-rosenblatt Oct 3, 2018
09f3205
MINOR: Increase timeout for starting JMX tool (#5735)
rhauch Oct 3, 2018
b793eaa
KAFKA-7223: Make suppression buffer durable (#5724)
vvcephei Oct 3, 2018
a5335e7
KAFKA-6123: Give client MetricsReporter auto-generated client.id (#5383)
KevinLiLu Oct 3, 2018
7bd8ada
MINOR: Docs on state store instantiation (#5698)
guozhangwang Oct 3, 2018
87879d5
KAFKA-7223: Add name config to Suppressed (#5731)
vvcephei Oct 4, 2018
862e09f
HOTFIX: Fix broken links (#5676)
bbejeck Oct 4, 2018
260b07a
KAFKA-7196; Remove heartbeat delayed operation for those removed cons…
Oct 4, 2018
ca641b3
KAFKA-7277: Migrate Streams API to Duration instead of longMs times (…
nizhikov Oct 4, 2018
f2dd6aa
KAFKA-7415; Persist leader epoch and start offset on becoming a leade…
hachikuji Oct 4, 2018
7ea0655
KAFKA-7441; Allow LogCleanerManager.resumeCleaning() to be used concu…
xiowu0 Oct 4, 2018
2b37a04
MINOR: Bump version to 2.2.0-SNAPSHOT
lindong28 Oct 5, 2018
d76805f
MINOR: Fix generic type of ProcessorParameters (#5741)
vvcephei Oct 5, 2018
3edd8e7
KAFKA-7476: Fix Date-based types in SchemaProjector
rayokota Oct 5, 2018
1bc620d
MINOR: Clarify usage of stateful processor node (#5740)
vvcephei Oct 5, 2018
50ec829
MINOR: Switch to use AWS spot instances
maxzheng Oct 5, 2018
62f9b64
MINOR: Ensure consumers are closed in DynamicBrokerReconfigurationTes…
hachikuji Oct 5, 2018
089d1b1
MINOR: Add topic config to PartitionsSpec (#5523)
cmccabe Oct 5, 2018
79757c9
KAFKA-7467; NoSuchElementException is raised because controlBatch is …
bob-barrett Oct 5, 2018
6a03d3b
KAFKA-6914; Set parent classloader of DelegatingClassLoader same as t…
kkonstantine Oct 5, 2018
ed3bd79
KAFKA-7395; Add fencing to replication protocol (KIP-320) (#5661)
hachikuji Oct 5, 2018
5e9208f
HOTFIX: Compilation error in GroupMetadataManagerTest (#5752)
hachikuji Oct 5, 2018
eb8b1c0
KAFKA-7484: fix suppression integration tests (#5748)
vvcephei Oct 5, 2018
02a9579
Fix typo in Resource in org.apache.kafka.trogdor (#5739)
matus-cuper Oct 6, 2018
c26823b
KAFKA-7462: Make token optional for OAuthBearerLoginModule (#5733)
rajinisivaram Oct 8, 2018
13379af
KAFKA-7215: Improve LogCleaner Error Handling (#5439)
stanislavkozlovski Oct 8, 2018
6165b43
MINOR: Fix LogDirFailureTest flake
gardnervickers Oct 8, 2018
04f2844
KAFKA-7478: Reduce default logging verbosity in OAuthBearerLoginModul…
stanislavkozlovski Oct 8, 2018
f44860f
MINOR: Fix small spelling error (#5760)
bbejeck Oct 8, 2018
87bf5c3
KAFKA-7198: Enhance KafkaStreams start method javadoc. (#5763)
kamalcph Oct 9, 2018
0848b78
KAFKA-7366: Make topic configs segment.bytes and segment.ms to take e…
omkreddy Oct 9, 2018
6d16879
KAFKA-7477: Improve Streams close timeout semantics (#5747)
nizhikov Oct 9, 2018
15dbab0
KAFKA-3097: Update docs to mention PrincipalType "User" is case sensi…
omkreddy Oct 9, 2018
4be79b6
MINOR: Remove redundant `if` condition. (#5697)
kamalcph Oct 9, 2018
9a74569
KAFKA-7483: Allow streams to pass headers through Serializer. (#5751)
kamalcph Oct 9, 2018
578205c
KAFKA-7439; Replace EasyMock and PowerMock with Mockito in clients mo…
ijuma Oct 9, 2018
741cb76
KAFKA-4514; Add Codec for ZStandard Compression (#2267)
dongjinleekr Oct 10, 2018
349b5ad
KAFKA-4932: Update docs for KIP-206 (#5769)
mjsax Oct 10, 2018
34f029e
MINOR: Fix broken standalone ReplicationQuotasTestRig test (#5773)
omkreddy Oct 10, 2018
adb3a95
MINOR: Fix remaining core, connect and clients tests to pass with Jav…
ijuma Oct 10, 2018
b63cd63
MINOR: Adjust test params pursuant to KAFKA-4514. (#5777)
colinhicks Oct 10, 2018
8d52b7e
MINOR: AbstractIndex.close should unmap (#5757)
ijuma Oct 11, 2018
905f813
MINOR: default implementation for new window store overloads (#5759)
vvcephei Oct 11, 2018
79bc0dc
KAFKA-7475 - capture remote address on connection authetication error…
radai-rosenblatt Oct 11, 2018
f393b2f
KAFKA-6863 Kafka clients should try to use multiple DNS resolved IP (…
edoardocomar Oct 11, 2018
21f88a5
KAFKA-7223: Add late-record metrics (#5742)
vvcephei Oct 12, 2018
aaf8e02
KAFKA-7482: LeaderAndIsrRequest should be sent to the shutting down b…
junrao Oct 12, 2018
6f5e373
KAFKA-7485: Wait for truststore update request to complete in test (#…
rajinisivaram Oct 12, 2018
6a3382c
MINOR: Streams Update for KIP-330 / KIP-356 (#5794)
guozhangwang Oct 12, 2018
a947fe8
KAFKA-6195: Resolve DNS aliases in bootstrap.server (KIP-235) (#4485)
Oct 13, 2018
2d77746
MINOR: fixes on streams upgrade test (#5754)
guozhangwang Oct 14, 2018
148b5be
MINOR: Update reverse lookup test to work when ipv6 not enabled (#5797)
rajinisivaram Oct 15, 2018
4c602e6
KAFKA-7498: Remove references from `common.requests` to `clients` (#5…
rajinisivaram Oct 15, 2018
0b417b8
MINOR: updates docs for KIP-358 (#5796)
mjsax Oct 16, 2018
f047e1c
MINOR: fix non-deterministic streams-scala tests (#5792)
vvcephei Oct 16, 2018
763b72c
MINOR: Doc changes for KIP-324 (#5788)
bbejeck Oct 16, 2018
8182c4f
MINOR: doc changes for KIP-372 (#5790)
bbejeck Oct 16, 2018
5681309
KAFKA-6764: Improve the whitelist command-line option for console-con…
sumannewton Oct 16, 2018
2646781
KAFKA-7080 and KAFKA-7222: Cleanup overlapping KIP changes (#5804)
mjsax Oct 16, 2018
4b7148a
KAFKA-7223: Suppression documentation (#5787)
vvcephei Oct 16, 2018
90d0fd5
MINOR: Doc changes for KIP-312 (#5789)
bbejeck Oct 16, 2018
509dd95
KAFKA-7496: Handle invalid filters gracefully in KafkaAdminClient#des…
cmccabe Oct 16, 2018
86b1150
MINOR: Update Streams Scala API for addition of Grouped (#5793)
bbejeck Oct 16, 2018
9951f8f
KAFKA-7513: Fix timing issue in SaslAuthenticatorFailureDelayTest (#5…
rajinisivaram Oct 16, 2018
eae5ae3
KAFKA-7080 and KAFKA-7222: Cleanup overlapping KIP changes Part 2
vvcephei Oct 17, 2018
1e92b70
MINOR: Ensure initial topic configs and updates are logged
hachikuji Oct 18, 2018
53d0674
KAFKA-7505: Process incoming bytes on write error to report SSL failu…
rajinisivaram Oct 18, 2018
3f7e4fb
MINOR: Add a note about Zstandard compression in the upgrade docs
hachikuji Oct 18, 2018
928f45f
KAFKA-7464; catch exceptions in "leaderEndpoint.close()" when shuttin…
hzxa21 Oct 18, 2018
9e088eb
MINOR: Remove redundant try block in LogCleaner (#5776)
dhruvilshah3 Oct 20, 2018
74f686d
MINOR: Less restrictive assertion in flaky BufferPool test (#5799)
colinhicks Oct 21, 2018
83c3996
MINOR: Fix some typos
jeis2497052 Oct 21, 2018
83e9833
KAFKA-7131: Update release script to generate announcement email text
Oct 21, 2018
fed27fd
KAFKA-7501: Fix producer batch double deallocation when receiving mes…
xiowu0 Oct 22, 2018
ed94cf4
KAFKA-7519 Clear pending transaction state when expiration fails (#5820)
BirdHowl Oct 22, 2018
e9bbfde
MINOR: Prohibit setting StreamsConfig commit.interval.ms to a negativ…
occho Oct 23, 2018
ff3c4e2
MINOR: fix docs typo (#5827)
mjsax Oct 23, 2018
cb6d69c
MINOR: buffer should ignore caching (#5819)
vvcephei Oct 24, 2018
8b1d705
MINOR: Fix undefined variable in Connect test
rhauch Oct 24, 2018
d2c870b
MINOR: Fix flaky assertion in ControllerIntegrationTest (#5829)
stanislavkozlovski Oct 24, 2018
32e1da5
KAFKA-5462: Add configuration to build custom SSL principal name (KIP…
omkreddy Oct 25, 2018
73da591
KAFKA-7535; KafkaConsumer doesn't report records-lag if isolation.lev…
lambdaliu Oct 25, 2018
262bb00
MINOR: add upgrade note for KIP-336
viktorsomogyi Oct 25, 2018
b403a09
MINOR: Simplify handling of KafkaProducer serializer overrides
ijuma Oct 25, 2018
29a2921
MINOR: Fix checkstyle error caused by #5781
lindong28 Oct 25, 2018
eda4a29
KAFKA-7532: Clean-up controller log when shutting down brokers (#5831)
stanislavkozlovski Oct 26, 2018
5106179
MINOR: Remove unused commitSync in ConsoleConsumer (#5845)
ijuma Oct 26, 2018
e8a3bc7
KAFKA-7352; Allow SASL Connections to Periodically Re-Authenticate (K…
rondagostino Oct 26, 2018
57502a6
KAFKA-7534: Error in flush calling close may prevent underlying store…
bbejeck Oct 26, 2018
c9d3deb
MINOR: SuppressScenarioTest should set StreamsConfig.STATE_DIR_CONFIG…
lbradstreet Oct 27, 2018
ccfcbfd
MINOR: Make log cleaner tests more efficient and less flaky (#5836)
stanislavkozlovski Oct 27, 2018
7cdc433
MINOR: SuppressionIntegrationTest should set StreamsConfig.STATE_DIR_…
lbradstreet Oct 28, 2018
63715ef
MINOR: Bump timeout for sending records (#5843)
bbejeck Oct 28, 2018
5d7cb43
MINOR: Remove duplicate `subscribe` call in ConsumerPerformance (#5828)
huxi-2b Oct 28, 2018
4fd5fe2
MINOR: Remove unintentional tilde character from kafka-run-class.bat …
florianhof Oct 28, 2018
b4722cc
KAFKA-7524: Recommend Scala 2.12 and use it for development (#5530)
ijuma Oct 28, 2018
eede70a
KAFKA-7413: Replace slave terminology with follower in documentation …
satybald Oct 29, 2018
9a0ea25
MINOR: Use string/log interpolation instead of string concat in core …
mimaison Oct 29, 2018
d28c534
KAFKA-7515: Trogdor - Add Consumer Group Benchmark Specification (#5810)
stanislavkozlovski Oct 29, 2018
d71cb54
KAFKA-7567; Clean up internal metadata usage for consistency and exte…
hachikuji Oct 30, 2018
fc1eea1
MINOR: Improve ReplicationQuotasTest#shouldThrottleOldSegments resili…
stanislavkozlovski Oct 31, 2018
8065a0b
MINOR: Fix a few blocking calls in PlaintextConsumerTest (#5859)
hachikuji Oct 31, 2018
b2c67e4
MINOR: Add try/finally blocks to close adminclient in DelegationToken…
omkreddy Nov 1, 2018
fc1dc35
KAFKA-7568; Return leader epoch in ListOffsets response (#5855)
hachikuji Nov 1, 2018
ea518e4
KAFKA-7561: Increase stop_timeout_sec to make ConsoleConsumerTest pas…
gardnervickers Nov 3, 2018
872df55
MINOR: KStreams SuppressionDurabilityIntegrationTest should set Strea…
lbradstreet Nov 5, 2018
f856082
KAFKA-7559: Correct standalone system tests to use the correct extern…
rhauch Nov 6, 2018
6f83d05
KAFKA-7313; StopReplicaRequest should attempt to remove future replic…
lindong28 Nov 6, 2018
1c5aec6
MINOR: Modify Connect service's startup timeout to be passed via the …
mageshn Nov 6, 2018
63889b3
KAFKA-7481; Add upgrade/downgrade notes for 2.1.x
hachikuji Nov 6, 2018
7b5ffa0
KAFKA-7537: Avoid sending full UpdateMetadataRequest to existing bro…
hzxa21 Nov 6, 2018
df0faee
KAFKA-7560; PushHttpMetricsReporter should not convert metric value t…
lindong28 Nov 7, 2018
8abbf33
KAFKA-7431: Clean up connect unit tests
mrsrinivas Nov 7, 2018
29383d6
KAFKA-7604; Fix flaky unit test `testRebalanceAfterTopicUnavailableWi…
hachikuji Nov 8, 2018
eb3335e
KAFKA-7165: Retry the BrokerInfo registration into ZooKeeper (#5575)
jonathansantilli Nov 8, 2018
895c83f
KAFKA-7412: clarify the doc for producer callback (#5798)
huxi-2b Nov 9, 2018
ecb71cf
KAFKA-7564: Expose single task details in Trogdor (#5852)
stanislavkozlovski Nov 9, 2018
af2e6fb
MINOR: Update zstd, easymock, powermock, zkclient and build plugins (…
ijuma Nov 10, 2018
3eaf44b
KAFKA-7557: optimize LogManager.truncateFullyAndStartAt() (#5848)
huxi-2b Nov 12, 2018
1c1e5ee
KAFKA-7518: Fix FutureRecordMetadata.get when TimeUnit is not ms (#5815)
akatona84 Nov 12, 2018
6c2e700
MINOR: Remove unused IteratorTemplate (#5903)
hachikuji Nov 12, 2018
12f310d
KAFKA-7612: Fix javac warnings and enable warnings as errors (#5900)
ijuma Nov 13, 2018
e08d721
KAFKA-7605; Retry async commit failures in integration test cases to …
hachikuji Nov 13, 2018
d00938f
Trogdor: Fix /coordinator/tasks parameters to accept long values (#5905)
stanislavkozlovski Nov 13, 2018
8259fda
KAFKA-7514: Add threads to ConsumeBenchWorker (#5864)
stanislavkozlovski Nov 13, 2018
f52de5f
MINOR: Remove unused abstract function in test class (#5888)
cyrusv Nov 13, 2018
545d40d
MINOR: Avoid logging connector configuration in Connect framework (#5…
rhauch Nov 13, 2018
14d3ead
MINOR: Remove deprecated callers (#5911)
guozhangwang Nov 15, 2018
004fd1f
MINOR: Bump documentation version to 2.1
vahidhashemian Nov 15, 2018
9346660
MINOR: Code cleanup in StreamsResetter (#5891)
mjsax Nov 15, 2018
d2f3794
KAFKA-7584: StreamsConfig throws ClassCastException if max.in.flight.…
mjsax Nov 15, 2018
80eb2c2
MINOR: improve Puncutation JavaDocs and add runtime argument check (#…
mjsax Nov 15, 2018
abc0959
MINOR: Remove redundant SuppressIntegrationTests (#5896)
vvcephei Nov 15, 2018
23ed45a
HOTFIX: remove deprecated calls
guozhangwang Nov 15, 2018
1a4d44f
KAFKA-7576; Fix shutdown of replica fetcher threads (#5875)
rajinisivaram Nov 16, 2018
c3e7d62
KAFKA-6774; Improve the default group id behavior in KafkaConsumer (K…
vahidhashemian Nov 16, 2018
b21e933
* MINOR: Catching null pointer exception for empty leader URL when as…
asdf2014 Nov 16, 2018
9646602
KAFKA-7402: Implement KIP-376 AutoCloseable additions
shunge Nov 16, 2018
190cbd9
MINOR: fix failing Streams system tests (#5928)
mjsax Nov 20, 2018
8dc4d0e
KAFKA-6567: Remove KStreamWindowReducer (#5922)
samuel-hawker Nov 20, 2018
938e6aa
MINOR: Improve maven artifactory url in release.py (#5931)
lindong28 Nov 20, 2018
1d4ca5a
KAFKA-7616; Make MockConsumer only add entries to the partition map r…
srdo Nov 20, 2018
46e7b13
KAFKA-7536: Initialize TopologyTestDriver with non-null topic (#5923)
guozhangwang Nov 20, 2018
068ab9c
KAFKA-7528: Standardize on Min/Avg/Max Kafka metrics' default value -…
stanislavkozlovski Nov 20, 2018
808dc0a
MINOR: Update docs with out-dated context.schedule(...) examples (#5924)
cadonna Nov 21, 2018
14fbf16
MINOR: increase system test kafka start timeout (#5934)
vvcephei Nov 21, 2018
ad26914
KAFKA-7418: Add the missing '--help' option to Kafka commands (KIP-374)
mrsrinivas Nov 22, 2018
50a61c0
MINOR: fix bootstrap-server typo in ReassignPartitionsCommand (#5941)
viktorsomogyi Nov 22, 2018
4e90af3
MINOR: Various javadoc improvement in clients and connect (#5878)
mimaison Nov 23, 2018
d0ed389
MINOR: Refactor code for restoring tasks (#5768)
mjsax Nov 23, 2018
7fadf0a
Trogdor: Add Task State filter to /coordinator/tasks endpoint (#5907)
stanislavkozlovski Nov 27, 2018
9368743
KAFKA-7597: Add transaction support to ProduceBenchWorker (#5885)
stanislavkozlovski Nov 27, 2018
55c77eb
KAFKA-7223: Suppression Buffer Metrics (#5795)
vvcephei Nov 27, 2018
dfd5454
MINOR: Add system test for optimization upgrades (#5912)
bbejeck Nov 27, 2018
de24d4a
KAFKA-7367: Streams should not create state store directories unless …
kamalcph Nov 27, 2018
0ee1635
KAFKA-7389: Enable spotBugs with Java 11 and disable false positive w…
ijuma Nov 27, 2018
a2e87fe
KAFKA-7620: Fix restart logic for TTLs in WorkerConfigTransformer
rayokota Nov 28, 2018
e869d8f
MINOR: Improve docs by adding ToC links to Monitoring
KevinLiLu Nov 28, 2018
c32b7e5
KAFKA-7037: Improve the topic command description of `--topic` option
vahidhashemian Nov 28, 2018
ec66818
MINOR: Support long maxMessages in Trogdor consume/produce bench work…
stanislavkozlovski Nov 28, 2018
2c305dc
KAFKA-7671: Stream-Global Table join should not reset repartition fla…
bbejeck Nov 29, 2018
fb9f2d8
Forward topic from console consumer to deserializer (#5704)
mchataigner Nov 29, 2018
4fb5520
MINOR: Fix ProducerPerformance bug when numRecords > Integer.MAX (#5956)
seayoun Nov 29, 2018
bfbc32d
KAFKA-7660: fix parentSensors memory leak (#5953)
vvcephei Nov 29, 2018
4a0fd4c
MINOR: Bump Gradle version to 5.0 (#5964)
colinhicks Nov 30, 2018
b7d95da
KAFKA-7660: Fix child sensor memory leak (#5974)
vvcephei Nov 30, 2018
944f24c
KAFKA-7259; Remove deprecated ZKUtils usage from ZkSecurityMigrator
omkreddy Nov 30, 2018
3acebe6
MINOR: Fix handling of dummy record in EndToEndLatency tool
apovzner Nov 30, 2018
4712a36
MINOR: Add logging to Connect SMTs
cyrusv Nov 30, 2018
ace4dd0
KAFKA-7551: Refactor to create producer & consumer in the worker
mageshn Nov 30, 2018
eca6620
KAFKA-7617: Add authorization primitives to security page
viktorsomogyi Nov 30, 2018
9b476bc
MINOR: improve state directory test (#5961)
mjsax Nov 30, 2018
c482264
MINOR: hygene cleanup in TransactionManagerTest (#5951)
viktorsomogyi Dec 3, 2018
e7ce0e7
KAFKA-4544: Add system tests for delegation token based authentication
asasvari Dec 3, 2018
2155c6d
KAFKA-7235: Detect outdated control requests and bounced brokers usin…
hzxa21 Dec 3, 2018
4444a31
MINOR: improve QueryableStateIntegrationTest (#5987)
mjsax Dec 3, 2018
ab1fb3f
MINOR: Adding system test for named repartition topics (#5913)
bbejeck Dec 3, 2018
b4030a0
MINOR: Update command line options in Authorization and ACLs document…
scholzj Dec 4, 2018
7283711
KAFKA-7446: Fix the duration and instant validation messages. (#5930)
mrsrinivas Dec 4, 2018
437cf35
KAFKA-7702: Fix matching of prefixed ACLs to match single char prefix…
rajinisivaram Dec 4, 2018
f65b1c4
KAFKA-7687; Print batch level information in DumpLogSegments when dee…
huxi-2b Dec 4, 2018
a1807d4
MINOR: Improve GlobalKTable docs (#5996)
mjsax Dec 5, 2018
0d4cf64
KAFKA-7697: Process DelayedFetch without holding leaderIsrUpdateLock …
rajinisivaram Dec 5, 2018
ec501f3
KAFKA-7420: Global store surrounded by read only implementation (#5865)
nizhikov Dec 5, 2018
b616f91
KAFKA-7678: Avoid NPE when closing the RecordCollector (#5993)
jonathansantilli Dec 5, 2018
9f954ac
MINOR: Safe string conversion to avoid NPEs
cyrusv Dec 5, 2018
0ffdf83
KAFKA-6388; Recover from rolling an empty segment that already exists…
apovzner Dec 5, 2018
38e7d57
KAFKA-7673: Upgrade rocksdb to 5.15.10 (#5985)
guozhangwang Dec 6, 2018
87cc31c
KAFKA-7704: MaxLag.Replica metric is reported incorrectly (#5998)
huxi-2b Dec 6, 2018
c050503
KAFKA-7709: Fix ConcurrentModificationException when retrieving expir…
markcho Dec 7, 2018
05dc36d
MINOR: Fix failing ConsumeBenchTest:test_multiple_consumers_specified…
stanislavkozlovski Dec 8, 2018
ac35ef6
MINOR: Specify character encoding in NetworkTestUtils (#5965)
gardnervickers Dec 8, 2018
edfa681
MINOR: Catch NoRecordsException in testCommaSeparatedRegex() test (#5…
stanislavkozlovski Dec 8, 2018
b492296
MINOR: fix checkpoint write failure warning log (#6008)
vvcephei Dec 9, 2018
c0353d8
KAFKA-6036: Local Materialization for Source KTable (#5779)
guozhangwang Dec 9, 2018
ab156fd
KAFKA-6036: Follow-up; cleanup sendOldValues logic ForwardingCacheFlu…
guozhangwang Dec 9, 2018
7a3dffb
KAFKA-7549; Old ProduceRequest with zstd compression does not return …
dongjinleekr Dec 10, 2018
20069b3
KAFKA-7610; Proactively timeout new group members if rebalance is del…
hachikuji Dec 10, 2018
a94c8da
KAFKA-7443: OffsetOutOfRangeException in restoring state store from c…
linyli001 Dec 11, 2018
c142809
KAFKA-6970: All standard state stores guarded with read only wrapper …
nizhikov Dec 11, 2018
046b008
MINOR: improve Streams checkstyle and code cleanup (#5954)
mjsax Dec 11, 2018
3ef6b0f
MINOR: Add unit for max latency in ProducerPerformance output (#6014)
wicknicks Dec 12, 2018
975b680
KAFKA-7705; Fix and simplify producer config in javadoc example (#6000)
hackerwin7 Dec 12, 2018
46e8081
KAFKA-7712; Remove channel from Selector before propagating exception…
rajinisivaram Dec 12, 2018
fdd33bc
KAFKA-7223: document suppression buffer metrics (#6024)
vvcephei Dec 13, 2018
dffce6e
KAFKA-7655 Metadata spamming requests from Kafka Streams under some c…
Pasvaz Dec 13, 2018
88443b4
Fix the missing ApiUtils tests in streams module. (#6003)
mrsrinivas Dec 14, 2018
da332f2
MINOR:Start processor inside verify message (#6029)
bbejeck Dec 14, 2018
f982f61
MINOR: Update documentation for internal changelog when using table()…
cwildman Dec 14, 2018
5c549b2
MINOR: Replace tbd with the actual link for out-of-ordering data (#6035)
guozhangwang Dec 14, 2018
1522929
KAFKA-2334; Guard against non-monotonic offsets in the client (#5991)
mumrah Dec 14, 2018
c441528
MINOR: improve Streams error message (#5975)
mjsax Dec 17, 2018
4039226
MINOR: Include additional detail in fetch error message (#6036)
hachikuji Dec 17, 2018
09c4a3e
MINOR: Update README.md with Gradle 5+ requirement (#6039)
asasvari Dec 18, 2018
40ca7dd
MINOR: Stabilization fixes broker down test trunk (#6043)
bbejeck Dec 20, 2018
b23bf41
KAFKA-7742; Fixed removing hmac entry for a token being removed from …
satishd Dec 20, 2018
d413117
KAFKA-7762; Update KafkaConsumer Javadoc examples to use poll(Duratio…
matzew Dec 20, 2018
ee370d3
KAFKA-7759; Disable WADL output in the Connect REST API (#6051)
avocader Dec 20, 2018
85906d3
MINOR: Switch anonymous classes to lambda expressions in tools module
mrsrinivas Dec 21, 2018
6841849
MINOR: Hygiene fixes in KafkaFutureImpl (#5098)
viktorsomogyi Dec 21, 2018
5533445
KAFKA-7054; Kafka describe command should throw topic doesn't exist e…
ManoharVanam Dec 21, 2018
639427a
MINOR: Increase throughput for VerifiableProducer in test (#6060)
bbejeck Dec 22, 2018
53eb8df
MINOR: Bump admin client retries for creating repartition topics (#6063)
bbejeck Dec 22, 2018
4616c0a
MINOR: Add test demonstrating re-use of KGroupedStream with Optimizat…
bbejeck Dec 22, 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
  •  
  •  
  •  
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
dist
*classes
*.class
target/
build/
build_eclipse/
Expand Down Expand Up @@ -47,3 +48,7 @@ tests/venv
docs/generated/

.release-settings.json

kafkatest.egg-info/
systest/
*.swp
66 changes: 66 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,7 @@
See the License for the specific language governing permissions and
limitations under the License.

------------------------------------------------------------------------------------
This distribution has a binary dependency on jersey, which is available under the CDDL
License as described below.

Expand Down Expand Up @@ -328,3 +329,68 @@ As between Initial Developer and the Contributors, each party is responsible for
NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL)

The code released under the CDDL shall be governed by the laws of the State of California (excluding conflict-of-law provisions). Any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California and the state courts of the State of California, with venue lying in Santa Clara County, California.

------------------------------------------------------------------------------------
This distribution has a binary dependency on zstd, which is available under the BSD 3-Clause License as described below.

BSD License

For Zstandard software

Copyright (c) 2016-present, Facebook, Inc. All rights reserved.

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.

* Neither the name Facebook nor the names of its contributors may be used to
endorse or promote products derived from this software without specific
prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

------------------------------------------------------------------------------------
This distribution has a binary dependency on zstd-jni, which is available under the BSD 2-Clause License
as described below.

Zstd-jni: JNI bindings to Zstd Library

Copyright (c) 2015-2016, Luben Karavelov/ All rights reserved.

BSD License

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
60 changes: 29 additions & 31 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,11 @@ 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 5.0 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 11 at runtime.

Scala 2.12 is used by default, see below for how to use a different Scala version or all of the supported Scala versions.

### First bootstrap and download the wrapper ###
cd kafka_source_dir
Expand Down Expand Up @@ -43,7 +45,7 @@ Follow instructions in http://kafka.apache.org/documentation.html#quickstart
./gradlew cleanTest integrationTest

### Running a particular unit/integration test ###
./gradlew -Dtest.single=RequestResponseSerializationTest core:test
./gradlew clients:test --tests RequestResponseTest

### Running a particular test method within a unit/integration test ###
./gradlew core:test --tests kafka.api.ProducerFailureHandlingTest.testCannotSendToInternalTopic
Expand All @@ -52,7 +54,7 @@ Follow instructions in http://kafka.apache.org/documentation.html#quickstart
### Running a particular unit/integration test with log4j output ###
Change the log4j setting in either `clients/src/test/resources/log4j.properties` or `core/src/test/resources/log4j.properties`

./gradlew -i -Dtest.single=RequestResponseSerializationTest core:test
./gradlew clients:test --tests RequestResponseTest

### Generating test coverage reports ###
Generate coverage reports for the whole project:
Expand All @@ -64,28 +66,33 @@ Generate coverage for a single module, i.e.:
./gradlew clients:reportCoverage

### Building a binary release gzipped tar ball ###
./gradlew clean
./gradlew releaseTarGz
./gradlew clean releaseTarGz

The above command will fail if you haven't set up the signing key. To bypass signing the artifact, you can run:

./gradlew releaseTarGz -x signArchives
./gradlew clean releaseTarGz -x signArchives

The release file can be found inside `./core/build/distributions/`.

### Cleaning the build ###
./gradlew clean

### Running a task on a particular version of Scala (either 2.11.x or 2.12.x) ###
*Note that if building the jars with a version other than 2.11.12, you need to set the `SCALA_VERSION` variable or change it in `bin/kafka-run-class.sh` to run the quick start.*
### Running a task with a particular version of Scala (either 2.11.x or 2.12.x) ###
*Note that if building the jars with a version other than 2.12.x, you need to set the `SCALA_VERSION` variable or change it in `bin/kafka-run-class.sh` to run the quick start.*

You can pass either the major version (eg 2.12) or the full version (eg 2.12.7):

./gradlew -PscalaVersion=2.12 jar
./gradlew -PscalaVersion=2.12 test
./gradlew -PscalaVersion=2.12 releaseTarGz

You can pass either the major version (eg 2.11) or the full version (eg 2.11.12):
### Running a task with all scala versions ###

./gradlew -PscalaVersion=2.11 jar
./gradlew -PscalaVersion=2.11 test
./gradlew -PscalaVersion=2.11 releaseTarGz
Append `All` to the task name:

Scala 2.12.x requires Java 8.
./gradlew testAll
./gradlew jarAll
./gradlew releaseTarGzAll

### Running a task for a specific project ###
This is for `core`, `examples` and `clients`
Expand All @@ -106,15 +113,6 @@ The `eclipse` task has been configured to use `${project_dir}/build_eclipse` as
build directory (`${project_dir}/bin`) clashes with Kafka's scripts directory and we don't use Gradle's build directory
to avoid known issues with this configuration.

### Building the jar for all scala versions and for all projects ###
./gradlew jarAll

### Running unit/integration tests for all scala versions and for all projects ###
./gradlew testAll

### Building a binary release gzipped tar ball for all scala versions ###
./gradlew releaseTarGzAll

### Publishing the jar for all version of Scala and for all projects to maven ###
./gradlew uploadArchivesAll

Expand Down Expand Up @@ -170,7 +168,7 @@ Please note for this to work you should create/update user maven settings (typic
./gradlew dependencyUpdates

### Running code quality checks ###
There are two code quality analysis tools that we regularly run, findbugs and checkstyle.
There are two code quality analysis tools that we regularly run, spotbugs and checkstyle.

#### Checkstyle ####
Checkstyle enforces a consistent coding style in Kafka.
Expand All @@ -181,14 +179,14 @@ You can run checkstyle using:
The checkstyle warnings will be found in `reports/checkstyle/reports/main.html` and `reports/checkstyle/reports/test.html` files in the
subproject build directories. They are also are printed to the console. The build will fail if Checkstyle fails.

#### Findbugs ####
Findbugs uses static analysis to look for bugs in the code.
You can run findbugs using:
#### Spotbugs ####
Spotbugs uses static analysis to look for bugs in the code.
You can run spotbugs using:

./gradlew findbugsMain findbugsTest -x test
./gradlew spotbugsMain spotbugsTest -x test

The findbugs warnings will be found in `reports/findbugs/main.html` and `reports/findbugs/test.html` files in the subproject build
directories. Use -PxmlFindBugsReport=true to generate an XML report instead of an HTML one.
The spotbugs warnings will be found in `reports/spotbugs/main.html` and `reports/spotbugs/test.html` files in the subproject build
directories. Use -PxmlSpotBugsReport=true to generate an XML report instead of an HTML one.

### Common build options ###

Expand All @@ -200,7 +198,7 @@ The following options should be set with a `-P` switch, for example `./gradlew -
* `showStandardStreams`: shows standard out and standard error of the test JVM(s) on the console.
* `skipSigning`: skips signing of artifacts.
* `testLoggingEvents`: unit test events to be logged, separated by comma. For example `./gradlew -PtestLoggingEvents=started,passed,skipped,failed test`.
* `xmlFindBugsReport`: enable XML reports for findBugs. This also disables HTML reports as only one can be enabled at a time.
* `xmlSpotBugsReport`: enable XML reports for spotBugs. This also disables HTML reports as only one can be enabled at a time.

### Running in Vagrant ###

Expand Down
159 changes: 159 additions & 0 deletions TROGDOR.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
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
Sent CreateTaskRequest for task produce_bench_21634.$TASK_ID = produce_bench_21634

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

./bin/trogdor.sh client --show-tasks localhost:8889
Got coordinator tasks: {
"tasks" : {
"produce_bench_21634" : {
"state" : "DONE",
"spec" : {
"class" : "org.apache.kafka.trogdor.workload.ProduceBenchSpec",
"startMs" : 0,
"durationMs" : 10000000,
"producerNode" : "node0",
"bootstrapServers" : "localhost:9092",
"targetMessagesPerSec" : 10000,
"maxMessages" : 50000,
"keyGenerator" : {
"type" : "sequential",
"size" : 4,
"startOffset" : 0
},
"valueGenerator" : {
"type" : "constant",
"size" : 512,
"value" : "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
},
"activeTopics" : {
"foo[1-3]" : {
"numPartitions" : 10,
"replicationFactor" : 1
}
},
"inactiveTopics" : {
"foo[4-5]" : {
"numPartitions" : 10,
"replicationFactor" : 1
}
}
},
"startedMs" : 1541435949784,
"doneMs" : 1541435955803,
"cancelled" : false,
"status" : {
"totalSent" : 50000,
"averageLatencyMs" : 11.0293,
"p50LatencyMs" : 9,
"p95LatencyMs" : 27,
"p99LatencyMs" : 39
}
}
}
}

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 one or more Kafka consumers on a single agent node. Depending on the passed in configuration (see ConsumeBenchSpec), the consumers either subscribe to a set of topics (leveraging consumer group functionality and dynamic partition assignment) or manually assign partitions to themselves.
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.
Loading