On 17/04/2023 23:04, Christopher Schultz wrote:
Mark,

On 4/17/23 05:07, Mark Thomas wrote:
On 16/04/2023 18:59, Mark Thomas wrote:
On 14/04/2023 21:38, Christopher Schultz wrote:

The proposed 8.5.88 release is:
[ ] Broken - do not release
[X] Stable - go ahead and release as 8.5.88 (stable)

Build is reproducible on Windows x64 but not Linux x64.

Unit tests pass on Linux x64, Windows x64, MacOS M1 and MacOS x64.

It appears the compiler constructs a slightly different class for NioEndpoint$Poller when compiling on Linux x64. I started to dig into why but didn't reach a conclusion. Investigating further is on my TODO list.

I have made some progress. The difference is in how the following line is handled (there are other differences but this is the first and the other differences may be as a result of this one).

https://github.com/apache/tomcat/blob/8.5.x/java/org/apache/tomcat/util/net/NioEndpoint.java#L846

When compiling on Windows with Java 11 targeting Java 7 the following byte code is generated:

...
126:  aload        %4
128:  invokevirtual org.apache.tomcat.util.net.NioChannel.getIOChannel ()Ljava/nio/channels/SocketChannel; (32)
131:  checkcast        <java.nio.channels.WritableByteChannel> (121)
134:  astore        %6
...

When compiling on Linux with Java 11 targeting Java 7 the checkcast command is not present. Neither is it present when compiling on Windows with Java 11 targeting Java 8.

This is arguably a bug in the compiler - the byte code should be the same across platforms - but having researched things this far, I don't plan to pursue this further.

+1 to ignoring this, though it is annoying that the build is therefore not completely reproducible.

Do you have an account with the Eclipse bug-tracker used for JDK bugs? I don't think I do. Is this something you can report? It should be trivially reproducible (hah!) with publicly-available artifacts.

I do have bug creation karma for the JDK project. Given this only appears to affect Java 11 when targeting Java 7 I can't imagine it will be high on anyone's priority list.

I can add creating a reproducible test case and a bug report for this to my TODO but it is going to be fairly low priority and might not get done before 8.5.x reaches EOL.

Mark

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

Reply via email to