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
BlockHound integration #1821
BlockHound integration #1821
Commits on Mar 13, 2020
-
-
This way, it can work even with BlockHound on JDK8, which also uses ByteBuddy and thus was in conflict. Kind of solves #1060, but since now the debugging routine depends on BlockHound, where, it seems, the same problem was not fixed, the original cause for concern probably still stands.
-
Fix tests not being run with the right dispatcher
Integration with BlockHound revealed that several tests were performing blocking operations such as Thread.sleep in coroutine context `Dispatchers.DEFAULT`. Also, some tests hanged because the exception that notified about blocking calls were wildcard-matched.
-
-
-
Improve handling of stacktrace tests on JDK 8
Before, the tests only knew that the `park` native method was moved to `jdk.internal.misc.Unsafe` from `sun.misc.Unsafe`. However, in JDK 11, there is no `sun.misc.Unsafe` at all, it seems that it has been moved completely. This change is beneficial for this feature set because BlockHound puts its `$$BlockHound$$_park` method to `sun.misc.Unsafe` or to `jdk.internal.misc.Unsafe` depending on the JDK version. Also, judging by BlockHound's code https://github.com/reactor/BlockHound/blob/091d7b139479b1c41eea59baa23389d673fdf73b/agent/src/main/java/reactor/blockhound/BlockHound.java#L177-L187, `forkAndExec` had been moved, too, but it is not used in tests.
-
Implement BlockHound integration properly
Now it relies on the ServiceLoader mechanism to load the integration: if the user installs BlockHound and `kotlinx-coroutines-debug` is in the classpath, then BlockHound will know to detect blocking calls in scenarios that forbid it.
-
The feature that we need was released, so no need to incclude the snapshot repositories in the build.
-
Commits on Mar 16, 2020
-
Improve build configuration of integration tests
* publication-validator is renamed to integration-testing; * Each test is now in a separate source set, which allows for more flexibility in their configuration; for example, failing to set `dryRun=true` doesn't prevent tests other than NPM to run, and it is possible to run the tests (and their dependencies) separately.
-
-
-
-
-
Update kotlinx-coroutines-debug/README.md
Co-Authored-By: Sergei Egorov <bsideup@gmail.com>