-
Notifications
You must be signed in to change notification settings - Fork 896
using KinesisAsyncClient: An exceptionCaught() event was fired. java.io.IOException: The channel was closed before the protocol could be determined. #2914
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Have you resolved this issue? In a production environment I had the same thing happen (has only happened once in a few months of running) but its the same error and stopped all kinesis consumers - im guessing the whole thread stopped. Trying to find the root cause but have been unable to thus far. |
@filipglojnari @noahdembe I'm sorry for taking this long to respond. We made changes to the Netty client connection pool management recently, could you use a newer version of the SDK and confirm if you still see the errors? The latest version is If you still see the errors we'll investigate. @noahdembe which version of the SDK are you using? |
I got the same error with 2.17.156 |
@mndfcked is your use case the same as described by @filipglojnari?
|
Hi, sorry for the delay. Unfortunately not. We started getting the message right away when our application started. One thing to note here, we were using Kotlin in combination with Coroutines. |
@mndfcked Getting the error right at the application startup is not good. Can you share a repro code? |
It looks like this issue has not been active for more than five days. In the absence of more information, we will be closing this issue soon. If you find that this is still a problem, please add a comment to prevent automatic closure, or if the issue is already closed please feel free to reopen it. |
…6260b6e50 Pull request: release <- staging/75c4b575-53bc-4b5e-87ae-e2d6260b6e50
Describe the bug
java.io.IOException: The channel was closed before the protocol could be determined.
exception is thrown when using the aws-sdk KinesisAsyncClient. We start multiple threads and they are all publishing to the kinesis stream viaKinesisAsyncClient.putRecord()
. After some time (~6h) the application is running, we can see the warn logs, followed by exception that causes them.WARN i.n.channel.DefaultChannelPipeline - An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
java.io.IOException: The channel was closed before the protocol could be determined.
Expected behavior
This should not be thrown to the user.
Current behavior
Warn and exception are thrown after publishing (for longer than ~6h) to kinesis stream from multi-thread env without knowing what exactly caused the exception from our code. Full message and stacktrace:
2021-11-02 09:46:59,487 4017786 [aws-java-sdk-NettyEventLoop-1-1] WARN i.n.channel.DefaultChannelPipeline - An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
Steps to Reproduce
Publishing in multi-thread env to kinesis via
KinesisAsyncClient.putRecord()
for some time (~6h), and warn will be written out.Possible Solution
Possible connected issue:
#2713
Context
No response
AWS Java SDK version used
2.17.90
JDK version used
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.8+10)
Operating System and version
Ubuntu 18.04.5 LTS
The text was updated successfully, but these errors were encountered: