Add BlockHound integration by bsideup · Pull Request #9687 · netty/netty
bsideup added a commit to reactor/BlockHound that referenced this pull request
Oct 22, 2019As seen in netty/netty#9687, due to GradleUp/shadow#519, we have `reactor/shaded/META-INF/versions/9/module-info.class` file in the final JAR, although we thought that we excluded it. This PR fixes a few related shading issues and adds the missing tests for the shadowed jar, so that we will never miss such issues again. It also changes the shading package to `reactor.blockhound.shaded` for better package alignment.
Motivation: Netty is an asynchronous framework. If somebody uses a blocking call inside Netty's event loops, it may lead to a severe performance degradation. BlockHound is a tool that helps detecting such calls. Modifications: This change adds a BlockHound's SPI integration that marks threads created by Netty (`FastThreadLocalThread`s) as non-blocking. It also marks some of Netty's internal methods as whitelisted as they are required to run the event loops. Result: When BlockHound is installed, any blocking call inside event loops is intercepted and reported (by default an error will be thrown).
normanmaurer pushed a commit that referenced this pull request
Oct 25, 2019…#9687) Motivation: Netty is an asynchronous framework. If somebody uses a blocking call inside Netty's event loops, it may lead to a severe performance degradation. BlockHound is a tool that helps detecting such calls. Modifications: This change adds a BlockHound's SPI integration that marks threads created by Netty (`FastThreadLocalThread`s) as non-blocking. It also marks some of Netty's internal methods as whitelisted as they are required to run the event loops. Result: When BlockHound is installed, any blocking call inside event loops is intercepted and reported (by default an error will be thrown).
bsideup
deleted the
blockhound_integration
branch
carterkozak added a commit to carterkozak/undertow that referenced this pull request
Jan 21, 2022This defines a BlockHound integration within undertow-core, however this could be an entirely separate module. For this to become mergable, BlockHound would minimally have to become a `provided` dependency so it's not added to consumers classpaths unnecessarily, but applied in test modules Arguably the blockhound integration belongs in an xnio-associated module because xnio defines the relevant XnioIoThread class. This idea is borrowed from Netty, which added BlockHound here: netty/netty#9687
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters