Tomcat 在我关闭它时发出警告“接受器线程 [http-nio-8080-Acceptor] 没有完全停止”

问题描述 投票:0回答:2

我在终端中启动了 tomcat,然后使用“catalina.sh stop”将其关闭。控制台显示了这些内容。这个问题让我每次重启Tomcat都要多花10秒

/Users/matrix/Tomact/apache-tomcat-9.0.74/bin/catalina.sh run
[2023-04-23 08:52:16,965] Artifact demo:war exploded: Waiting for server connection to start artifact deployment...
23-Apr-2023 20:52:17.539 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name:   Apache Tomcat/9.0.74
23-Apr-2023 20:52:17.540 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Apr 13 2023 08:10:39 UTC
23-Apr-2023 20:52:17.540 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.74.0
23-Apr-2023 20:52:17.540 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Mac OS X
23-Apr-2023 20:52:17.540 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:            13.2.1
23-Apr-2023 20:52:17.540 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:          x86_64
23-Apr-2023 20:52:17.540 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:             /Library/Java/JavaVirtualMachines/jdk1.8.0_361.jdk/Contents/Home/jre
23-Apr-2023 20:52:17.540 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version:           1.8.0_361-b09
23-Apr-2023 20:52:17.540 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:            Oracle Corporation
23-Apr-2023 20:52:17.540 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:         /Users/matrix/Library/Caches/JetBrains/IntelliJIdea2023.1/tomcat/afa48016-c355-45c8-95a5-690d57a1db28
23-Apr-2023 20:52:17.540 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:         /Users/matrix/Tomact/apache-tomcat-9.0.74
23-Apr-2023 20:52:17.541 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/Users/matrix/Library/Caches/JetBrains/IntelliJIdea2023.1/tomcat/afa48016-c355-45c8-95a5-690d57a1db28/conf/logging.properties
23-Apr-2023 20:52:17.541 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
23-Apr-2023 20:52:17.541 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Duser.language=en
23-Apr-2023 20:52:17.541 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Duser.region=CA
23-Apr-2023 20:52:17.541 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dfile.encoding=UTF-8
23-Apr-2023 20:52:17.541 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dsun.jnu.encoding=UTF-8
23-Apr-2023 20:52:17.541 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote=
23-Apr-2023 20:52:17.541 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.port=1099
23-Apr-2023 20:52:17.541 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.ssl=false
23-Apr-2023 20:52:17.541 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.password.file=/Users/matrix/Library/Caches/JetBrains/IntelliJIdea2023.1/tomcat/afa48016-c355-45c8-95a5-690d57a1db28/jmxremote.password
23-Apr-2023 20:52:17.541 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.access.file=/Users/matrix/Library/Caches/JetBrains/IntelliJIdea2023.1/tomcat/afa48016-c355-45c8-95a5-690d57a1db28/jmxremote.access
23-Apr-2023 20:52:17.541 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.rmi.server.hostname=127.0.0.1
23-Apr-2023 20:52:17.541 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
23-Apr-2023 20:52:17.541 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
23-Apr-2023 20:52:17.541 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
23-Apr-2023 20:52:17.541 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
23-Apr-2023 20:52:17.541 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/Users/matrix/Library/Caches/JetBrains/IntelliJIdea2023.1/tomcat/afa48016-c355-45c8-95a5-690d57a1db28
23-Apr-2023 20:52:17.542 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/Users/matrix/Tomact/apache-tomcat-9.0.74
23-Apr-2023 20:52:17.542 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/Users/matrix/Tomact/apache-tomcat-9.0.74/temp
23-Apr-2023 20:52:17.549 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The Apache Tomcat Native library which allows using OpenSSL was not found on the java.library.path: [/Users/matrix/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.]
23-Apr-2023 20:52:18.002 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
23-Apr-2023 20:52:18.038 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [660] milliseconds
23-Apr-2023 20:52:18.071 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
23-Apr-2023 20:52:18.071 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.74]
23-Apr-2023 20:52:18.082 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
23-Apr-2023 20:52:18.090 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [51] milliseconds
Connected to server
[2023-04-23 08:52:18,565] Artifact demo:war exploded: Artifact is being deployed, please wait...
23-Apr-2023 20:52:19.634 INFO [RMI TCP Connection(2)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
[2023-04-23 08:52:20,677] Artifact demo:war exploded: Artifact is deployed successfully
[2023-04-23 08:52:20,677] Artifact demo:war exploded: Deploy took 2,112 milliseconds
/Users/matrix/Tomact/apache-tomcat-9.0.74/bin/catalina.sh stop
23-Apr-2023 20:52:25.735 INFO [main] org.apache.catalina.core.StandardServer.await A valid shutdown command was received via the shutdown port. Stopping the Server instance.
23-Apr-2023 20:52:25.736 INFO [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8080"]
23-Apr-2023 20:52:26.745 INFO [main] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina]
23-Apr-2023 20:52:26.762 INFO [main] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8080"]
23-Apr-2023 20:52:36.763 WARNING [main] org.apache.tomcat.util.net.Acceptor.stop The acceptor thread [http-nio-8080-Acceptor] did not stop cleanly
23-Apr-2023 20:52:36.768 INFO [main] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-8080"]
Disconnected from server

我试过谷歌但没有类似的结果。我重启设备,重新安装,使用homebrew和官方压缩包。但是版本 9 和 10 都存在类似的问题。 有没有人遇到过类似的问题?有什么办法可以解决这个问题,让我知道Acceptor线程运行的具体位置,指导我如何排查相关线程问题。 我期待并感谢您的指导。

java spring spring-mvc tomcat tomcat9
2个回答
0
投票

接受器.java: /** * 向 Acceptor 发出停止信号,最多等待 10 秒停止 * 返回前完成。如果停止在那个时间内没有完成 * 将记录警告。 * * @deprecated 此方法将在 Tomcat 10.1.x 及更高版本中删除。 * 使用 {@link #stop(int)} 代替。 */ @弃用 公共无效停止(){ 停止(10); }

/**
 * Signals the Acceptor to stop, optionally waiting for that stop process
 * to complete before returning. If a wait is requested and the stop does
 * not complete in that time a warning will be logged.
 *
 * @param waitSeconds The time to wait in seconds. Use a value less than
 *                    zero for no wait.
 */
public void stop(int waitSeconds) {
    stopCalled = true;
    if (waitSeconds > 0) {
        try {
            if (!stopLatch.await(waitSeconds, TimeUnit.SECONDS)) {
               log.warn(sm.getString("acceptor.stop.fail", getThreadName()));
            }
        } catch (InterruptedException e) {
            log.warn(sm.getString("acceptor.stop.interrupted", getThreadName()), e);
        }
    }
}

当您关闭 tomcat 时,Acceptor 会执行 stop()->stop(10)。 在 stop(10) 中,如果 tomcat 在 10s 后没有停止,它会打印警告日志。


0
投票

天哪,终于找到原因了,ClashX system proxy。。。怪不得我google了也找不到同样的问题

© www.soinside.com 2019 - 2024. All rights reserved.