[
https://issues.apache.org/jira/browse/DAEMON-470?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mark Thomas resolved DAEMON-470.
--------------------------------
Resolution: Duplicate
I'm unable to reproduce this with the current prunsrv.exe (1.5.x). It appears
to be a duplicate of the already fixed timeout issue.
> Service Stop Returns True, but the service is still running in the background
> -----------------------------------------------------------------------------
>
> Key: DAEMON-470
> URL: https://issues.apache.org/jira/browse/DAEMON-470
> Project: Commons Daemon
> Issue Type: Bug
> Components: Procrun, prunsrv
> Affects Versions: 1.3.3, 1.3.4
> Environment: Windows Server 2019 Datacenter
> tomcat9 -> This issue is intermittent for version 9.0.102+ up to tomcat11
> tomcat issue created: [69642 - net stop tomcat service returns turn but
> tomcat.exe is still running in the
> background|https://bz.apache.org/bugzilla/show_bug.cgi?id=69642]
> Reporter: Dhruva Madhukar Bhatia
> Priority: Major
> Attachments: common-daemonlog-relevant,
> serviceNotStoppedMemoryRiseCropped.PNG, tomcatLogsFile
>
>
> Tomcat uses common-daemon to install services.
> We installed a tomcat service using
> {code:java}
> tomcat9.exe //US//TomcatService <-options>{code}
> When we run
> {code:java}
> net stop TomcatService{code}
> we get a response
> {code:java}
> The Apache Tomcat 9.0 TomcatService service was stopped successfully.{code}
> However, if we check the currently running process we see that tomcat.exe is
> still running in the background. As can be seen from the attached tomcat logs
> as below:
> {code:java}
> org.tuckey.web.filters.urlrewrite.UrlRewriteFilter INFO: destroy called
> 08:51:12,069 |-INFO in
> ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_APPLICATION] - Worker
> thread will flush remaining events before exiting.
> 08:51:12,070 |-INFO in
> ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_APPLICATION] - Queue
> flush finished successfully within timeout.
> 08:51:12,070 |-INFO in
> ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_COMMUNICATION] - Worker
> thread will flush remaining events before exiting.
> 08:51:12,071 |-INFO in
> ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_COMMUNICATION] - Queue
> flush finished successfully within timeout.
> 08:51:12,071 |-INFO in
> ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_DATABASE] - Worker thread
> will flush remaining events before exiting.
> 08:51:12,071 |-INFO in
> ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_DATABASE] - Queue flush
> finished successfully within timeout.
> 08:51:12,071 |-INFO in
> ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_CONFIGURATION] - Worker
> thread will flush remaining events before exiting.
> 08:51:12,071 |-INFO in
> ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_CONFIGURATION] - Queue
> flush finished successfully within timeout.
> 08:51:12,071 |-INFO in
> ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_SCRIPT_ERROR] - Worker
> thread will flush remaining events before exiting.
> 08:51:12,071 |-INFO in
> ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_SCRIPT_ERROR] - Queue
> flush finished successfully within timeout.
> 08:51:12,071 |-INFO in
> ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_SCRIPT] - Worker thread
> will flush remaining events before exiting.
> 08:51:12,071 |-INFO in
> ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_SCRIPT] - Queue flush
> finished successfully within timeout.
> 08:51:12,072 |-INFO in
> ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_SECURITY] - Worker thread
> will flush remaining events before exiting.
> 08:51:12,072 |-INFO in
> ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_SECURITY] - Queue flush
> finished successfully within timeout.
> 08:51:12,072 |-INFO in
> ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_ERROR] - Worker thread
> will flush remaining events before exiting.
> 08:51:12,072 |-INFO in
> ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_ERROR] - Queue flush
> finished successfully within timeout.
> 08:51:12,072 |-INFO in
> ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_AUTH] - Worker thread
> will flush remaining events before exiting.
> 08:51:12,072 |-INFO in
> ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_AUTH] - Queue flush
> finished successfully within timeout.
> 08:51:12,073 |-INFO in
> ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_AKKA] - Worker thread
> will flush remaining events before exiting.
> 08:51:12,073 |-INFO in
> ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_AKKA] - Queue flush
> finished successfully within timeout.
> >>>>>>>> TERMINATING JVM <<<<<<<<<<
> >>>>>>>> CALLING SYSTEM EXIT <<<<<<<<<<{code}
> the service stopped at 8:51:12,
> however after repeatedly checking for any running tomcat.exe process, we see
> that the service was actually stopped at 8:51:24 ->
> {code:java}
> Thu Apr 3 08:51:23 CUT 2025
> tomcat9.exe 1364 Services 0 1,417,944 K
> Thu Apr 3 08:51:24 CUT 2025
> tomcat9.exe 1364 Services 0 901,252 K
> Thu Apr 3 08:51:24 CUT 2025
> tomcat9.exe 1364 Services 0 355,456 K{code}
> Below are the common-daemons logs when stopped successfully and when it fails:
>
> {code:java}
> When stopped successfully:
> [2025-04-03 08:49:58] [2025-04-03 08:50:01] [info] [ 5840] Apache Commons
> Daemon procrun (1.4.1.0 64-bit) started.
> [2025-04-03 08:50:01] [info] [ 5840] Running Service
> 'ThingWorx-Foundation'...
> [2025-04-03 08:50:01] [info] [ 3484] Starting service...
> [2025-04-03 08:50:02] [info] [ 3484] Service started in 1290 milliseconds.
> [2025-04-03 08:50:33] [info] [ 5840] Service SERVICE_CONTROL_STOP signalled.
> [2025-04-03 08:50:33] [info] [ 2740] Stopping service...
> [2025-04-03 08:50:35] [error] [ 5732] Failed to set service status.
> [2025-04-03 08:50:36] [error] [ 5732] The handle is invalid.
> [2025-04-03 08:50:36] [2025-04-03 08:50:38] [info] [ 7056] Apache Commons
> Daemon procrun (1.4.1.0 64-bit) started.
> When not stopped properly (process running)
> [2025-04-03 08:50:36] [2025-04-03 08:50:38] [info] [ 7056] Apache Commons
> Daemon procrun (1.4.1.0 64-bit) started.
> [2025-04-03 08:50:38] [info] [ 7056] Running Service
> 'ThingWorx-Foundation'...
> [2025-04-03 08:50:38] [info] [ 6912] Starting service...
> [2025-04-03 08:50:40] [info] [ 6912] Service started in 1436 milliseconds.
> [2025-04-03 08:51:09] [info] [ 7056] Service SERVICE_CONTROL_STOP signalled.
> [2025-04-03 08:51:09] [info] [ 376] Stopping service...
> [2025-04-03 08:51:12] [error] [ 3000] Failed to set service status.
> [2025-04-03 08:51:12] [info] [ 7056] Run service finished.
> [2025-04-03 08:51:12] [info] [ 7056] Apache Commons Daemon procrun finished.
> [2025-04-03 08:51:24] [info] [ 7300] Apache Commons Daemon procrun (1.4.1.0
> 64-bit) started.
> {code}
> We've already created this issue in the tomcat forum:
> [69642 - net stop tomcat service returns turn but tomcat.exe is still running
> in the background|https://bz.apache.org/bugzilla/show_bug.cgi?id=69642]
> Where we were guided to report the issue here.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)