Overview
When using global HTTP resources for event loops and pooling on Mac OS, cleanup of those resources takes considerably longer on Mac OS than it does on Linux.
For example, after this commit in the Spring Framework, the WebClientDataBufferAllocatingTests test class began taking approximately 120 seconds instead of 2-3 seconds to complete.
After disabling the use of global resources in spring-projects/spring-framework@f0e160f#diff-cb71838b5a4c0062d77075023316ea9c, the WebClientDataBufferAllocatingTests test class once again completes in 2-3 seconds.
Based on a tip from a colleague that including a dependency on io.netty:netty-transport-native-kqueue:4.1.39.Final:osx-x86_64 might help, I tried that in the spring-webflux project, but that does not appear to make a difference.
Expected Behavior
The time taken for blocking global resource cleanup on Mac OS is comparable to cleanup on Linux.
Actual Behavior
The time taken for blocking global resource cleanup on Mac OS is considerably slower than on Linux.
Steps to Reproduce
Execute the WebClientDataBufferAllocatingTests test class with this.factory.setUseGlobalResources(false); commented out in the setUp() method.
Your Environment
- Reactor version: Dysprosium-BUILD-SNAPSHOT
- Netty version: 4.1.39.Final
- JVM version: Oracle JDK 1.8.0 update 221
- OS and version: Mac OS / 18.7.0 Darwin Kernel Version 18.7.0: Tue Aug 20 16:57:14 PDT 2019; root:xnu-4903.271.2~2/RELEASE_X86_64 x86_64
Overview
When using global HTTP resources for event loops and pooling on Mac OS, cleanup of those resources takes considerably longer on Mac OS than it does on Linux.
For example, after this commit in the Spring Framework, the WebClientDataBufferAllocatingTests test class began taking approximately 120 seconds instead of 2-3 seconds to complete.
After disabling the use of global resources in spring-projects/spring-framework@f0e160f#diff-cb71838b5a4c0062d77075023316ea9c, the
WebClientDataBufferAllocatingTeststest class once again completes in 2-3 seconds.Based on a tip from a colleague that including a dependency on
io.netty:netty-transport-native-kqueue:4.1.39.Final:osx-x86_64might help, I tried that in thespring-webfluxproject, but that does not appear to make a difference.Expected Behavior
The time taken for blocking global resource cleanup on Mac OS is comparable to cleanup on Linux.
Actual Behavior
The time taken for blocking global resource cleanup on Mac OS is considerably slower than on Linux.
Steps to Reproduce
Execute the
WebClientDataBufferAllocatingTeststest class withthis.factory.setUseGlobalResources(false);commented out in thesetUp()method.Your Environment