[ 
https://issues.apache.org/jira/browse/DAEMON-470?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dhruva Madhukar Bhatia updated DAEMON-470:
------------------------------------------
    Description: 
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 ->
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

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.

  was:
Tomcat uses common-daemon to install services.


We installed a tomcat service using
tomcat9.exe //US//TomcatService <-options>
When we run 
net stop TomcatService
we get a response 
The Apache Tomcat 9.0 TomcatService service was stopped successfully.
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 ->
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

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.


> 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
>    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 ->
> 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
> 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)

Reply via email to