apache / maven-mvnd

Apache Maven Daemon
https://maven.apache.org/
Apache License 2.0
2.91k stars 208 forks source link

Access is denied Exception on "mvnd -version" #349

Closed firatgursoy closed 3 years ago

firatgursoy commented 3 years ago

Hi, First of all, thank you for this wonderful project. When i try to run mvnd on my corporate workstation i get an IOException. I'm trying "mvnd -version" as local admin. Any ideas ?

C:\Users\firatgursoy\Desktop\filez\desk\brainstorm>"C:\dev\tools\jdk-14.0.2\bin\java.exe" -version
openjdk version "14.0.2" 2020-07-14
OpenJDK Runtime Environment (build 14.0.2+12-46)
OpenJDK 64-Bit Server VM (build 14.0.2+12-46, mixed mode, sharing)

C:\Users\firatgursoy\Desktop\filez\desk\brainstorm>"C:\dev\tools\mvnd-0.4.1-windows-amd64\bin\mvnd.exe" -version
mvnd native client 0.4.1-windows-amd64 (2336bde9192e9d0ccc3a5d2bf13abc9f295e21a7)
Terminal: org.jline.terminal.impl.jansi.win.JansiWinSysTerminal
Exception in thread "main" org.mvndaemon.mvnd.common.DaemonException$StartException: Error starting daemon: id = 259aadf8, workingDir = C:\Users\firatgursoy\Desktop\filez\desk\brainstorm, daemonArgs: C:\dev\tools\jdk-14.0.2\bin\java.exe -classpath C:\dev\tools\mvnd-0.4.1-windows-amd64\mvn\lib\ext\mvnd-common-0.4.1.jar;C:\dev\tools\mvnd-0.4.1-windows-amd64\mvn\lib\ext\mvnd-agent-0.4.1.jar -javaagent:C:\dev\tools\mvnd-0.4.1-windows-amd64\mvn\lib\ext\mvnd-agent-0.4.1.jar -Xms128M -Xmx2G -Dmvnd.home=C:\dev\tools\mvnd-0.4.1-windows-amd64 -Dmvnd.java.home=C:\dev\tools\jdk-14.0.2 -Dlogback.configurationFile=C:\dev\tools\mvnd-0.4.1-windows-amd64\conf\logback.xml -Dmvnd.id=259aadf8 -Dmvnd.daemonStorage=C:\Users\ast-fgur\.m2\mvnd\registry\0.4.1 -Dmvnd.registry=C:\Users\ast-fgur\.m2\mvnd\registry\0.4.1\registry.bin -Dmvnd.noDaemon=false -Dmvnd.debug=false -Dmvnd.idleTimeout=3h -Dmvnd.keepAlive=100ms -Dmvnd.extClasspath= -Dmvnd.coreExtensions= -Dmvnd.minHeapSize=128M -Dmvnd.maxHeapSize=2G -Dmvnd.enableAssertions=false -Dmvnd.expirationCheckDelay=10s -Dmvnd.duplicateDaemonGracePeriod=10s org.mvndaemon.mvnd.common.MavenDaemon
        at org.mvndaemon.mvnd.client.DaemonConnector.startDaemonProcess(DaemonConnector.java:374)
        at org.mvndaemon.mvnd.client.DaemonConnector.startDaemon(DaemonConnector.java:276)
        at org.mvndaemon.mvnd.client.DaemonConnector.connect(DaemonConnector.java:118)
        at org.mvndaemon.mvnd.client.DefaultClient.execute(DefaultClient.java:231)
        at org.mvndaemon.mvnd.client.DefaultClient.main(DefaultClient.java:98)
Caused by: java.io.IOException: Cannot run program "C:\dev\tools\jdk-14.0.2\bin\java.exe" (in directory "C:\Users\firatgursoy\Desktop\filez\desk\brainstorm"): CreateProcess error=5, Access is denied
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1128)
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1071)
        at org.mvndaemon.mvnd.client.DaemonConnector.startDaemonProcess(DaemonConnector.java:370)
        ... 4 more
Caused by: java.io.IOException: CreateProcess error=5, Access is denied
        at com.oracle.svm.jni.JNIJavaCallWrappers.jniInvoke_ARRAY:Ljava_io_IOException_2_0002e_0003cinit_0003e_00028Ljava_lang_String_2_00029V(JNIJavaCallWrappers.java:0)
        at com.oracle.svm.jni.functions.JNIFunctions$NewObjectWithObjectArrayArgFunctionPointer.invoke(JNIFunctions.java)
        at com.oracle.svm.jni.functions.JNIFunctions.ThrowNew(JNIFunctions.java:800)
        at java.lang.ProcessImpl.create(ProcessImpl.java)
        at java.lang.ProcessImpl.<init>(ProcessImpl.java:478)
        at java.lang.ProcessImpl.start(ProcessImpl.java:154)
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1107)
        ... 6 more

Also environment variables :

