From 9ee6cd44fcf4ae4b801ed59408735449c61b4596 Mon Sep 17 00:00:00 2001 From: Abhishek Yadav Akkem Date: Fri, 14 Apr 2023 11:18:16 -0700 Subject: [PATCH 1/6] Updating aws cpp sdk version --- bootstrap.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bootstrap.sh b/bootstrap.sh index c5548565..5f7c02b3 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -18,7 +18,7 @@ BOOST_VERSION_UNDERSCORED="${BOOST_VERSION//\./_}" # convert from 1.76.0 to 1_76 ZLIB_VERSION="1.2.13" PROTOBUF_VERSION="3.11.4" CURL_VERSION="7.86.0" -AWS_SDK_CPP_VERSION="1.10.56" +AWS_SDK_CPP_VERSION="1.11.59" LIB_OPENSSL="https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz" LIB_BOOST="https://boostorg.jfrog.io/artifactory/main/release/${BOOST_VERSION}/source/boost_${BOOST_VERSION_UNDERSCORED}.tar.gz" From 195c7e66d0f41837b9d836f9d5f26972696847bc Mon Sep 17 00:00:00 2001 From: Abhishek Yadav Akkem Date: Fri, 14 Apr 2023 11:39:44 -0700 Subject: [PATCH 2/6] preparing for release 0.15.6 --- CHANGELOG.md | 3 +++ README.md | 8 ++++++++ java/amazon-kinesis-producer-sample/pom.xml | 2 +- java/amazon-kinesis-producer/pom.xml | 2 +- .../producer/GlueSchemaRegistrySerializerInstance.java | 2 +- 5 files changed, 14 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a49e44cb..fc619820 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,7 @@ ## Changelog +### 0.15.6 +* [#490](https://github.com/awslabs/amazon-kinesis-producer/pull/490) Updating aws cpp sdk version +* ### 0.15.5 * [#482](https://github.com/awslabs/amazon-kinesis-producer/pull/482) Remove the stream arn parameter when the next token is present diff --git a/README.md b/README.md index 208da1cf..58b5a143 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,11 @@ ClickEvent event = inputQueue.take(); _Sample above is provided as an example implementation. Please take your application and use cases into consideration before applying logic_ +## Recommended Upgrade for All Users of 0.15.2 - 0.15.5 Amazon Kinesis Producer +⚠️ It's highly recommended for users of version 0.15.2 - 0.15.5 of the Amazon Kinesis Producer to upgrade to version 0.15.6 or later. A bug has been identified in versions prior from 0.15.2 - 0.15.5 is causing memory leak issue. + +ℹ️ Amazon Kinesis Producer versions prior to 0.15.2 are not impacted. + ## Recommended Settings for Streams larger than 800 shards The KPL is an application for ingesting data to your Kinesis Data Streams. As your streams grow you may find the need to tune the KPL to enable it to accommodate the growing needs of your applications. Without optimized configurations your KPL processes will see inefficient CPU usage and delays in writing records into KDS. For streams larger than 800 shards, we recommend the following settings: @@ -60,6 +65,9 @@ If you have further questions [please open a GitHub Issue](https://github.com/aw This is a restatement of the [notice published](https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-upgrades.html) in the [Amazon Kinesis Data Streams Developer Guide][kinesis-developer-guide] ## Release Notes +## 0.15.6 +* [#490](https://github.com/awslabs/amazon-kinesis-producer/pull/490) Updating aws cpp sdk version + ### 0.15.5 * [#482](https://github.com/awslabs/amazon-kinesis-producer/pull/482) Remove the stream arn parameter when the next token is present diff --git a/java/amazon-kinesis-producer-sample/pom.xml b/java/amazon-kinesis-producer-sample/pom.xml index a5caf207..824d1c58 100644 --- a/java/amazon-kinesis-producer-sample/pom.xml +++ b/java/amazon-kinesis-producer-sample/pom.xml @@ -56,7 +56,7 @@ com.amazonaws amazon-kinesis-producer - 0.15.5 + 0.15.6 org.slf4j diff --git a/java/amazon-kinesis-producer/pom.xml b/java/amazon-kinesis-producer/pom.xml index 0c82fe93..778869e0 100644 --- a/java/amazon-kinesis-producer/pom.xml +++ b/java/amazon-kinesis-producer/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.amazonaws amazon-kinesis-producer - 0.15.5 + 0.15.6 Amazon Kinesis Producer Library diff --git a/java/amazon-kinesis-producer/src/main/java/com/amazonaws/services/kinesis/producer/GlueSchemaRegistrySerializerInstance.java b/java/amazon-kinesis-producer/src/main/java/com/amazonaws/services/kinesis/producer/GlueSchemaRegistrySerializerInstance.java index 4e24e703..74f5c751 100644 --- a/java/amazon-kinesis-producer/src/main/java/com/amazonaws/services/kinesis/producer/GlueSchemaRegistrySerializerInstance.java +++ b/java/amazon-kinesis-producer/src/main/java/com/amazonaws/services/kinesis/producer/GlueSchemaRegistrySerializerInstance.java @@ -11,7 +11,7 @@ public final class GlueSchemaRegistrySerializerInstance { private volatile GlueSchemaRegistrySerializer instance = null; - private static final String USER_AGENT_APP_NAME = "kpl-0.15.5"; + private static final String USER_AGENT_APP_NAME = "kpl-0.15.6"; /** * Instantiate GlueSchemaRegistrySerializer using the KinesisProducerConfiguration. From 972c2571cada8e3b828565b531e233ce22998910 Mon Sep 17 00:00:00 2001 From: Abhishek Yadav Akkem Date: Fri, 14 Apr 2023 13:45:41 -0700 Subject: [PATCH 3/6] Release version update --- aws/kinesis/core/kinesis_producer.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aws/kinesis/core/kinesis_producer.cc b/aws/kinesis/core/kinesis_producer.cc index fe65b5c3..1a870380 100644 --- a/aws/kinesis/core/kinesis_producer.cc +++ b/aws/kinesis/core/kinesis_producer.cc @@ -45,7 +45,7 @@ struct EndpointConfiguration { sts_endpoint_(sts_endpoint) {} }; -const constexpr char* kVersion = "0.15.5N"; +const constexpr char* kVersion = "0.15.6N"; const std::unordered_map< std::string, EndpointConfiguration > kRegionEndpointOverride = { { "cn-north-1", { "kinesis.cn-north-1.amazonaws.com.cn", "monitoring.cn-north-1.amazonaws.com.cn" } }, { "cn-northwest-1", { "kinesis.cn-northwest-1.amazonaws.com.cn", "monitoring.cn-northwest-1.amazonaws.com.cn" } } From b7d757d4635dc00b0e46d94a85b1bb43434b3087 Mon Sep 17 00:00:00 2001 From: Yu Zeng Date: Fri, 14 Apr 2023 22:54:54 +0000 Subject: [PATCH 4/6] Update the CMakeList --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6986adae..bd8369d4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -212,6 +212,7 @@ set(STATIC_LIBS boost_chrono) find_package(Threads) +find_package(ZLIB) find_package(AWSSDK REQUIRED COMPONENTS kinesis monitoring sts) add_library(LibCrypto STATIC IMPORTED) From 94487bd4005ea4360e53fa2adc84bd58d9809538 Mon Sep 17 00:00:00 2001 From: Abhishek Yadav Akkem Date: Tue, 18 Apr 2023 09:44:44 -0700 Subject: [PATCH 5/6] Code refactor for async method --- aws/metrics/test/metrics_manager_test.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aws/metrics/test/metrics_manager_test.cc b/aws/metrics/test/metrics_manager_test.cc index 6592ded5..0ac19d56 100644 --- a/aws/metrics/test/metrics_manager_test.cc +++ b/aws/metrics/test/metrics_manager_test.cc @@ -55,7 +55,7 @@ class MockCloudWatchClient : public Aws::CloudWatch::CloudWatchClient { const Aws::CloudWatch::Model::PutMetricDataRequest& request, const Aws::CloudWatch::PutMetricDataResponseReceivedHandler& handler, const std::shared_ptr& context - = nullptr) const override { + = nullptr) const { push(&requests_, request); executor_->submit([=] { if (num_failures_ <= 0) { From 0d30418a66745532fd05fcf49b007c3377ba07fc Mon Sep 17 00:00:00 2001 From: Abhishek Yadav Akkem Date: Tue, 18 Apr 2023 15:10:17 -0700 Subject: [PATCH 6/6] Code refactor for async method --- aws/kinesis/core/test/shard_map_test.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/aws/kinesis/core/test/shard_map_test.cc b/aws/kinesis/core/test/shard_map_test.cc index 8f4d40a8..cd1e0a61 100644 --- a/aws/kinesis/core/test/shard_map_test.cc +++ b/aws/kinesis/core/test/shard_map_test.cc @@ -44,7 +44,7 @@ void pop(const std::list* q) { class MockKinesisClient : public Aws::Kinesis::KinesisClient { public: - MockKinesisClient( + MockKinesisClient ( std::list outcomes_list_shards, std::function callback_list_shards = []{}) : Aws::Kinesis::KinesisClient(kEmptyCreds, fake_client_cfg()), @@ -56,7 +56,7 @@ class MockKinesisClient : public Aws::Kinesis::KinesisClient { const Aws::Kinesis::Model::ListShardsRequest& request, const Aws::Kinesis::ListShardsResponseReceivedHandler& handler, const std::shared_ptr& context - = nullptr) const override { + = nullptr) const { executor_->schedule([=] { if (outcomes_list_shards_.size() == 0) {