[MAGNOLIA-5520] bundled web app leads to JVM crash / core dump at least on Mac OS X Created: 28/Nov/13  Updated: 31/Jan/19  Resolved: 12/Dec/13

Status: Closed
Project: Magnolia
Component/s: build, core
Affects Version/s: 4.5.11, 4.5.12, 5.2
Fix Version/s: None

Type: Bug Priority: Blocker
Reporter: Will Scheidegger Assignee: Daniel Lipp
Resolution: Not an issue Votes: 0
Labels: java7, mac, osx
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Mac OS X 10.8.5
JRE version: Java(TM) SE Runtime Environment (7.0_45-b18) (build 1.7.0_45-b18)
Java VM: Java HotSpot(TM) 64-Bit Server VM (24.45-b08 mixed mode bsd-amd64 compressed oops)


Attachments: Text File hs_err_pid19833.log     XML File pom.xml     XML File pom.xml    
Issue Links:
relation
is related to MAGNOLIA-5526 Prevent installation on problematic e... Closed
Template:
Acceptance criteria:
Empty
Task DoD:
[ ]* Doc/release notes changes? Comment present?
[ ]* Downstream builds green?
[ ]* Solution information and context easily available?
[ ]* Tests
[ ]* FixVersion filled and not yet released
[ ]  Architecture Decision Record (ADR)
Bug DoR:
[ ]* Steps to reproduce, expected, and actual results filled
[ ]* Affected version filled
Date of First Response:

 Description   

An EE customer was experiencing tons of "lost network connections" (images, css or even on webpages) and frequent core dumps on their development machines. We first thought this would be due to something specific in their setup, but then had to realize that this can be reliably reproduced even with a plain vanilla Magnolia CE bundled web app.

To be absolutely sure that the problem was not due to incompetence in the build or setup I painstakingly followed Greg's instructions on his blog (http://dev.magnolia-cms.com/~gjoseph/dont-build-magnolia-build-your-projects):

First, I created the project with the archetype:

%> mvn archetype:generate -DarchetypeCatalog=http://nexus.magnolia-cms.com/content/groups/public/

Choose version: 
1: 1.1.0
2: 1.2.0-SNAPSHOT
Choose a number: 2: 1    
Define value for property 'groupId': : com.acme
Define value for property 'artifactId': : acme-project
Define value for property 'version':  1.0-SNAPSHOT: : 
Define value for property 'package':  com.acme: : 
Define value for property 'magnolia-version': : 4.5.12
Define value for property 'project-name':  acme-project: : My ACME Project
Confirm properties configuration:
groupId: com.acme
artifactId: acme-project
version: 1.0-SNAPSHOT
package: com.acme
magnolia-version: 4.5.12
project-name: My ACME Project
 Y: : 

Project was created and could be built fine. Then I ran it in Tomcat 7.0.35 (also tried TC 6 with the same results, customer even tried on TC 8). Magnolia started up and installed fine - no problems.

Then we converted it to a bundled web app by changing the dependencies to magnolia-bundled-webapp in the parent pom and the web app pom. The project still built successfully built, but when trying to launch it, I got a ModuleDependencyException:

Module Magnolia RSS Aggregator Module (version 1.4.3) is dependent on scheduler version 1.5.5/*, but Magnolia Scheduler Module (version 1.5.2) is currently installed.

Alright, so somebody did not test this before releasing it. But that's a different story (or "issue"). I added the scheduler module to the dependency management in the parent pom and did a new clean build and install. Now the installer could be loaded. However when launching the installation...

  • first few steps run o.k.,
  • then "network connection lost" errors started to show up in the browser console (and images got lost)
  • then a core was printed to the log:
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00000001047fba20, pid=19833, tid=54787
#
# JRE version: Java(TM) SE Runtime Environment (7.0_45-b18) (build 1.7.0_45-b18)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.45-b08 mixed mode bsd-amd64 compressed oops)
# Problematic frame:
# C  [libjava.dylib+0x9a20]  JNU_NewStringPlatform+0x1c8
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /Users/will/Documents/Work/Java/Tomcat/apache-tomcat-7.0.35/hs_err_pid19833.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

Sometimes the JVM crashes quickly, sometime the installation process hangs and the JVM crashes with a lag. And it seems the problem start to appear when Magnolia is bootstrapping stuff.

This did never happen as long as I was using Java 1.6. And it does not happen when using magnolia-empty-webapp.



 Comments   
Comment by Will Scheidegger [ 28/Nov/13 ]

Parent pom

Comment by Will Scheidegger [ 28/Nov/13 ]

webapp pom

Comment by Will Scheidegger [ 28/Nov/13 ]

Just to rule out any errors in the description above I switched back to Java 6 and installed the exact same web app again => everything works perfectly on Java 6. So the questions really are:

  • Why does this happen with Java 7?
  • Why does it happen on a bundled web app and not on the empty web app?
  • And of course: What can be done to fix this?
Comment by Daniel Lipp [ 02/Dec/13 ]

There's known issues with Java7 on OSX hence we couldn't add that combination (yet) to our certified stack (http://documentation.magnolia-cms.com/display/DOCS/Certified+stack)
Our suspicion is it's something in the imaging module. We'll investigate in more detail and keep you updated.

Comment by Daniel Lipp [ 12/Dec/13 ]

After some intense testing we found there's "problematic environments", in other words: combinations of OS / Java and Servlet Container that will very likely lead to broken http connections and sometimes to JVM crashes as well:

See: http://documentation.magnolia-cms.com/display/DEV/Dropped+HTTP+connections and http://documentation.magnolia-cms.com/display/DOCS/Problematic+environments for further details.

After all it looks like that OS X with Tomcat 6 or 7 (not 8) and Java 7 or 8 lead to running into https://bugs.openjdk.java.net/browse/JDK-8028313.

We'll try to push Apache and/or Oracle to fix but that might take some time...

Comment by Daniel Lipp [ 12/Dec/13 ]

Resolved as "not an issue" because we just can try to put some pressure on Oracle to fix the underlying bug or on Apache to adapt their codebase to no longer run into it.

Comment by Daniel Lipp [ 16/Dec/13 ]

Look's like it's caused by https://bugs.openjdk.java.net/browse/JDK-8023403. The bad news there is that - although it fixed/resolved already - there's no Java 7 release yet that contains that fix. It's should be in 7u60 which is not scheduled yet.

Comment by Philip Mundt [ 06/Aug/14 ]

Confirming error upon startup with Java8

java version "1.8.0-ea"
Java(TM) SE Runtime Environment (build 1.8.0-ea-b119)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b61, mixed mode)
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x0000000176a78eb5, pid=41309, tid=79363
#
# JRE version: Java(TM) SE Runtime Environment (8.0-b119) (build 1.8.0-ea-b119)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.0-b61 mixed mode bsd-amd64 compressed oops)
# Problematic frame:
# C  [libnet.dylib+0x8eb5]  Java_java_net_SocketInputStream_socketRead0+0x243
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /Users/prm/Tmp/magnolia-5.3.2-SNAPSHOT/apache-tomcat-7.0.47/hs_err_pid41309.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp
#
Generated at Mon Feb 12 04:05:55 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.