https://bz.apache.org/bugzilla/show_bug.cgi?id=65410

            Bug ID: 65410
           Summary: TestXxxEndpoint testUnixDomainSocket fails with an
                    Error on Windows 10, should be skipped
           Product: Tomcat 9
           Version: unspecified
          Hardware: PC
            Status: NEW
          Severity: minor
          Priority: P2
         Component: Connectors
          Assignee: dev@tomcat.apache.org
          Reporter: knst.koli...@gmail.com
  Target Milestone: -----

Testing release candidate of Tomcat 9.0.50,
when running with Java 16 on Windows 10, the following test fails with NIO
connector:

org.apache.tomcat.util.net.TestXxxEndpoint#testUnixDomainSocket

Notes:

1. This test is skipped when running with version of Java earlier than java 16.
This test is skipped for any connector implementation besides NIO.

2. I think this failure is expected on Windows,
so there is one more condition to check before skipping the test.


3. I wonder, why this feature is not implemented for NIO2 connector.
- It is implemented for NIO. (via original PR, since 9.0.42)
- It is implemented for APR. (via bug 64943, since 9.0.47)

Searching through the source code, "unixDomainSocketPath" properties are
implemented in
- AprEndpoint,
- NioEndpoint.

4. Missing docs: "unixDomainSocketPath", "unixDomainSocketPathPermissions"
attributes are documented for the Nio connector only. They are not documented
for the APR connector.
https://tomcat.apache.org/tomcat-9.0-doc/config/http.html

5. I wonder, why this test is skipped for an APR connector,
if it implements the feature.


The Error with the test looks like the following (Tomcat 9.0.50, OpenJDK
16.0.1):

[[[
Testsuite: org.apache.tomcat.util.net.TestXxxEndpoint
Tests run: 3, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 2,621 sec
------------- Standard Error -----------------
30-Jun-2021 00:28:34.827 INFO [main]
org.apache.catalina.startup.LoggingBaseTest.setUp Starting test case
[testUnixDomainSocket]
30-Jun-2021 00:28:35.323 INFO [main] org.apache.coyote.AbstractProtocol.init
Initializing ProtocolHandler ["http-nio-/tmp/testUnixDomainSocket"]
30-Jun-2021 00:28:35.355 SEVERE [main]
org.apache.catalina.util.LifecycleBase.handleSubClassException Failed to
initialize component [Connector[HTTP/1.1-/tmp/testUnixDomainSocket]]
        org.apache.catalina.LifecycleException: Protocol handler initialization
failed
                at
org.apache.catalina.connector.Connector.initInternal(Connector.java:1049)
                at
org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
                at
org.apache.catalina.core.StandardService.initInternal(StandardService.java:561)
                at
org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
                at
org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:1049)
                at
org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
                at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:173)
                at org.apache.catalina.startup.Tomcat.start(Tomcat.java:486)
                at
org.apache.catalina.startup.TomcatBaseTest$TomcatWithFastSessionIDs.start(TomcatBaseTest.java:878)
                at
org.apache.tomcat.util.net.TestXxxEndpoint.testUnixDomainSocket(TestXxxEndpoint.java:209)
                at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
                at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.base/java.lang.reflect.Method.invoke(Method.java:567)
                at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
                at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
                at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
                at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
                at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
                at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
                at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
                at
org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
                at
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
                at
org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
                at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
                at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
                at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
                at
org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
                at
org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
                at
org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
                at
org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
                at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
                at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
                at
org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
                at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
                at
junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:50)
                at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:535)
                at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1197)
                at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:1042)
        Caused by: java.net.SocketException: Network is down: bind
                at java.base/sun.nio.ch.UnixDomainSockets.bind0(Native Method)
                at
java.base/sun.nio.ch.UnixDomainSockets.bind(UnixDomainSockets.java:111)
                at
java.base/sun.nio.ch.ServerSocketChannelImpl.unixBind(ServerSocketChannelImpl.java:319)
                at
java.base/sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:292)
                at
org.apache.tomcat.util.net.NioEndpoint.initServerSocket(NioEndpoint.java:250)
                at
org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:227)
                at
org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1208)
                at
org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:1221)
                at
org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:603)
                at
org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:80)
                at
org.apache.catalina.connector.Connector.initInternal(Connector.java:1046)
                ... 38 more
[...]
------------- ---------------- ---------------

Testcase: testUnixDomainSocket took 1,117 sec
        Caused an ERROR
Network is down: connect
java.net.SocketException: Network is down: connect
        at java.base/sun.nio.ch.UnixDomainSockets.connect0(Native Method)
        at
java.base/sun.nio.ch.UnixDomainSockets.connect(UnixDomainSockets.java:146)
        at
java.base/sun.nio.ch.UnixDomainSockets.connect(UnixDomainSockets.java:142)
        at
java.base/sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:849)
        at
org.apache.tomcat.util.net.TestXxxEndpoint.testUnixDomainSocket(TestXxxEndpoint.java:214)
        at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
        at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

Testcase: testStartStopBindOnStart took 1,131 sec
Testcase: testStartStopBindOnInit took 0,304 sec
]]]

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to