NetKernel Alert: Java 1.6.0_26 Regression affects NetKernel Shutdown

Poster Content
nk4um Moderator
Posts: 825

Following up on yesterday's alert. We have posted patched versions of the NKSE and NKEE downloads. These distributions contain an update to the http-server module to version 2.5.1 containing Jetty 7.2.0.

We discovered that the Jetty 6.1.x series libraries used in the existing distribution builds were triggering the Java regression. The more recent Jetty 7.2.x series does not trigger the same problem.

You have the following choices:

1. Download a clean copy of NKSE or NKEE (note they are both still numbered 4.1.1 since 4.1.1 corresponds with the complete set of "distribution stem system + online repository") . We have tested extensively on different JVMs and these do not now trigger the Java bug.

2. If you have an existing NK install make sure it is running the latest http-server 2.5.1 package by looking in Apposite. If it is, then you will not experience any problem and you do not need to do anything.

We apologize for any inconvenience this may have caused. Please understand at no point was this a bug in NetKernel - we pride ourselves on our QA. I won't make any pointed remarks about other platforms.

If you do go with a clean download and install, it would be very useful if you can report back to confirm there are no corner cases on different platforms. Notably we'd like to hear about OSX Lion.

Best Regards,

The 1060 NetKernel Team

Like · Post Reply
nk4um Moderator
Posts: 825

We're sorry to have to report that we have identified a regression in Sun Java version 1.6.0_26 which is affecting the shutdown of the Jetty HTTP transport. The symptom is that during shutdown NetKernel will appear to hang when it requests for the Jetty Transport to gracefully shutdown, Jetty will then max out the CPU.

This issue affects both shutdown and a full reboot. The latter may well occur if you attempt to use Apposite to update any of the core packages (Kernel, Layer0, Layer1, Standard Module). We recommend that if you are running Java 1.6.0_26 that you do not currently attempt to use Apposite.

We have confirmed that this issue is *not* present on Sun Java 1.6.0_24 or earlier (tested 1.6.0_21) - we therefore strongly recommend that as a workaround you revert your Java installation to an earlier version.

We first discovered this problem when we heard Mac OSX users who had updated to Lion were experiencing problems shutting down. We have subsequently seen the problem on both OSX and Linux with the 1.6.0_26 JVM.

We are still investigating how the internals of Jetty are able to trigger this and if this has been reported as a known Java regression. We will continue to investigate and hope to have a more satisfactory workaround and recommendation for production deployments by the end of the week.

Needless to say, this sort of thing really really makes us mad. We will do our level best to make sure the affect you experience is kept to the absolute minimum.

The 1060 NetKernel Team

PS If you are wondering about switching to Java 7 - we have not yet completed testing on Java 7 and cannot make a recommendation. At the time of Java 7's release last week we read reports of serious issues with the release - notably the Lucene team had some simple code that would repeatedly cause the JVM to sig_seg /crash due to a bug in the JIT compiler.

PPS This issue is only a problem if you are using Jetty via the HTTP transport - if for any reason (embedded systems etc) you are not using an HTTP transport then NetKernel is otherwise not affected.

Like · Post Reply