Skip to content
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

Merged
merged 15 commits into from Mar 16, 2020
Merged

BlockHound integration #1821

merged 15 commits into from Mar 16, 2020

Commits on Mar 13, 2020

  1. Copy the full SHA
    edc388c View commit details
    Browse the repository at this point in the history
  2. Do not shadow ByteBuddy agent

    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.
    dkhalanskyjb committed Mar 13, 2020
    Copy the full SHA
    ef33b34 View commit details
    Browse the repository at this point in the history
  3. 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.
    dkhalanskyjb committed Mar 13, 2020
    Copy the full SHA
    69f76dc View commit details
    Browse the repository at this point in the history
  4. Copy the full SHA
    46bbf2a View commit details
    Browse the repository at this point in the history
  5. Intermediate value

    dkhalanskyjb committed Mar 13, 2020
    Copy the full SHA
    d1e4798 View commit details
    Browse the repository at this point in the history
  6. 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.
    dkhalanskyjb committed Mar 13, 2020
    Copy the full SHA
    5058081 View commit details
    Browse the repository at this point in the history
  7. 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.
    dkhalanskyjb committed Mar 13, 2020
    Copy the full SHA
    efb4720 View commit details
    Browse the repository at this point in the history
  8. Up the BlockHound version

    The feature that we need was released, so no need to incclude the
    snapshot repositories in the build.
    dkhalanskyjb committed Mar 13, 2020
    Copy the full SHA
    6e5fe92 View commit details
    Browse the repository at this point in the history
  9. Fixes

    dkhalanskyjb committed Mar 13, 2020
    Copy the full SHA
    7fc4a90 View commit details
    Browse the repository at this point in the history

Commits on Mar 16, 2020

  1. 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.
    dkhalanskyjb committed Mar 16, 2020
    Copy the full SHA
    3fc6abc View commit details
    Browse the repository at this point in the history
  2. Copy the full SHA
    76ab90f View commit details
    Browse the repository at this point in the history
  3. Copy the full SHA
    e16face View commit details
    Browse the repository at this point in the history
  4. Copy the full SHA
    15b54c9 View commit details
    Browse the repository at this point in the history
  5. Documentation improvement

    qwwdfsad committed Mar 16, 2020
    Copy the full SHA
    e685384 View commit details
    Browse the repository at this point in the history
  6. Update kotlinx-coroutines-debug/README.md

    Co-Authored-By: Sergei Egorov <bsideup@gmail.com>
    qwwdfsad and bsideup committed Mar 16, 2020
    Copy the full SHA
    20cc2ff View commit details
    Browse the repository at this point in the history