You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by Mark Thomas <ma...@apache.org> on 2019/05/20 19:49:17 UTC

Help needed with Commons Daemon issues

Hi,

I think this is going to be one for Mladen but if you have some insight
please do speak up.

I have been looking at:
https://issues.apache.org/jira/projects/DAEMON/issues/DAEMON-398

I'll try and keep the explanation short.

One of the first things Tomcat9.exe (prunsrv.exe) does is to redirect
stdout and stderr to files.

Tomcat9.exe (in jvm mode) then calls into jvm.dll to create a Java
runtime environment in process. As part of this it provides the command
line arguments. If these are invalid, an error is written to stderr and
the Java runtime fails to initialise.

Generally, all is good.

If you use Windows Server 2012 R2 or earlier with any Java version, the
redirection works.

If you use AdoptOpenJDK 11.0.2+9 on earlier on any current Windows
version, the redirection works.

However, if you try the above with AdoptOpenJDK 11.0.3.7 or later on
Windows Server 2016 the redirection fails.

This appears to be related to AdoptOpenJDK 11.0.3.7 being built with
Visual Studio 2017 (11.0.2+9 was build with VS 2013).

I have tried to recreate the problem with a simple DLL and EXE without
success.

I have tried various tweaks to the redirection code without success.

Avoiding issues like this is exactly why we build Commons Daemon and
Tomcat Native against MSCVRT.DLL using the build environment Mladen
designed. It looks like VS2017 might finally have broken that.

Mark

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org