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

Balázs Gerner updated NIFI-14156:
---------------------------------
    Description: 
*Summary:*
The {{nifi.cmd stop}} command in Apache NiFi 2.0 and 2.1 fails to stop the 
application on Windows, displaying an error:
{{org.apache.nifi.bootstrap.Command Application Process not running.}}

This issue appears to be specific to Windows platforms, as the same code 
functions correctly on Linux and macOS.

*Steps to Reproduce:*
 # Start Apache NiFi using the command: {{{}bin/nifi.cmd start{}}}.
 # Attempt to stop it using the command: {{{}bin/nifi.cmd stop{}}}.

*Observed Behavior:*
The stop command fails with the error:
{{org.apache.nifi.bootstrap.Command Application Process not running.}}

 

*Technical Analysis:*
 * *Root Cause:*
The issue originates from the 
[{{{}StandardProcessHandleProvider{}}}#L73,|https://github.com/apache/nifi/blob/rel/nifi-2.0.0/nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/command/process/StandardProcessHandleProvider.java#L73]
 where the application process arguments are expected but are found empty on 
Windows. This prevents the application process handle from being identified.

 * *Platform Dependency:*
This behavior appears to be linked to platform-specific limitations in the 
Windows implementation of the {{ProcessHandle}} class. A potentially related 
issue is described in 
[JDK-8176725|https://bugs.openjdk.org/browse/JDK-8176725], which outlines 
platform-dependent discrepancies in process argument handling.

 * *Related Code Reference:*
The current {{ProcessHandleImpl}} implementation for Windows, which lacks 
argument information support, can be found 
[here|https://github.com/openjdk/jdk/blob/jdk-21%2B35/src/java.base/windows/native/libjava/ProcessHandleImpl_win.c].

 

*Tested Configurations:*
 * *OS:* Windows Server 2025 (Version 24H2, OS Build 26100.2314).
 * *JDKs:* Zulu 21 JDK and OpenJDK 21.

 

*Key Observations:*
 # The behavior is specific to Windows. On Linux and macOS, the {{nifi.cmd 
stop}} command functions as expected.
 # The refactored runtime management in NiFi 2.0 eliminated reliance on lock 
files and custom socket communication, but this introduced a gap in the stop 
command functionality on Windows.

*Potential Solutions:*
 * *Ideal:* JVM updates to address the limitations of {{ProcessHandle}} on 
Windows.
 * *Alternative:* Implement a workaround in NiFi for process management on 
Windows.

  was:
*Summary:*
The {{nifi.cmd stop}} command in Apache NiFi 2.0 and 2.1 fails to stop the 
application on Windows, displaying an error:
{{org.apache.nifi.bootstrap.Command Application Process not running.}}

This issue appears to be specific to Windows platforms, as the same code 
functions correctly on Linux and macOS.

*Steps to Reproduce:*
 # Start Apache NiFi using the command: {{{}bin/nifi.cmd start{}}}.
 # Attempt to stop it using the command: {{{}bin/nifi.cmd stop{}}}.

*Observed Behavior:*
The stop command fails with the error:
{{org.apache.nifi.bootstrap.Command Application Process not running.}}

 

*Technical Analysis:*
 * *Root Cause:*
The issue originates from the 
[{{{}StandardProcessHandleProvider{}}}#L73,|https://github.com/apache/nifi/blob/rel/nifi-2.0.0/nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/command/process/StandardProcessHandleProvider.java#L73]
 where the application process arguments are expected but are found empty on 
Windows. This prevents the application process handle from being identified.

 * *Platform Dependency:*
This behavior appears to be linked to platform-specific limitations in the 
Windows implementation of the {{ProcessHandle}} class. A potentially related 
issue is described in JDK-8176725, which outlines platform-dependent 
discrepancies in process argument handling.

 * *Related Code Reference:*
The current {{ProcessHandleImpl}} implementation for Windows, which lacks 
argument information support, can be found 
[here|https://github.com/openjdk/jdk/blob/jdk-21%2B35/src/java.base/windows/native/libjava/ProcessHandleImpl_win.c].

 

*Tested Configurations:*
 * *OS:* Windows Server 2025 (Version 24H2, OS Build 26100.2314).
 * *JDKs:* Zulu 21 JDK and OpenJDK 21.

 

*Key Observations:*
 # The behavior is specific to Windows. On Linux and macOS, the {{nifi.cmd 
stop}} command functions as expected.
 # The refactored runtime management in NiFi 2.0 eliminated reliance on lock 
files and custom socket communication, but this introduced a gap in the stop 
command functionality on Windows.

*Potential Solutions:*
 * *Ideal:* JVM updates to address the limitations of {{ProcessHandle}} on 
Windows.
 * *Alternative:* Implement a workaround in NiFi for process management on 
Windows.


> Issue with nifi.cmd stop Command on Windows in Apache NiFi 2.0/2.1
> ------------------------------------------------------------------
>
>                 Key: NIFI-14156
>                 URL: https://issues.apache.org/jira/browse/NIFI-14156
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: Core Framework
>    Affects Versions: 2.0.0, 2.1.0
>            Reporter: Balázs Gerner
>            Priority: Major
>
> *Summary:*
> The {{nifi.cmd stop}} command in Apache NiFi 2.0 and 2.1 fails to stop the 
> application on Windows, displaying an error:
> {{org.apache.nifi.bootstrap.Command Application Process not running.}}
> This issue appears to be specific to Windows platforms, as the same code 
> functions correctly on Linux and macOS.
> *Steps to Reproduce:*
>  # Start Apache NiFi using the command: {{{}bin/nifi.cmd start{}}}.
>  # Attempt to stop it using the command: {{{}bin/nifi.cmd stop{}}}.
> *Observed Behavior:*
> The stop command fails with the error:
> {{org.apache.nifi.bootstrap.Command Application Process not running.}}
>  
> *Technical Analysis:*
>  * *Root Cause:*
> The issue originates from the 
> [{{{}StandardProcessHandleProvider{}}}#L73,|https://github.com/apache/nifi/blob/rel/nifi-2.0.0/nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/command/process/StandardProcessHandleProvider.java#L73]
>  where the application process arguments are expected but are found empty on 
> Windows. This prevents the application process handle from being identified.
>  * *Platform Dependency:*
> This behavior appears to be linked to platform-specific limitations in the 
> Windows implementation of the {{ProcessHandle}} class. A potentially related 
> issue is described in 
> [JDK-8176725|https://bugs.openjdk.org/browse/JDK-8176725], which outlines 
> platform-dependent discrepancies in process argument handling.
>  * *Related Code Reference:*
> The current {{ProcessHandleImpl}} implementation for Windows, which lacks 
> argument information support, can be found 
> [here|https://github.com/openjdk/jdk/blob/jdk-21%2B35/src/java.base/windows/native/libjava/ProcessHandleImpl_win.c].
>  
> *Tested Configurations:*
>  * *OS:* Windows Server 2025 (Version 24H2, OS Build 26100.2314).
>  * *JDKs:* Zulu 21 JDK and OpenJDK 21.
>  
> *Key Observations:*
>  # The behavior is specific to Windows. On Linux and macOS, the {{nifi.cmd 
> stop}} command functions as expected.
>  # The refactored runtime management in NiFi 2.0 eliminated reliance on lock 
> files and custom socket communication, but this introduced a gap in the stop 
> command functionality on Windows.
> *Potential Solutions:*
>  * *Ideal:* JVM updates to address the limitations of {{ProcessHandle}} on 
> Windows.
>  * *Alternative:* Implement a workaround in NiFi for process management on 
> Windows.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to