-
Notifications
You must be signed in to change notification settings - Fork 24.8k
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
[CI] NodeTests.testAwaitCloseTimeoutsOnNonInterruptibleTask failure #44435
Labels
Comments
matriv
added
:Delivery/Build
Build or test infrastructure
>test-failure
Triaged test failures from CI
labels
Jul 16, 2019
Pinging @elastic/es-core-infra |
Looks like this is probably also tackled in #43249 -> unassigning myself |
alpar-t
added
:Core/Infra/Core
Core issues without another label
and removed
:Delivery/Build
Build or test infrastructure
labels
Sep 5, 2019
jaymode
added a commit
that referenced
this issue
Nov 22, 2019
The NodeTests class contains tests that check behavior when shutting down a node. This involves starting a node, performing some operation, stopping the node, and then awaiting the close of the node. Part of closing a node is the termination of the node's ThreadPool. ThreadPool termination semantics can be deceiving. The ThreadPool#terminate method takes a timeout value and the first oddity is that the terminate method can take two times the timeout value before returning. Internally this method acts on the ExecutorService instances that are held by the ThreadPool. First, an orderly shutdown is attempted and pending tasks are allowed to execute while waiting for the timeout value. If any of the ExecutorService instances have not terminated, a call is made to attempt to stop all active tasks (usually using interrupts) and then waits for up to the timeout value a second time for the termination of the ExecutorService instances. This means that if use a large value when waiting for a node to close, we may not attempt to interrupt any threads that are in a blocking call before the test times out. In order to avoid causing these tests to time out, this change reduces the timeout passed to Node#awaitClose to 10 seconds from 1 day. This will allow blocked threads to be interrupted before the test suite fails due to the timeout. Closes #44256 Closes #42350 Closes #44435
jaymode
added a commit
that referenced
this issue
Nov 22, 2019
The NodeTests class contains tests that check behavior when shutting down a node. This involves starting a node, performing some operation, stopping the node, and then awaiting the close of the node. Part of closing a node is the termination of the node's ThreadPool. ThreadPool termination semantics can be deceiving. The ThreadPool#terminate method takes a timeout value and the first oddity is that the terminate method can take two times the timeout value before returning. Internally this method acts on the ExecutorService instances that are held by the ThreadPool. First, an orderly shutdown is attempted and pending tasks are allowed to execute while waiting for the timeout value. If any of the ExecutorService instances have not terminated, a call is made to attempt to stop all active tasks (usually using interrupts) and then waits for up to the timeout value a second time for the termination of the ExecutorService instances. This means that if use a large value when waiting for a node to close, we may not attempt to interrupt any threads that are in a blocking call before the test times out. In order to avoid causing these tests to time out, this change reduces the timeout passed to Node#awaitClose to 10 seconds from 1 day. This will allow blocked threads to be interrupted before the test suite fails due to the timeout. Closes #44256 Closes #42350 Closes #44435
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
CI link: https://scans.gradle.com/s/ioo3aduuax56w/console-log?task=:server:test Failed for 7.x
Cannot reproduce locally:
Stacktrace:
and many occurrences of the following:
Not muting, 1st occurrence ever.
Full logs can be found here
The text was updated successfully, but these errors were encountered: