Skip to content

Global resource cleanup slow on Mac OS #860

@sbrannen

Description

@sbrannen

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions