GWT компиляция вызывает SIGSEGV

1

Кто-нибудь знает, что может привести к сбою компиляции GWT между запуском gwt-maven-plugin и оператором "Компиляция модуля"?

Обычно мы запускаем GWT с информацией, поэтому все, что я вижу в своем журнале, - это запуск плагина, за которым вскоре последовали SIGSEGV. Когда я запускаю с отладкой локально и не вижу проблемы, я вижу, что нарушение возникает, а плагин GWT выполняет один из следующих шагов:

  • загружает унаследованные модули
  • обзоры "Публичные ресурсы, найденные в..." (я вижу два предупреждения для.pom файлов, найденных в пути к классам)
  • Переводимый источник найден в...
  • Постоянный единичный набор кеш-памяти
  • Поиск ранее кэшированных модулей компиляции.

Я начинаю с чистого каталога, поэтому я и мой кеш находятся под прицелом, поэтому я не думаю, что это в последних двух. Поскольку ошибка связана с записью zip lib, я подозреваю, что путь к классам и разрешение являются вероятной проблемой.

окр

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

Пожалуйста, дайте мне знать, если у вас есть идеи, я увеличиваю уровень журналов, меняя память и надеясь на воспроизводимый случай. благодаря

Опции

  • Увеличьте память GWT и ограничьте рабочие потоки (DONE: 1 поток, 4g куча, без изменений)
  • обновить плагин до 2.5.1 или 2.6.1
  • обновить jdk до u67
  • обновить gwt до 2.6.1

Кроме

[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
Теги:
maven
gwt
sigsegv
gwt-maven-plugin

1 ответ

1

Согласно stacktrace, эта ошибка происходит даже до того, как задействован компилятор GWT: когда gwt-maven-plugin пытается определить, нужно ли перекомпилировать модули или нет (или вообще, если они должны быть скомпилированы вообще: компиляция плагина пропускает если нет входных точек).

Алгоритм, вероятно, ошибочен (например, он исключает унаследованные модули, имя которых начинается с com.google.gwt. но может включать модули из зависимостей -eg GIN-, и в GWT есть модули, которые не находятся в этой иерархии, - но в com.google.web.bindery -) и, возможно, com.google.web.bindery, но я бы сказал, что в этом случае он задыхается от некорректного JAR или чего-то подобного.

Может быть, попробуйте очистить локальное репо (~/.m2/repository) для повторной загрузки зависимостей?

Кроме того, запустите Maven с mvnDebug команды mvnDebug и присоедините к нему отладчик, установив точку прерывания где-нибудь в методах, идентифицированных в стеке, чтобы попытаться выяснить, какой JAR может быть поврежден (по крайней мере, один из них вызывает сбой JVM)

  • 0
    Спасибо Томас, это помогает. Из-за прерывистой природы я не могу легко сделать отладку. Тем не менее, я могу просмотреть источник плагина, возможно, или увеличить его с 2.5.1.rc4 до 2.5.1, что должно быть безопасно. Прямо сейчас я работаю над получением легко воспроизводимого случая. При 2-часовом тесте на итерацию, когда я не уверен, что неудача мешает циклическому тестированию

Ещё вопросы

Сообщество Overcoder
Наверх
Меню