C:\Users\firatgursoy\Desktop\filez\desk\brainstorm>set
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\ast-fgur\AppData\Roaming
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
COMPUTERNAME=FIRATGURSOY
ComSpec=C:\windows\system32\cmd.exe
DEFLOGDIR=C:\ProgramData\McAfee\Endpoint Security\Logs
DriverData=C:\Windows\System32\Drivers\DriverData
ERROR_CODE=1
IntelliJ IDEA Community Edition=C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.3.3\bin;
JAVA_HOME=C:\dev\tools\jdk-14.0.2
LOCALAPPDATA=C:\Users\ast-fgur\AppData\Local
MVND_HOME=C:\dev\tools\mvnd-0.4.1-windows-amd64
NUMBER_OF_PROCESSORS=8
OneDrive=C:\Users\ast-fgur\OneDrive
OnlineServices=Online Services
OS=Windows_NT
Path=C:\Python27\;C:\Python27\Scripts;C:\dev\tools\jdk-14.0.2;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\windows\System32\OpenSSH\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Git\cmd;C:\Program Files\nodejs\;C:\Windows\Microsoft.NET\Framework64\v4.0.30319;C:\dev\tools\mvnd-0.4.1-windows-amd64\bin;C:\Users\ast-fgur\AppData\Local\Microsoft\WindowsApps;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.3.3\bin
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
platformcode=AN
PROCESSOR_ARCHITECTURE=AMD64
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 142 Stepping 11, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=8e0b
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)
ProgramW6432=C:\Program Files
PROMPT=$P$G
PSModulePath=C:\Program Files\WindowsPowerShell\Modules;C:\windows\system32\WindowsPowerShell\v1.0\Modules
PTSMINSTALLPATH=c:\Program Files\HP\HP ProtectTools Security Manager\Bin\
PTSMINSTALLPATH_X86=C:\Program Files (x86)\HP\HP ProtectTools Security Manager\Bin\
PUBLIC=C:\Users\Public
RegionCode=EMEA
SNC_LIB=C:\Program Files (x86)\SAP\FrontEnd\SecureLogin\lib\sapcrypto.dll
SNC_LIB_64=C:\Program Files\SAP\FrontEnd\SecureLogin\lib\sapcrypto.dll
SSF_LIBRARY_PATH=C:\Program Files (x86)\SAP\FrontEnd\SecureLogin\lib\sapcrypto.dll
SSF_LIBRARY_PATH_64=C:\Program Files\SAP\FrontEnd\SecureLogin\lib\sapcrypto.dll
SystemDrive=C:
SystemRoot=C:\windows
TEMP=C:\Users\ast-fgur\AppData\Local\Temp
TMP=C:\Users\ast-fgur\AppData\Local\Temp
USERDOMAIN=FIRATGURSOY
USERNAME=ast-fgur
USERPROFILE=C:\Users\ast-fgur
windir=C:\windows
ppalaga commented 3 years ago

Googling for java.io.IOException: CreateProcess error=5, Access is denied brings a couple of tips including

It does not look like the issue is mvnd specific. Thanks for reporting anyway.

firatgursoy commented 3 years ago

@ppalaga

Googling for java.io.IOException: CreateProcess error=5, Access is denied brings a couple of tips including

It does not look like the issue is mvnd specific. Thanks for reporting anyway.

Thanks for response.

I have already tried on 2 different windows machines. In this case; I think its not about missing permissions or antivirus.

After some hacking, I have solved the issue.

I edited endReadAdditionalConfig section on mvnd.cmd file. So its okay now. I hope its helpful for you. Maybe you want to edit your windows binaries.

Before :

:endReadAdditionalConfig

for %%i in ("%MVND_HOME%"\boot\*.jar "%MVND_HOME%"\lib\ext\*.jar "%MVND_HOME%"\lib\*.jar) do set DAEMON_JAR="%%i"
set DAEMON_LAUNCHER=org.mvndaemon.mvnd.client.DefaultClient

"%JAVACMD%" ^
  %JVM_CONFIG_MAVEN_PROPS% ^
  %MAVEN_OPTS% ^
  %MAVEN_DEBUG_OPTS% ^
  -classpath %DAEMON_JAR% ^
  "-Dlogback.configurationFile=%MVND_HOME%\conf\logging\logback-client.xml" ^
  "-Dmvnd.home=%MAVEN_HOME%" ^
  "-Dmaven.home=%MAVEN_HOME%" ^
  "-Dlibrary.jansi.path=%MAVEN_HOME%\lib\jansi-native" ^
  "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
  %DAEMON_LAUNCHER% %MAVEN_CMD_LINE_ARGS%
if ERRORLEVEL 1 goto error
goto end

:error
set ERROR_CODE=1

:end

After :


:endReadAdditionalConfig

@setlocal EnableExtensions EnableDelayedExpansion
for %%i in ("%MVND_HOME%"\mvn\boot\*.jar "%MVND_HOME%"\mvn\lib\ext\*.jar "%MVND_HOME%"\mvn\lib\*.jar) do set DAEMON_JAR=!DAEMON_JAR!;%%i
@endlocal & set DAEMON_JAR="%DAEMON_JAR%"

set DAEMON_LAUNCHER=org.mvndaemon.mvnd.client.DefaultClient

"%JAVACMD%" ^
  %JVM_CONFIG_MAVEN_PROPS% ^
  %MAVEN_OPTS% ^
  %MAVEN_DEBUG_OPTS% ^
  -classpath %DAEMON_JAR% ^
  "-Dlogback.configurationFile=%MVND_HOME%\conf\logging\logback-client.xml" ^
  "-Dmvnd.home=%MAVEN_HOME%" ^
  "-Dmaven.home=%MAVEN_HOME%" ^
  "-Dlibrary.jansi.path=%MAVEN_HOME%\lib\jansi-native" ^
  "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
  %DAEMON_LAUNCHER% %MAVEN_CMD_LINE_ARGS%
if ERRORLEVEL 1 goto error
goto end

:error
set ERROR_CODE=1

:end
gnodet commented 3 years ago

@firatgursoy I've just seen your fix. In the mean time, I was testing on a VM and fixed the problem with https://github.com/mvndaemon/mvnd/commit/6095f2073bd64670a9dacf374c55e1b7a2f56ca0

Is the @setlocal EnableExtensions EnableDelayedExpansion command required ? What's the purpose ?