简体   繁体   中英

GWT compile causes SIGSEGV

Does anyone know what could be causing GWT compilation failure between gwt-maven-plugin start and "Compiling module" statement?

We run GWT with info normally so all I see in my log is plugin start followed by SIGSEGV soon after. When I run with debug locally and don't see the problem I can see that the violation gets thrown while GWT plugin is performing one of these steps:

  • loads inherited modules
  • reviews "Public resources found in..." (I see two warnings for .pom files found in the classpath)
  • Translatable source found in...
  • Persistent unit cache dir set
  • Looking for previously cached Compilation Units.

I'm starting from a clean directory so I and my cache is under target so I don't think it is in the last two. Since the error relates to a zip lib entry, I suspect classpath and resolution is the likely issue.

env

jdk 1.7.0 u55 + gwt 2.5.1 + gwt-maven-plugin 2.5.1-rc1

Please let me know if you have any ideas, I'm increasing log level, changing memory and hoping for a reproducible case. Thanks

Options

  • Increase GWT memory and limit worker threads (DONE: 1 thread, 4g heap, no change)
  • upgrade plugin to 2.5.1 or 2.6.1
  • upgrade jdk to u67
  • upgrade gwt to 2.6.1

except

[INFO] --- gwt-maven-plugin:2.5.1-rc1:compile (default) @ mymodule ---
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00000036a3089aab, pid=14610, tid=140310347593472
#
# JRE version: Java(TM) SE Runtime Environment (7.0_55-b13) (build 1.7.0_55-b13)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.55-b03 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  [libc.so.6+0x89aab]  memcpy+0x15b
...
...
Stack: [0x00007f9c8c5d3000,0x00007f9c8c6d4000],  sp=0x00007f9c8c6d0c68,  free space=1015k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [libc.so.6+0x89aab]  memcpy+0x15b
C  [libzip.so+0x50b0]  ZIP_GetEntry+0xd0
C  [libzip.so+0x3eed]  Java_java_util_zip_ZipFile_getEntry+0xad
J  java.util.zip.ZipFile.getEntry(J[BZ)J

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
J  java.util.zip.ZipFile.getEntry(J[BZ)J
J  java.util.zip.ZipFile.getEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry;
J  java.util.jar.JarFile.getEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry;
j  sun.net.www.protocol.jar.URLJarFile.getEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry;+2
j  sun.net.www.protocol.jar.JarURLConnection.connect()V+62
j  sun.net.www.protocol.jar.JarURLConnection.getInputStream()Ljava/io/InputStream;+1
j  java.net.URLClassLoader.getResourceAsStream(Ljava/lang/String;)Ljava/io/InputStream;+18
J  org.codehaus.mojo.gwt.AbstractGwtModuleMojo.readModule(Ljava/lang/String;)Lorg/codehaus/mojo/gwt/GwtModule;
j  org.codehaus.mojo.gwt.GwtModule.getLocalInherits()Ljava/util/Set;+74
j  org.codehaus.mojo.gwt.GwtModule.addInheritedModules(Ljava/util/Set;Ljava/util/Set;)V+42
j  org.codehaus.mojo.gwt.GwtModule.getInherits()Ljava/util/Set;+32
j  org.codehaus.mojo.gwt.GwtModule.getEntryPoints()Ljava/util/List;+20
j  org.codehaus.mojo.gwt.shell.CompileMojo.compilationRequired(Ljava/lang/String;Ljava/io/File;)Z+35
j  org.codehaus.mojo.gwt.shell.CompileMojo.compile([Ljava/lang/String;)V+432
j  org.codehaus.mojo.gwt.shell.CompileMojo.doExecute()V+57
j  org.codehaus.mojo.gwt.shell.AbstractGwtShellMojo.execute()V+1
j  org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(Lorg/apache/maven/execution/MavenSession;Lorg/apache/maven/plugin/MojoExecution;)V+166
j  org.apache.maven.lifecycle.internal.MojoExecutor.execute(Lorg/apache/maven/execution/MavenSession;Lorg/apache/maven/plugin/MojoExecution;Lorg/apache/maven/lifecycle/internal/ProjectIndex;Lorg/apache/maven/lifecycle/internal/DependencyContext;)V+215
j  org.apache.maven.lifecycle.internal.MojoExecutor.execute(Lorg/apache/maven/execution/MavenSession;Lorg/apache/maven/plugin/MojoExecution;Lorg/apache/maven/lifecycle/internal/ProjectIndex;Lorg/apache/maven/lifecycle/internal/DependencyContext;Lorg/apache/maven/lifecycle/internal/PhaseRecorder;)V+6
j  org.apache.maven.lifecycle.internal.MojoExecutor.execute(Lorg/apache/maven/execution/MavenSession;Ljava/util/List;Lorg/apache/maven/lifecycle/internal/ProjectIndex;)V+60
j  org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(Lorg/apache/maven/execution/MavenSession;Lorg/apache/maven/execution/MavenSession;Lorg/apache/maven/lifecycle/internal/ReactorContext;Lorg/apache/maven/project/MavenProject;Lorg/apache/maven/lifecycle/internal/TaskSegment;)V+151
j  org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(Lorg/apache/maven/execution/MavenSession;Lorg/apache/maven/lifecycle/internal/ReactorContext;Lorg/apache/maven/project/MavenProject;Lorg/apache/maven/lifecycle/internal/TaskSegment;)V+7
j  org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(Lorg/apache/maven/execution/MavenSession;Lorg/apache/maven/lifecycle/internal/ReactorContext;Lorg/apache/maven/lifecycle/internal/ProjectBuildList;Ljava/util/List;Lorg/apache/maven/lifecycle/internal/ReactorBuildStatus;)V+77
j  org.apache.maven.lifecycle.internal.LifecycleStarter.execute(Lorg/apache/maven/execution/MavenSession;)V+336
j  org.apache.maven.DefaultMaven.doExecute(Lorg/apache/maven/execution/MavenExecutionRequest;)Lorg/apache/maven/execution/MavenExecutionResult;+557
j  org.apache.maven.DefaultMaven.execute(Lorg/apache/maven/execution/MavenExecutionRequest;)Lorg/apache/maven/execution/MavenExecutionResult;+11
j  org.apache.maven.cli.MavenCli.execute(Lorg/apache/maven/cli/MavenCli$CliRequest;)I+19
j  org.apache.maven.cli.MavenCli.doMain(Lorg/apache/maven/cli/MavenCli$CliRequest;)I+61
j  org.apache.maven.cli.MavenCli.main([Ljava/lang/String;Lorg/codehaus/plexus/classworlds/ClassWorld;)I+18
v  ~StubRoutines::call_stub
j  sun.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+0
j  sun.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+87
j  sun.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+6
j  java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+57
j  org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced([Ljava/lang/String;)V+45
j  org.codehaus.plexus.classworlds.launcher.Launcher.launch([Ljava/lang/String;)V+2
j  org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode([Ljava/lang/String;)I+101
j  org.codehaus.plexus.classworlds.launcher.Launcher.main([Ljava/lang/String;)V+1
v  ~StubRoutines::call_stub

According to the stacktrace, that error happens even before the GWT compiler is involved: when the gwt-maven-plugin tries to identify whether the modules need to be recompiled or not (or actually if they should be compiled at all: the plugin skips compilation if there are no entry-points).

The algorithm is likely flawed (eg it excludes inherited modules whose name start with com.google.gwt. but that could include modules from dependencies –eg GIN– and there are modules in GWT proper that aren't in this hierarchy –but in com.google.web.bindery –) and possibly buggy, but I'd say in this case it chokes on a malformed JAR or something similar.

Maybe try cleaning your local repo ( ~/.m2/repository ) to re-download the dependencies?

Alternatively, run Maven with the mvnDebug command and attach a debugger to it, setting a break-point somewhere in the methods identified in the stacktrace to try to find out which JAR could be corrupt (at least which one makes the JVM crash)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM