sbt / sbt

sbt, the interactive build tool
https://scala-sbt.org
Apache License 2.0
4.79k stars 935 forks source link

com.swoval:file-tree-views EXCEPTION_ACCESS_VIOLATION JVM crash on 32bits JVM #4841

Closed slandelle closed 5 years ago

slandelle commented 5 years ago

steps

Using zinc 1.3.0-M7

problem

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0131e36c, pid=10932, tid=0x0000104c
#
# JRE version: Java(TM) SE Runtime Environment (8.0_211-b12) (build 1.8.0_211-b12)
# Java VM: Java HotSpot(TM) Client VM (25.211-b12 mixed mode windows-x86 )
# Problematic frame:
# C  0x0131e36c
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

---------------  T H R E A D  ---------------

Current thread (0x011ad000):  JavaThread "main" [_thread_in_native, id=4172, stack(0x012d0000,0x01320000)]

siginfo: ExceptionCode=0xc0000005, ExceptionInformation=0x00000008 0x0131e36c

Registers:
EAX=0x01401b68, EBX=0x011ad140, ECX=0x8cac5093, EDX=0x00000000
ESP=0x0131e32c, EBP=0x0131e35c, ESI=0x0131e370, EDI=0x011ad000
EIP=0x0131e36c, EFLAGS=0x00010212

Top of Stack: (sp=0x0131e32c)
0x0131e32c:   02d4d8f0 18ccd7c0 18c50b40 02d4d8c6
0x0131e33c:   0131e33c 18c50b40 0131e370 18c519c8
0x0131e34c:   00000000 18c50b40 00000000 0131e36c
0x0131e35c:   0131e394 02d44590 00000000 02d4a1c9
0x0131e36c:   05654058 05331418 0131e374 18c50dfa
0x0131e37c:   0131e3c8 18c519c8 00000000 18c51060
0x0131e38c:   0131e36c 0131e3c4 0131e3ec 02d447c4
0x0131e39c:   00000000 00000000 00000000 00000000 

Instructions: (pc=0x0131e36c)
0x0131e34c:   00 00 00 00 40 0b c5 18 00 00 00 00 6c e3 31 01
0x0131e35c:   94 e3 31 01 90 45 d4 02 00 00 00 00 c9 a1 d4 02
0x0131e36c:   58 40 65 05 18 14 33 05 74 e3 31 01 fa 0d c5 18
0x0131e37c:   c8 e3 31 01 c8 19 c5 18 00 00 00 00 60 10 c5 18 

Register to memory mapping:

EAX=0x01401b68 is an unknown value
EBX=0x011ad140 is an unknown value
ECX=0x8cac5093 is an unknown value
EDX=0x00000000 is an unknown value
ESP=0x0131e32c is pointing into the stack for thread: 0x011ad000
EBP=0x0131e35c is pointing into the stack for thread: 0x011ad000
ESI=0x0131e370 is pointing into the stack for thread: 0x011ad000
EDI=0x011ad000 is a thread

Stack: [0x012d0000,0x01320000],  sp=0x0131e32c,  free space=312k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  0x0131e36c
j  com.swoval.files.NativeDirectoryLister.fillResults(Ljava/lang/String;)Lcom/swoval/files/SimpleFileTreeView$ListResults;+42
j  com.swoval.files.NativeDirectoryLister.apply(Ljava/lang/String;Z)Lcom/swoval/files/SimpleFileTreeView$ListResults;+10
j  com.swoval.files.SimpleFileTreeView$Lister.impl(Ljava/nio/file/Path;I)V+22
j  com.swoval.files.SimpleFileTreeView$Lister.fillResults(Ljava/nio/file/Path;I)V+3
j  com.swoval.files.SimpleFileTreeView.list(Ljava/nio/file/Path;ILcom/swoval/functional/Filter;)Ljava/util/List;+34
j  sbt.nio.file.FileTreeView$DefaultFileTreeView$.list(Ljava/nio/file/Path;)Lscala/collection/Seq;+14
j  sbt.nio.file.FileTreeView$$anon$1.fillBuffer()V+199
j  sbt.nio.file.FileTreeView$$anon$1.<init>(Lscala/Function2;Ljava/util/LinkedList;Ljava/util/LinkedList;Ljava/util/HashSet;Lscala/Function1;Lsbt/nio/file/FileTreeView;Lscala/Function1;)V+77
j  sbt.nio.file.FileTreeView$.iterator(Lscala/collection/Traversable;Lsbt/nio/file/FileTreeView;Lscala/Function2;)Lscala/collection/Iterator;+132
j  sbt.nio.file.FileTreeView$.all(Lscala/collection/Traversable;Lsbt/nio/file/FileTreeView;Lscala/Function2;)Lscala/collection/Seq;+4
j  sbt.nio.file.FileTreeView$.all(Lscala/collection/Traversable;Lsbt/nio/file/FileTreeView;)Lscala/collection/Seq;+8
j  sbt.nio.file.FileTreeView$Ops$.list$extension0(Lsbt/nio/file/FileTreeView;Lsbt/nio/file/Glob;)Lscala/collection/Seq;+13
j  sbt.io.Path$.$anonfun$defaultChildHandler$3(Lsbt/nio/file/FileTreeView;Ljava/io/File;Lsbt/io/FileFilter;)Lscala/collection/Seq;+23
j  sbt.io.Path$$$Lambda$111.apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+12
j  sbt.io.FilterFiles.handleFile(Ljava/io/File;Lscala/collection/mutable/Set;)V+6
j  sbt.io.ChildPathFinder.$anonfun$addTo$2(Lsbt/io/ChildPathFinder;Lscala/collection/mutable/Set;Ljava/io/File;)V+3
j  sbt.io.ChildPathFinder.$anonfun$addTo$2$adapted(Lsbt/io/ChildPathFinder;Lscala/collection/mutable/Set;Ljava/io/File;)Ljava/lang/Object;+3
j  sbt.io.ChildPathFinder$$Lambda$113.apply(Ljava/lang/Object;)Ljava/lang/Object;+12
j  scala.collection.Iterator.foreach(Lscala/Function1;)V+16
j  scala.collection.Iterator.foreach$(Lscala/collection/Iterator;Lscala/Function1;)V+2
j  scala.collection.AbstractIterator.foreach(Lscala/Function1;)V+2
j  scala.collection.IterableLike.foreach(Lscala/Function1;)V+7
j  scala.collection.IterableLike.foreach$(Lscala/collection/IterableLike;Lscala/Function1;)V+2
j  scala.collection.AbstractIterable.foreach(Lscala/Function1;)V+2
j  sbt.io.ChildPathFinder.addTo(Lscala/collection/mutable/Set;)V+14
j  sbt.io.PathFinderImpl.get()Lscala/collection/Seq;+22
j  sbt.internal.inc.CompilerArguments.$anonfun$extClasspath$1(Ljava/lang/String;)Lscala/collection/Seq;+31
j  sbt.internal.inc.CompilerArguments$$Lambda$101.apply(Ljava/lang/Object;)Ljava/lang/Object;+4
j  scala.collection.immutable.List.flatMap(Lscala/Function1;Lscala/collection/generic/CanBuildFrom;)Ljava/lang/Object;+53
j  sbt.internal.inc.CompilerArguments.extClasspath()Lscala/collection/Seq;+34
j  sbt.internal.inc.MixedAnalyzingCompiler$.withBootclasspath(Lsbt/internal/inc/CompilerArguments;Lscala/collection/Seq;)Lscala/collection/Seq;+6
j  sbt.internal.inc.MixedAnalyzingCompiler$.searchClasspathAndLookup(Lsbt/internal/inc/CompileConfiguration;)Lscala/Tuple2;+111
j  sbt.internal.inc.MixedAnalyzingCompiler$.apply(Lsbt/internal/inc/CompileConfiguration;Lsbt/util/Logger;)Lsbt/internal/inc/MixedAnalyzingCompiler;+2
j  sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(Lsbt/internal/inc/IncrementalCompilerImpl;Lscala/Option;Lxsbti/compile/Output;Lxsbti/compile/ScalaCompiler;Lxsbti/compile/JavaCompiler;[Ljava/io/File;Lscala/collection/Seq;Lxsbti/compile/GlobalsCache;Lscala/Option;Lscala/collection/Seq;Lscala/collection/Seq;Lscala/Option;Lxsbti/compile/PerClasspathEntryLookup;Lxsbti/Reporter;Lxsbti/compile/CompileOrder;ZLxsbti/compile/IncOptions;Lscala/collection/immutable/List;Lscala/Option;Lxsbti/Logger;)Lxsbti/compile/CompileResult;+320
j  sbt.internal.inc.IncrementalCompilerImpl$$Lambda$43.apply()Ljava/lang/Object;+80
j  sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError([Ljava/io/File;Lxsbti/compile/Output;Lxsbti/Logger;Lscala/Function0;)Lxsbti/compile/CompileResult;+2
j  sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(Lxsbti/compile/ScalaCompiler;Lxsbti/compile/JavaCompiler;[Ljava/io/File;Lscala/collection/Seq;Lxsbti/compile/Output;Lxsbti/compile/GlobalsCache;Lscala/Option;Lscala/collection/Seq;Lscala/collection/Seq;Lscala/Option;Lscala/Option;Lxsbti/compile/PerClasspathEntryLookup;Lxsbti/Reporter;Lxsbti/compile/CompileOrder;ZLxsbti/compile/IncOptions;Lscala/Option;Lscala/collection/immutable/List;Lxsbti/Logger;)Lxsbti/compile/CompileResult;+47
j  sbt.internal.inc.IncrementalCompilerImpl.compile(Lxsbti/compile/Inputs;Lxsbti/Logger;)Lxsbti/compile/CompileResult;+228
j  sbt_inc.SbtIncrementalCompiler.compile(Ljava/util/List;Ljava/util/List;Ljava/io/File;Ljava/util/List;Ljava/util/List;)V+172
j  scala_maven.ScalaCompilerSupport.incrementalCompile(Ljava/util/List;Ljava/util/List;Ljava/io/File;Ljava/io/File;Z)I+136
j  scala_maven.ScalaCompilerSupport.compile(Ljava/util/List;Ljava/io/File;Ljava/io/File;Ljava/util/List;Z)I+27
j  scala_maven.ScalaCompilerSupport.doExecute()V+97
j  scala_maven.ScalaMojoSupport.execute()V+82
j  scala_maven.ScalaTestCompileMojo.execute()V+9
j  org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(Lorg/apache/maven/execution/MavenSession;Lorg/apache/maven/plugin/MojoExecution;)V+152
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+179
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+348
j  org.apache.maven.DefaultMaven.doExecute(Lorg/apache/maven/execution/MavenExecutionRequest;Lorg/apache/maven/execution/MavenSession;Lorg/apache/maven/execution/MavenExecutionResult;Lorg/eclipse/aether/DefaultRepositorySystemSession;)Lorg/apache/maven/execution/MavenExecutionResult;+425
j  org.apache.maven.DefaultMaven.doExecute(Lorg/apache/maven/execution/MavenExecutionRequest;)Lorg/apache/maven/execution/MavenExecutionResult;+98
j  org.apache.maven.DefaultMaven.execute(Lorg/apache/maven/execution/MavenExecutionRequest;)Lorg/apache/maven/execution/MavenExecutionResult;+2
j  org.apache.maven.cli.MavenCli.execute(Lorg/apache/maven/cli/CliRequest;)I+27
j  org.apache.maven.cli.MavenCli.doMain(Lorg/apache/maven/cli/CliRequest;)I+66
j  org.apache.maven.cli.MavenCli.main([Ljava/lang/String;Lorg/codehaus/plexus/classworlds/ClassWorld;)I+24
v  ~StubRoutines::call_stub
V  [jvm.dll+0x15c305]
V  [jvm.dll+0x2251ee]
V  [jvm.dll+0x15c39e]
V  [jvm.dll+0x168da8]
V  [jvm.dll+0x169013]
V  [jvm.dll+0x104fa3]
C  [java.dll+0x358b]
j  sun.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+100
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;+56
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
V  [jvm.dll+0x15c305]
V  [jvm.dll+0x2251ee]
V  [jvm.dll+0x15c39e]
V  [jvm.dll+0xdd9c7]
V  [jvm.dll+0xe5f5f]
C  [java.exe+0x2363]
C  [java.exe+0xb03f]
C  [java.exe+0xb0c9]
C  [KERNEL32.DLL+0x20419]
C  [ntdll.dll+0x6662d]
C  [ntdll.dll+0x665fd]
C  0x00000000

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  com.swoval.files.NativeDirectoryLister.openDir(Ljava/lang/String;)J+0
j  com.swoval.files.NativeDirectoryLister.fillResults(Ljava/lang/String;)Lcom/swoval/files/SimpleFileTreeView$ListResults;+42
j  com.swoval.files.NativeDirectoryLister.apply(Ljava/lang/String;Z)Lcom/swoval/files/SimpleFileTreeView$ListResults;+10
j  com.swoval.files.SimpleFileTreeView$Lister.impl(Ljava/nio/file/Path;I)V+22
j  com.swoval.files.SimpleFileTreeView$Lister.fillResults(Ljava/nio/file/Path;I)V+3
j  com.swoval.files.SimpleFileTreeView.list(Ljava/nio/file/Path;ILcom/swoval/functional/Filter;)Ljava/util/List;+34
j  sbt.nio.file.FileTreeView$DefaultFileTreeView$.list(Ljava/nio/file/Path;)Lscala/collection/Seq;+14
j  sbt.nio.file.FileTreeView$$anon$1.fillBuffer()V+199
j  sbt.nio.file.FileTreeView$$anon$1.<init>(Lscala/Function2;Ljava/util/LinkedList;Ljava/util/LinkedList;Ljava/util/HashSet;Lscala/Function1;Lsbt/nio/file/FileTreeView;Lscala/Function1;)V+77
j  sbt.nio.file.FileTreeView$.iterator(Lscala/collection/Traversable;Lsbt/nio/file/FileTreeView;Lscala/Function2;)Lscala/collection/Iterator;+132
j  sbt.nio.file.FileTreeView$.all(Lscala/collection/Traversable;Lsbt/nio/file/FileTreeView;Lscala/Function2;)Lscala/collection/Seq;+4
j  sbt.nio.file.FileTreeView$.all(Lscala/collection/Traversable;Lsbt/nio/file/FileTreeView;)Lscala/collection/Seq;+8
j  sbt.nio.file.FileTreeView$Ops$.list$extension0(Lsbt/nio/file/FileTreeView;Lsbt/nio/file/Glob;)Lscala/collection/Seq;+13
j  sbt.io.Path$.$anonfun$defaultChildHandler$3(Lsbt/nio/file/FileTreeView;Ljava/io/File;Lsbt/io/FileFilter;)Lscala/collection/Seq;+23
j  sbt.io.Path$$$Lambda$111.apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+12
j  sbt.io.FilterFiles.handleFile(Ljava/io/File;Lscala/collection/mutable/Set;)V+6
j  sbt.io.ChildPathFinder.$anonfun$addTo$2(Lsbt/io/ChildPathFinder;Lscala/collection/mutable/Set;Ljava/io/File;)V+3
j  sbt.io.ChildPathFinder.$anonfun$addTo$2$adapted(Lsbt/io/ChildPathFinder;Lscala/collection/mutable/Set;Ljava/io/File;)Ljava/lang/Object;+3
j  sbt.io.ChildPathFinder$$Lambda$113.apply(Ljava/lang/Object;)Ljava/lang/Object;+12
j  scala.collection.Iterator.foreach(Lscala/Function1;)V+16
j  scala.collection.Iterator.foreach$(Lscala/collection/Iterator;Lscala/Function1;)V+2
j  scala.collection.AbstractIterator.foreach(Lscala/Function1;)V+2
j  scala.collection.IterableLike.foreach(Lscala/Function1;)V+7
j  scala.collection.IterableLike.foreach$(Lscala/collection/IterableLike;Lscala/Function1;)V+2
j  scala.collection.AbstractIterable.foreach(Lscala/Function1;)V+2
j  sbt.io.ChildPathFinder.addTo(Lscala/collection/mutable/Set;)V+14
j  sbt.io.PathFinderImpl.get()Lscala/collection/Seq;+22
j  sbt.internal.inc.CompilerArguments.$anonfun$extClasspath$1(Ljava/lang/String;)Lscala/collection/Seq;+31
j  sbt.internal.inc.CompilerArguments$$Lambda$101.apply(Ljava/lang/Object;)Ljava/lang/Object;+4
j  scala.collection.immutable.List.flatMap(Lscala/Function1;Lscala/collection/generic/CanBuildFrom;)Ljava/lang/Object;+53
j  sbt.internal.inc.CompilerArguments.extClasspath()Lscala/collection/Seq;+34
j  sbt.internal.inc.MixedAnalyzingCompiler$.withBootclasspath(Lsbt/internal/inc/CompilerArguments;Lscala/collection/Seq;)Lscala/collection/Seq;+6
j  sbt.internal.inc.MixedAnalyzingCompiler$.searchClasspathAndLookup(Lsbt/internal/inc/CompileConfiguration;)Lscala/Tuple2;+111
j  sbt.internal.inc.MixedAnalyzingCompiler$.apply(Lsbt/internal/inc/CompileConfiguration;Lsbt/util/Logger;)Lsbt/internal/inc/MixedAnalyzingCompiler;+2
j  sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(Lsbt/internal/inc/IncrementalCompilerImpl;Lscala/Option;Lxsbti/compile/Output;Lxsbti/compile/ScalaCompiler;Lxsbti/compile/JavaCompiler;[Ljava/io/File;Lscala/collection/Seq;Lxsbti/compile/GlobalsCache;Lscala/Option;Lscala/collection/Seq;Lscala/collection/Seq;Lscala/Option;Lxsbti/compile/PerClasspathEntryLookup;Lxsbti/Reporter;Lxsbti/compile/CompileOrder;ZLxsbti/compile/IncOptions;Lscala/collection/immutable/List;Lscala/Option;Lxsbti/Logger;)Lxsbti/compile/CompileResult;+320
j  sbt.internal.inc.IncrementalCompilerImpl$$Lambda$43.apply()Ljava/lang/Object;+80
j  sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError([Ljava/io/File;Lxsbti/compile/Output;Lxsbti/Logger;Lscala/Function0;)Lxsbti/compile/CompileResult;+2
j  sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(Lxsbti/compile/ScalaCompiler;Lxsbti/compile/JavaCompiler;[Ljava/io/File;Lscala/collection/Seq;Lxsbti/compile/Output;Lxsbti/compile/GlobalsCache;Lscala/Option;Lscala/collection/Seq;Lscala/collection/Seq;Lscala/Option;Lscala/Option;Lxsbti/compile/PerClasspathEntryLookup;Lxsbti/Reporter;Lxsbti/compile/CompileOrder;ZLxsbti/compile/IncOptions;Lscala/Option;Lscala/collection/immutable/List;Lxsbti/Logger;)Lxsbti/compile/CompileResult;+47
j  sbt.internal.inc.IncrementalCompilerImpl.compile(Lxsbti/compile/Inputs;Lxsbti/Logger;)Lxsbti/compile/CompileResult;+228
j  sbt_inc.SbtIncrementalCompiler.compile(Ljava/util/List;Ljava/util/List;Ljava/io/File;Ljava/util/List;Ljava/util/List;)V+172
j  scala_maven.ScalaCompilerSupport.incrementalCompile(Ljava/util/List;Ljava/util/List;Ljava/io/File;Ljava/io/File;Z)I+136
j  scala_maven.ScalaCompilerSupport.compile(Ljava/util/List;Ljava/io/File;Ljava/io/File;Ljava/util/List;Z)I+27
j  scala_maven.ScalaCompilerSupport.doExecute()V+97
j  scala_maven.ScalaMojoSupport.execute()V+82
j  scala_maven.ScalaTestCompileMojo.execute()V+9
j  org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(Lorg/apache/maven/execution/MavenSession;Lorg/apache/maven/plugin/MojoExecution;)V+152
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+179
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+348
j  org.apache.maven.DefaultMaven.doExecute(Lorg/apache/maven/execution/MavenExecutionRequest;Lorg/apache/maven/execution/MavenSession;Lorg/apache/maven/execution/MavenExecutionResult;Lorg/eclipse/aether/DefaultRepositorySystemSession;)Lorg/apache/maven/execution/MavenExecutionResult;+425
j  org.apache.maven.DefaultMaven.doExecute(Lorg/apache/maven/execution/MavenExecutionRequest;)Lorg/apache/maven/execution/MavenExecutionResult;+98
j  org.apache.maven.DefaultMaven.execute(Lorg/apache/maven/execution/MavenExecutionRequest;)Lorg/apache/maven/execution/MavenExecutionResult;+2
j  org.apache.maven.cli.MavenCli.execute(Lorg/apache/maven/cli/CliRequest;)I+27
j  org.apache.maven.cli.MavenCli.doMain(Lorg/apache/maven/cli/CliRequest;)I+66
j  org.apache.maven.cli.MavenCli.main([Ljava/lang/String;Lorg/codehaus/plexus/classworlds/ClassWorld;)I+24
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;+100
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;+56
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

---------------  P R O C E S S  ---------------

Java Threads: ( => current thread )
  0x175a5000 JavaThread "scala-execution-context-global-18" daemon [_thread_blocked, id=10996, stack(0x18730000,0x18780000)]
  0x17f5e400 JavaThread "scala-execution-context-global-16" daemon [_thread_blocked, id=13032, stack(0x18600000,0x18650000)]
  0x166a7400 JavaThread "resolver-5" daemon [_thread_blocked, id=10464, stack(0x17110000,0x17160000)]
  0x166fa400 JavaThread "resolver-4" daemon [_thread_blocked, id=12912, stack(0x17080000,0x170d0000)]
  0x166f9000 JavaThread "resolver-3" daemon [_thread_blocked, id=9684, stack(0x16ff0000,0x17040000)]
  0x166f8800 JavaThread "resolver-2" daemon [_thread_blocked, id=12828, stack(0x16f60000,0x16fb0000)]
  0x166f8400 JavaThread "resolver-1" daemon [_thread_blocked, id=5176, stack(0x16ed0000,0x16f20000)]
  0x1533b000 JavaThread "Service Thread" daemon [_thread_blocked, id=9268, stack(0x15960000,0x159b0000)]
  0x15316400 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=2604, stack(0x158d0000,0x15920000)]
  0x15315000 JavaThread "Attach Listener" daemon [_thread_blocked, id=10544, stack(0x15840000,0x15890000)]
  0x1531fc00 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=10252, stack(0x157b0000,0x15800000)]
  0x1530c400 JavaThread "Finalizer" daemon [_thread_blocked, id=12600, stack(0x15610000,0x15660000)]
  0x152f6800 JavaThread "Reference Handler" daemon [_thread_blocked, id=4912, stack(0x15580000,0x155d0000)]
=>0x011ad000 JavaThread "main" [_thread_in_native, id=4172, stack(0x012d0000,0x01320000)]

Other Threads:
  0x152f0400 VMThread [stack: 0x154f0000,0x15540000] [id=12528]
  0x15347000 WatcherThread [stack: 0x159f0000,0x15a40000] [id=12488]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Heap:
 def new generation   total 9792K, used 9374K [0x04e00000, 0x058a0000, 0x0a350000)
  eden space 8704K,  98% used [0x04e00000, 0x0565f7a0, 0x05680000)
  from space 1088K,  73% used [0x05680000, 0x05748398, 0x05790000)
  to   space 1088K,   0% used [0x05790000, 0x05790000, 0x058a0000)
 tenured generation   total 21660K, used 14471K [0x0a350000, 0x0b877000, 0x14e00000)
   the space 21660K,  66% used [0x0a350000, 0x0b171da8, 0x0b171e00, 0x0b877000)
 Metaspace       used 17419K, capacity 17877K, committed 17920K, reserved 18816K

Card table byte_map: [0x14e00000,0x14e90000] byte_map_base: 0x14dd9000

Polling page: 0x01250000

CodeCache: size=32768Kb used=3163Kb max_used=3163Kb free=29604Kb
 bounds [0x02d40000, 0x03058000, 0x04d40000]
 total_blobs=1864 nmethods=1655 adapters=139
 compilation: enabled

Compilation events (10 events):
Event: 73.209 Thread 0x15316400 1682             sun.invoke.util.VerifyAccess::isTypeVisible (49 bytes)
Event: 73.209 Thread 0x15316400 nmethod 1682 0x03055988 code [0x03055a90, 0x03055bac]
Event: 73.211 Thread 0x15316400 1683             java.util.Arrays::fill (21 bytes)
Event: 73.211 Thread 0x15316400 nmethod 1683 0x03055d08 code [0x03055e00, 0x03055f00]
Event: 73.212 Thread 0x15316400 1684             jdk.internal.org.objectweb.asm.AnnotationWriter::put (109 bytes)
Event: 73.213 Thread 0x15316400 nmethod 1684 0x03055fc8 code [0x03056100, 0x030562a0]
Event: 73.222 Thread 0x15316400 1685             java.lang.invoke.LambdaForm$Name::replaceNames (174 bytes)
Event: 73.224 Thread 0x15316400 nmethod 1685 0x030564c8 code [0x03056610, 0x03056a18]
Event: 73.224 Thread 0x15316400 1686             jdk.internal.org.objectweb.asm.MethodWriter::visitInsn (106 bytes)
Event: 73.225 Thread 0x15316400 nmethod 1686 0x03056f08 code [0x03057030, 0x030571c4]

GC Heap History (10 events):
Event: 54.704 GC heap before
{Heap before GC invocations=62 (full 1):
 def new generation   total 6592K, used 6469K [0x04e00000, 0x05520000, 0x0a350000)
  eden space 5888K, 100% used [0x04e00000, 0x053c0000, 0x053c0000)
  from space 704K,  82% used [0x05470000, 0x055015a8, 0x05520000)
  to   space 704K,   0% used [0x053c0000, 0x053c0000, 0x05470000)
 tenured generation   total 14540K, used 14505K [0x0a350000, 0x0b183000, 0x14e00000)
   the space 14540K,  99% used [0x0a350000, 0x0b17a478, 0x0b17a600, 0x0b183000)
 Metaspace       used 11554K, capacity 11814K, committed 11904K, reserved 12672K
Event: 54.778 GC heap after
Heap after GC invocations=63 (full 2):
 def new generation   total 9792K, used 0K [0x04e00000, 0x058a0000, 0x0a350000)
  eden space 8704K,   0% used [0x04e00000, 0x04e00000, 0x05680000)
  from space 1088K,   0% used [0x05680000, 0x05680000, 0x05790000)
  to   space 1088K,   0% used [0x05790000, 0x05790000, 0x058a0000)
 tenured generation   total 21660K, used 12994K [0x0a350000, 0x0b877000, 0x14e00000)
   the space 21660K,  59% used [0x0a350000, 0x0b0009c0, 0x0b000a00, 0x0b877000)
 Metaspace       used 11545K, capacity 11799K, committed 11904K, reserved 12672K
}
Event: 55.355 GC heap before
{Heap before GC invocations=63 (full 2):
 def new generation   total 9792K, used 8704K [0x04e00000, 0x058a0000, 0x0a350000)
  eden space 8704K, 100% used [0x04e00000, 0x05680000, 0x05680000)
  from space 1088K,   0% used [0x05680000, 0x05680000, 0x05790000)
  to   space 1088K,   0% used [0x05790000, 0x05790000, 0x058a0000)
 tenured generation   total 21660K, used 12994K [0x0a350000, 0x0b877000, 0x14e00000)
   the space 21660K,  59% used [0x0a350000, 0x0b0009c0, 0x0b000a00, 0x0b877000)
 Metaspace       used 13007K, capacity 13306K, committed 13440K, reserved 13696K
Event: 55.357 GC heap after
Heap after GC invocations=64 (full 2):
 def new generation   total 9792K, used 1087K [0x04e00000, 0x058a0000, 0x0a350000)
  eden space 8704K,   0% used [0x04e00000, 0x04e00000, 0x05680000)
  from space 1088K,  99% used [0x05790000, 0x0589fff8, 0x058a0000)
  to   space 1088K,   0% used [0x05680000, 0x05680000, 0x05790000)
 tenured generation   total 21660K, used 13419K [0x0a350000, 0x0b877000, 0x14e00000)
   the space 21660K,  61% used [0x0a350000, 0x0b06ac58, 0x0b06ae00, 0x0b877000)
 Metaspace       used 13007K, capacity 13306K, committed 13440K, reserved 13696K
}
Event: 55.874 GC heap before
{Heap before GC invocations=64 (full 2):
 def new generation   total 9792K, used 9746K [0x04e00000, 0x058a0000, 0x0a350000)
  eden space 8704K,  99% used [0x04e00000, 0x056748f8, 0x05680000)
  from space 1088K,  99% used [0x05790000, 0x0589fff8, 0x058a0000)
  to   space 1088K,   0% used [0x05680000, 0x05680000, 0x05790000)
 tenured generation   total 21660K, used 13419K [0x0a350000, 0x0b877000, 0x14e00000)
   the space 21660K,  61% used [0x0a350000, 0x0b06ac58, 0x0b06ae00, 0x0b877000)
 Metaspace       used 14087K, capacity 14437K, committed 14464K, reserved 14720K
Event: 55.879 GC heap after
Heap after GC invocations=65 (full 2):
 def new generation   total 9792K, used 1087K [0x04e00000, 0x058a0000, 0x0a350000)
  eden space 8704K,   0% used [0x04e00000, 0x04e00000, 0x05680000)
  from space 1088K,  99% used [0x05680000, 0x0578fff8, 0x05790000)
  to   space 1088K,   0% used [0x05790000, 0x05790000, 0x058a0000)
 tenured generation   total 21660K, used 13688K [0x0a350000, 0x0b877000, 0x14e00000)
   the space 21660K,  63% used [0x0a350000, 0x0b0ae358, 0x0b0ae400, 0x0b877000)
 Metaspace       used 14087K, capacity 14437K, committed 14464K, reserved 14720K
}
Event: 56.719 GC heap before
{Heap before GC invocations=65 (full 2):
 def new generation   total 9792K, used 9791K [0x04e00000, 0x058a0000, 0x0a350000)
  eden space 8704K, 100% used [0x04e00000, 0x05680000, 0x05680000)
  from space 1088K,  99% used [0x05680000, 0x0578fff8, 0x05790000)
  to   space 1088K,   0% used [0x05790000, 0x05790000, 0x058a0000)
 tenured generation   total 21660K, used 13688K [0x0a350000, 0x0b877000, 0x14e00000)
   the space 21660K,  63% used [0x0a350000, 0x0b0ae358, 0x0b0ae400, 0x0b877000)
 Metaspace       used 15597K, capacity 15969K, committed 16000K, reserved 16768K
Event: 56.723 GC heap after
Heap after GC invocations=66 (full 2):
 def new generation   total 9792K, used 1087K [0x04e00000, 0x058a0000, 0x0a350000)
  eden space 8704K,   0% used [0x04e00000, 0x04e00000, 0x05680000)
  from space 1088K,  99% used [0x05790000, 0x0589fff8, 0x058a0000)
  to   space 1088K,   0% used [0x05680000, 0x05680000, 0x05790000)
 tenured generation   total 21660K, used 14178K [0x0a350000, 0x0b877000, 0x14e00000)
   the space 21660K,  65% used [0x0a350000, 0x0b128b88, 0x0b128c00, 0x0b877000)
 Metaspace       used 15597K, capacity 15969K, committed 16000K, reserved 16768K
}
Event: 59.942 GC heap before
{Heap before GC invocations=66 (full 2):
 def new generation   total 9792K, used 9791K [0x04e00000, 0x058a0000, 0x0a350000)
  eden space 8704K, 100% used [0x04e00000, 0x05680000, 0x05680000)
  from space 1088K,  99% used [0x05790000, 0x0589fff8, 0x058a0000)
  to   space 1088K,   0% used [0x05680000, 0x05680000, 0x05790000)
 tenured generation   total 21660K, used 14178K [0x0a350000, 0x0b877000, 0x14e00000)
   the space 21660K,  65% used [0x0a350000, 0x0b128b88, 0x0b128c00, 0x0b877000)
 Metaspace       used 16415K, capacity 16811K, committed 16896K, reserved 17792K
Event: 59.949 GC heap after
Heap after GC invocations=67 (full 2):
 def new generation   total 9792K, used 800K [0x04e00000, 0x058a0000, 0x0a350000)
  eden space 8704K,   0% used [0x04e00000, 0x04e00000, 0x05680000)
  from space 1088K,  73% used [0x05680000, 0x05748398, 0x05790000)
  to   space 1088K,   0% used [0x05790000, 0x05790000, 0x058a0000)
 tenured generation   total 21660K, used 14471K [0x0a350000, 0x0b877000, 0x14e00000)
   the space 21660K,  66% used [0x0a350000, 0x0b171da8, 0x0b171e00, 0x0b877000)
 Metaspace       used 16415K, capacity 16811K, committed 16896K, reserved 17792K
}

Deoptimization events (0 events):
No events

Classes redefined (0 events):
No events

Internal exceptions (10 events):
Event: 72.931 Thread 0x011ad000 Exception <a 'sun/nio/fs/WindowsException'> (0x05320ca8) thrown at [C:\re\workspace\8-2-build-windows-i586-cygwin\jdk8u211\12973\hotspot\src\share\vm\prims\jni.cpp, line 710]
Event: 73.077 Thread 0x17f5ec00 Exception <a 'sun/nio/fs/WindowsException'> (0x05343748) thrown at [C:\re\workspace\8-2-build-windows-i586-cygwin\jdk8u211\12973\hotspot\src\share\vm\prims\jni.cpp, line 710]
Event: 73.095 Thread 0x17f5ec00 Exception <a 'sun/nio/fs/WindowsException'> (0x05344138) thrown at [C:\re\workspace\8-2-build-windows-i586-cygwin\jdk8u211\12973\hotspot\src\share\vm\prims\jni.cpp, line 710]
Event: 73.096 Thread 0x011ad000 Exception <a 'java/lang/NoSuchMethodError': java.lang.Object.$anonfun$asScalaSetConverter$1(Lscala/collection/convert/DecorateAsScala;Ljava/util/Set;)Lscala/collection/mutable/Set;> (0x053e0af8) thrown at [C:\re\workspace\8-2-build-windows-i586-cygwin\jdk
Event: 73.144 Thread 0x011ad000 Exception <a 'java/lang/NoSuchMethodError': java.lang.Object.$anonfun$releaseVersion$1$adapted(Ljava/lang/String;)Ljava/lang/Object;> (0x054dfd20) thrown at [C:\re\workspace\8-2-build-windows-i586-cygwin\jdk8u211\12973\hotspot\src\share\vm\interpreter\lin
Event: 73.148 Thread 0x011ad000 Exception <a 'java/lang/NoSuchMethodError': java.lang.Object.$anonfun$releaseVersion$2(Ljava/lang/String;)Ljava/lang/String;> (0x054ea480) thrown at [C:\re\workspace\8-2-build-windows-i586-cygwin\jdk8u211\12973\hotspot\src\share\vm\interpreter\linkResolve
Event: 73.149 Thread 0x011ad000 Exception <a 'java/lang/NoSuchMethodError': java.lang.Object.$anonfun$developmentVersion$1$adapted(Ljava/lang/String;)Ljava/lang/Object;> (0x054ef0b0) thrown at [C:\re\workspace\8-2-build-windows-i586-cygwin\jdk8u211\12973\hotspot\src\share\vm\interpreter
Event: 73.150 Thread 0x011ad000 Exception <a 'java/lang/NoSuchMethodError': java.lang.Object.$anonfun$developmentVersion$2(Lscala/util/PropertiesTrait;Ljava/lang/String;)Lscala/Option;> (0x054f2ae8) thrown at [C:\re\workspace\8-2-build-windows-i586-cygwin\jdk8u211\12973\hotspot\src\shar
Event: 73.194 Thread 0x011ad000 Exception <a 'java/lang/NoSuchMethodError': java.lang.Object.$anonfun$prefix$1$adapted(Lsbt/nio/file/RelativeGlob$Matcher;)Ljava/lang/Object;> (0x05537320) thrown at [C:\re\workspace\8-2-build-windows-i586-cygwin\jdk8u211\12973\hotspot\src\share\vm\interp
Event: 73.196 Thread 0x011ad000 Exception <a 'java/lang/NoSuchMethodError': java.lang.Object.$anonfun$tail$1$adapted(Lsbt/nio/file/RelativeGlob$Matcher;)Ljava/lang/Object;> (0x0554da60) thrown at [C:\re\workspace\8-2-build-windows-i586-cygwin\jdk8u211\12973\hotspot\src\share\vm\interpre

Events (10 events):
Event: 73.221 loading class com/swoval/functional/Filter
Event: 73.221 loading class com/swoval/functional/Filter done
Event: 73.229 loading class com/swoval/files/SimpleFileTreeView$Lister
Event: 73.229 loading class com/swoval/files/SimpleFileTreeView$Lister done
Event: 73.229 loading class com/swoval/files/SimpleFileTreeView$Lister
Event: 73.229 loading class com/swoval/files/SimpleFileTreeView$Lister done
Event: 73.232 loading class com/swoval/files/SimpleFileTreeView$ListResults
Event: 73.232 loading class com/swoval/files/SimpleFileTreeView$ListResults done
Event: 73.232 loading class com/swoval/files/SimpleFileTreeView$ListResults
Event: 73.232 loading class com/swoval/files/SimpleFileTreeView$ListResults done

Dynamic libraries:
0x00010000 - 0x00043000     C:\Program Files (x86)\Common Files\Oracle\Java\javapath\java.exe
0x776f0000 - 0x7788c000     C:\WINDOWS\SYSTEM32\ntdll.dll
0x75850000 - 0x75930000     C:\WINDOWS\System32\KERNEL32.DLL
0x76e10000 - 0x7700a000     C:\WINDOWS\System32\KERNELBASE.dll
0x71840000 - 0x718dc000     C:\WINDOWS\SYSTEM32\apphelp.dll
0x75190000 - 0x7520e000     C:\WINDOWS\System32\ADVAPI32.dll
0x76210000 - 0x762d0000     C:\WINDOWS\System32\msvcrt.dll
0x76630000 - 0x766a9000     C:\WINDOWS\System32\sechost.dll
0x77020000 - 0x770df000     C:\WINDOWS\System32\RPCRT4.dll
0x74d60000 - 0x74d80000     C:\WINDOWS\System32\SspiCli.dll
0x74d50000 - 0x74d5a000     C:\WINDOWS\System32\CRYPTBASE.dll
0x75c50000 - 0x75cb2000     C:\WINDOWS\System32\bcryptPrimitives.dll
0x75270000 - 0x75409000     C:\WINDOWS\System32\USER32.dll
0x76c70000 - 0x76c87000     C:\WINDOWS\System32\win32u.dll
0x767a0000 - 0x767c3000     C:\WINDOWS\System32\GDI32.dll
0x759c0000 - 0x75b26000     C:\WINDOWS\System32\gdi32full.dll
0x75410000 - 0x75490000     C:\WINDOWS\System32\msvcp_win.dll
0x762d0000 - 0x763f2000     C:\WINDOWS\System32\ucrtbase.dll
0x72af0000 - 0x72cff000     C:\WINDOWS\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.17763.557_none_4d63763f1b9a84a5\COMCTL32.dll
0x74db0000 - 0x75028000     C:\WINDOWS\System32\combase.dll
0x74d80000 - 0x74da5000     C:\WINDOWS\System32\IMM32.DLL
0x55df0000 - 0x55eaf000     C:\Program Files (x86)\Java\jre1.8.0_211\bin\msvcr100.dll
0x55480000 - 0x55855000     C:\Program Files (x86)\Java\jre1.8.0_211\bin\client\jvm.dll
0x75840000 - 0x75846000     C:\WINDOWS\System32\PSAPI.DLL
0x727a0000 - 0x727c4000     C:\WINDOWS\SYSTEM32\WINMM.dll
0x71650000 - 0x71658000     C:\WINDOWS\SYSTEM32\WSOCK32.dll
0x75490000 - 0x754ef000     C:\WINDOWS\System32\WS2_32.dll
0x6bdc0000 - 0x6bde3000     C:\WINDOWS\SYSTEM32\WINMMBASE.dll
0x754f0000 - 0x7552b000     C:\WINDOWS\System32\cfgmgr32.dll
0x749f0000 - 0x749f8000     C:\WINDOWS\SYSTEM32\VERSION.dll
0x62540000 - 0x6254c000     C:\Program Files (x86)\Java\jre1.8.0_211\bin\verify.dll
0x5ace0000 - 0x5ad01000     C:\Program Files (x86)\Java\jre1.8.0_211\bin\java.dll
0x5df80000 - 0x5df94000     C:\Program Files (x86)\Java\jre1.8.0_211\bin\zip.dll
0x75cc0000 - 0x7620e000     C:\WINDOWS\System32\SHELL32.dll
0x766b0000 - 0x76739000     C:\WINDOWS\System32\shcore.dll
0x770e0000 - 0x776dc000     C:\WINDOWS\System32\windows.storage.dll
0x75530000 - 0x7554c000     C:\WINDOWS\System32\profapi.dll
0x76d90000 - 0x76de4000     C:\WINDOWS\System32\powrprof.dll
0x76c20000 - 0x76c64000     C:\WINDOWS\System32\shlwapi.dll
0x75040000 - 0x7504f000     C:\WINDOWS\System32\kernel.appcore.dll
0x76df0000 - 0x76e02000     C:\WINDOWS\System32\cryptsp.dll
0x5acd0000 - 0x5acd9000     C:\Users\???\Downloads\apache-maven-3.6.1-bin\apache-maven-3.6.1\lib\jansi-native\windows32\jansi.dll
0x5acb0000 - 0x5acc5000     C:\Program Files (x86)\Java\jre1.8.0_211\bin\net.dll
0x744a0000 - 0x7465c000     C:\WINDOWS\SYSTEM32\urlmon.dll
0x74270000 - 0x7449d000     C:\WINDOWS\SYSTEM32\iertutil.dll
0x74170000 - 0x741c2000     C:\WINDOWS\system32\mswsock.dll
0x5aca0000 - 0x5acaf000     C:\Program Files (x86)\Java\jre1.8.0_211\bin\nio.dll
0x74710000 - 0x7473f000     C:\WINDOWS\system32\rsaenh.dll
0x76610000 - 0x76629000     C:\WINDOWS\System32\bcrypt.dll
0x749b0000 - 0x749d3000     C:\WINDOWS\SYSTEM32\USERENV.dll
0x741d0000 - 0x74203000     C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL
0x75030000 - 0x75037000     C:\WINDOWS\System32\NSI.dll
0x73ea0000 - 0x73eb3000     C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL
0x73e80000 - 0x73e94000     C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL
0x740e0000 - 0x74170000     C:\WINDOWS\SYSTEM32\DNSAPI.dll
0x55b70000 - 0x55ba8000     C:\Users\???\AppData\Local\Temp\jna-1931653107\jna8184132681713905121.dll
0x65100000 - 0x65106000     C:\Users\???\AppData\Local\Temp\swoval-jni\2442361184047409786-swoval-files0.dll
0x6d080000 - 0x6d20f000     C:\WINDOWS\SYSTEM32\dbghelp.dll

VM Arguments:
jvm_args: -Dclassworlds.conf=C:\Users\???\Downloads\apache-maven-3.6.1-bin\apache-maven-3.6.1\bin\..\bin\m2.conf -Dmaven.home=C:\Users\???\Downloads\apache-maven-3.6.1-bin\apache-maven-3.6.1\bin\.. -Dlibrary.jansi.path=C:\Users\???\Downloads\apache-maven-3.6.1-bin\apache-maven-3.6.1\bin\..\lib\jansi-native -Dmaven.multiModuleProjectDirectory=C:\gatling-maven-plugin-demo-master\gatling-maven-plugin-demo-master 
java_command: org.codehaus.plexus.classworlds.launcher.Launcher install
java_class_path (initial): C:\Users\???\Downloads\apache-maven-3.6.1-bin\apache-maven-3.6.1\bin\..\boot\plexus-classworlds-2.6.0.jar
Launcher Type: SUN_STANDARD

Environment Variables:
PATH=C:\Python27\;C:\Python27\Scripts;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\Git\cmd;C:\Program Files\nodejs\;C:\ProgramData\chocolatey\bin;C:\Users\???\AppData\Local\Microsoft\WindowsApps;;C:\Program Files\JetBrains\IntelliJ IDEA 2019.1.3\bin;;C:\Users\???\AppData\Roaming\npm;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.1.3\bin;
USERNAME=???
OS=Windows_NT
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 69 Stepping 1, GenuineIntel

---------------  S Y S T E M  ---------------

OS: Windows 10.0 , 64 bit Build 17763 (10.0.17763.475)

CPU:total 4 (initial active 4) (2 cores per cpu, 2 threads per core) family 6 model 69 stepping 1, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2

Memory: 4k page, physical 3874620k(367196k free), swap 10428220k(4020732k free)

vm_info: Java HotSpot(TM) Client VM (25.211-b12) for windows-x86 JRE (1.8.0_211-b12), built on Apr  1 2019 20:53:53 by "java_re" with MS VC++ 10.0 (VS2010)

time: Fri Jun 28 11:15:43 2019
timezone: GMT Daylight Time
elapsed time: 73 seconds (0d 0h 1m 13s)

expectation

sbt and zinc should work fine on 32 bits JVM.

notes

dwijnand commented 5 years ago

This is using sbt 1.3.0-RC2, right? Not sbt 1.2.8?

slandelle commented 5 years ago

@dwijnand Hard too tell which milestone as there are lots of different versions for the modules:

[INFO] +- org.scala-sbt:zinc_2.12:jar:1.3.0-M7:compile
[INFO] |  +- org.scala-lang:scala-library:jar:2.12.8:compile
[INFO] |  +- org.scala-sbt:zinc-core_2.12:jar:1.3.0-M7:compile
[INFO] |  |  +- org.scala-sbt:zinc-apiinfo_2.12:jar:1.3.0-M7:compile
[INFO] |  |  |  \- org.scala-sbt:compiler-bridge_2.12:jar:1.3.0-M7:compile
[INFO] |  |  +- org.scala-sbt:zinc-classpath_2.12:jar:1.3.0-M7:compile
[INFO] |  |  |  \- org.scala-lang:scala-compiler:jar:2.12.8:compile
[INFO] |  |  +- org.scala-sbt:compiler-interface:jar:1.3.0-M7:compile
[INFO] |  |  |  \- org.scala-sbt:util-interface:jar:1.3.0-M6:compile
[INFO] |  |  +- com.trueaccord.scalapb:scalapb-runtime_2.12:jar:0.6.0:compile
[INFO] |  |  |  +- com.trueaccord.lenses:lenses_2.12:jar:0.4.12:compile
[INFO] |  |  |  \- com.lihaoyi:fastparse_2.12:jar:0.4.2:compile
[INFO] |  |  |     +- com.lihaoyi:fastparse-utils_2.12:jar:0.4.2:compile
[INFO] |  |  |     \- com.lihaoyi:sourcecode_2.12:jar:0.1.3:compile
[INFO] |  |  +- org.scala-sbt:io_2.12:jar:1.3.0-M10:compile
[INFO] |  |  |  +- com.swoval:file-tree-views:jar:2.1.1:compile
[INFO] |  |  |  +- net.java.dev.jna:jna:jar:4.5.0:compile
[INFO] |  |  |  \- net.java.dev.jna:jna-platform:jar:4.5.0:compile
[INFO] |  |  +- org.scala-sbt:util-logging_2.12:jar:1.3.0-M6:compile
[INFO] |  |  |  +- com.eed3si9n:sjson-new-core_2.12:jar:0.8.2:compile
[INFO] |  |  |  +- jline:jline:jar:2.14.6:compile
[INFO] |  |  |  +- org.apache.logging.log4j:log4j-api:jar:2.11.2:compile
[INFO] |  |  |  +- org.apache.logging.log4j:log4j-core:jar:2.11.2:compile
[INFO] |  |  |  +- com.lmax:disruptor:jar:3.4.2:compile
[INFO] |  |  |  +- com.eed3si9n:sjson-new-scalajson_2.12:jar:0.8.2:compile
[INFO] |  |  |  |  +- com.eed3si9n:shaded-scalajson_2.12:jar:1.0.0-M4:compile
[INFO] |  |  |  |  \- org.spire-math:jawn-parser_2.12:jar:0.10.4:compile
[INFO] |  |  |  \- org.scala-lang:scala-reflect:jar:2.12.8:compile
[INFO] |  |  \- org.scala-sbt:util-relation_2.12:jar:1.3.0-M6:compile
[INFO] |  +- org.scala-sbt:zinc-persist_2.12:jar:1.3.0-M7:compile
[INFO] |  |  \- org.scala-sbt:sbinary_2.12:jar:0.4.4:compile
[INFO] |  |     \- org.scala-lang.modules:scala-xml_2.12:jar:1.0.5:compile
[INFO] |  +- org.scala-sbt:zinc-compile-core_2.12:jar:1.3.0-M7:compile
[INFO] |  |  +- org.scala-sbt:launcher-interface:jar:1.0.0:compile
[INFO] |  |  +- org.scala-lang.modules:scala-parser-combinators_2.12:jar:1.1.2:compile
[INFO] |  |  \- org.scala-sbt:util-control_2.12:jar:1.3.0-M6:compile
[INFO] |  +- org.scala-sbt:zinc-classfile_2.12:jar:1.3.0-M7:compile
[INFO] |  \- com.google.protobuf:protobuf-java:jar:3.7.0:compile
slandelle commented 5 years ago

1.3.0-M6 maybe?

dwijnand commented 5 years ago

Ok, you're not using sbt at all, you're using Zinc.

slandelle commented 5 years ago

@dwijnand Yes, but the crash happens in a dependency that's being pulled transitively from sbt modules.

dwijnand commented 5 years ago

Yes, you're right. From your zinc usage, to sbt/io, and then swoval.

slandelle commented 5 years ago

From https://www.lightbend.com/blog/sbt-1.3.0-release#toc_4:

faster recursive directory listing -- sbt internally uses a native library, swoval, that provides a jni interface to native os apis that allow for faster recursive directory listing than the implementations in the java standard library.

Having a look at the native libs shipped in the file-tree-views jar, it ships binaries for i686 and x86_64. Could it be that the swoval-files0.dll that was loaded was the one for x86_64 instead of i686?

eatkins commented 5 years ago

@slandelle thank you for the report. It does look like the wrong DLL was loaded. I will look into fixing that upstream. In the meantime, there is a workaround (its omission from the release notes was an oversight): you can run whatever program with the -Dswoval.directory.lister=com.swoval.files.NioDirectoryLister system property and the native code should not be used.

Could you please elaborate why sbt needs such native library in the first place? Listing directories, really?

Please keep your comments respectful. The second sentence was unnecessary and I found it insulting. Every change that we have made to sbt has been made to benefit users. But we are fallible and bugs inevitably arise.

The reason for the native library for directory listing is that it can be much faster than the jvm built ins. I ran this test just now in a project that contains 5000 source files:

scala> def time[R](iterations: Int)(f: => R): Unit = {
     |   val now = System.nanoTime
     |   (1 to iterations) foreach (_ => f)
     |   val elapsed = System.nanoTime - now
     |   println(s"Took ${elapsed / 1.0e6 / iterations} ms per iteration")
     |   }
time: [R](iterations: Int)(f: => R)Unit

scala> time(10)(file("").getCanonicalFile.allPaths.get)
Took 64.975042 ms per iteration                                                       

scala> time(10)(file("").getCanonicalFile.allPaths.get)                          
Took 44.3427132 ms per iteration    

Then I ran again with sbt -Dswoval.directory.lister=com.swoval.files.NioDirectoryLister

scala> time(10)(file("").getCanonicalFile.allPaths.get)
Took 143.69171690000002 ms per iteration

scala> time(10)(file("").getCanonicalFile.allPaths.get)
Took 126.3960485 ms per iteration

That manifests as sbt 1.3.0 starting compilation 60 to 80ms faster than sbt 1.2.8 in this project. There are many small performance improvements like this in sbt 1.3.0 that cumulatively add up to something more significant.

slandelle commented 5 years ago

@eatkins Sorry if I sounded rude, it wasn't my intent. If I did, I apologize.

My intent was to express my surprise: I would expect a native lib binding to be used for compression, encryption, or kernel metrics, but definitively not in a build tool, even less experiencing a JVM crash there (and the JetBrains folks neither as IDEA doesn't report that the compilation process crashed and just says the class could not be found).

Now, I do have some concerns:

  1. Testing

Native bugs aren't forgiving at all: JVM crashes, memory or fd leaks. The portability the JVM provides is lost, so library must be implemented and tested for a very wide range of OS and configurations. There's a chance sbt is going to stop working on configuration it worked so far. 32 bits? ARM? Solaris? AIX? Alpine? Prod configurations where tmp dir is mounted with noexec?

  1. Maintenance

From the Github stats, your library doesn't look trivial (+800 commits). Developers come and go. From the commit log, the truck factor seems to be 1. What will happen if you stop working on it? Will someone take over, or will the library die like Sigar?

  1. Performance

I'm not sure I get your numbers. How much gain is experienced on a full sbt build? Do you have some numbers from the Scala community builds? If we're talking only 80ms on boot time, is the change worth the risks?

eatkins commented 5 years ago

@slandelle I won't question your intention. If you had said, "I am surprised that a native library is used for this," then I would not have been offended. I accept the apology.

I appreciate your concerns and will address them below. I also want to reiterate that you found a bug, not a fundamental design flaw. We expect bugs during the RC cycle. The bug that you found is actually that the 32 bit library provided for windows didn't work. It wasn't that sbt tried to load the wrong dll. It loaded the right dll and it was broken. I made a mistake by including a binary in the swoval library that I hadn't tested. I had tested 32 bit and 64 bit binaries on linux and just assumed that if cross compilation worked in linux, it would also work on windows. That was wrong. I've removed the 32 bit windows binary from swoval which should resolve your issue since swoval falls back to a nio based implementation if no binary is available for the target platform.

Just so this is clear, we need to provide a native library for file system monitoring on osx because the built in jvm watch service doesn't work on most jdks on osx. Like it or not, swoval is implemented using jni, not jna, and this is not a design decision that we can back out of for 1.3.0. For this reason, sbt has to be able to dynamically load the swoval native library on osx. It is optional for windows and linux. Note that the swoval native library has been a part of sbt since 1.1.5 on osx and there haven't been any issues reported with it. I'd estimate that at least 90% of the work I put into the swoval library had to do with file watching, not directory listing. The directory listing optimizations are dead simple but require the use of posix (or windows) apis that aren't directly available in the jvm.

Now, I do have some concerns: Testing Native bugs aren't forgiving at all: JVM crashes, memory or fd leaks. The portability the JVM provides is lost, so library must be implemented and tested for a very wide range of OS and configurations.

You are absolutely right that native failures are problematic and can easily crash the jvm. Resource leaks can happen just as easily in the jvm so I'm less swayed by that concern.

The directory listing code is roughly 30 lines of code (excluding comments and blank lines). There is no way to implement fast directory listing without jni or jna (and jna comes with its own maintenance issues relative to jni).

There's a chance sbt is going to stop working on configuration it worked so far. 32 bits? ARM? Solaris? AIX? Alpine?

Breaking configurations that previously worked is a fact of life in software development but is something that we try to avoid whether or not we are using native libraries. That concern seems separate from the issue at hand.

I agree with you that we shouldn't distribute untested native binaries. We can't test every linux flavor, but the native directory lister exclusively uses posix apis and makes very similar native calls to the jdk.

I'd be surprised if more than 5% of sbt users are using anything other than 64 bit mac, windows or linux. I am perfectly fine with native directory listing not working on those other platforms as long as the fallback mechanism works. I have no evidence that it doesn't. If, say, after release an ARM user reports an issue, then we can fix it in a patch release. FWIW, intellij only supports the three major 64 bit platforms even though it's written primarily in java. That's not to say we shouldn't support other platforms, but just to illustrate how dominant those platforms are.

Prod configurations where tmp dir is mounted with noexec?

Are you assuming that swoval always extracts the native libraries into /tmp? By default, the swoval library does in fact extract the native library to the /tmp/swoval-jni directory, but that directory is configurable via a system property. sbt sets it to ~/.sbt/1.0/swoval-jni. At any rate, the noexec case is effectively the same as there being no library provided for the target platform because System.load throws an UnsatisfiedLinkError either way.

2) Maintenance From the Github stats, your library doesn't look trivial (+800 commits). Developers come and go. From the commit log, the truck factor seems to be 1. What will happen if you stop working on it? Will someone take over, or will the library die like Sigar?

The plan is to in-source swoval after the sbt 1.3.0 release. We would repackage all of its code under sbt.io so that it will no longer be a dependency. It shouldn't take more than a few days, but is lower priority than releasing sbt 1.3.0. For what it's worth, the swoval dependent code in sbt is very limited. I made a point of redefining all of the swoval apis used by sbt in the sbt.io or sbt.internal.io packages. The swoval library is just used by delegation for implementation. With the exception of the mac native file watching code, the swoval implementations could relatively easily be removed in the future if I was no longer contributing to the project.

3) Performance I'm not sure I get your numbers. How much gain is experienced on a full sbt build? Do you have some numbers from the Scala community builds?

The switch to the native directory lister is to benefit interactive sessions in which many tasks are run. In particular, many of the performance optimizations for 1.3.0 were specifically made with the ~ command in mind (e.g. ~test). The native directory listing will have little benefit on sbt boot time and would not likely be measurable in the community build.

Whenever a user types compile or a build is triggered by a file event in a ~ command, sbt must gather all of the relevant source files for the task. The benchmarks I posted in the previous comment were trying to demonstrate the performance difference between listing a directory with many files with and without the native directory lister. sbt cannot begin compilation until it has gathered all of the source files, so if I save 40ms there, then every time the command runs, it is 40ms faster. Whether or not this is noticeable depends on how many files are in the build, how sensitive you are and how long everything else takes.

I do not have benchmarks that test all of the specific sbt 1.3.0 performance optimizations in isolation, but I have generated some end to end benchmarks scala-build-watch-performance that incorporate all of the optimizations.

is the change worth the risks?

There are valid arguments in either direction. My opinion though is that, yes, it is. I am not personally convinced that the risks are all that high in spite of your unfortunate encounter with the win32 bug.

You raised a number of good points. Most of them though were a part of my thinking while implementing these changes. Because of my own paranoia, I carefully designed all of this functionality so that it could both be manipulated at runtime (e.g. -Dswoval.directory.lister=com.swoval.files.NioDirectoryLister) or easily re-implemented if issues arise. As a result of this discussion, I am going to add a few more safeguards to swoval to try and ensure that the native library is only used on explicitly supported platforms.

slandelle commented 5 years ago

I realize that in the issue, the OS was 64 bits:

OS: Windows 10.0 , 64 bit Build 17763 (10.0.17763.475)

I interpreted "Client VM" as a 32 bits JVM but I might be wrong (could be just the JVM heuristics, but I can't check as I don't have such set up at hand):

CPU:total 4 (initial active 4) (2 cores per cpu, 2 threads per core) family 6 model 69 stepping 1, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2

Memory: 4k page, physical 3874620k(367196k free), swap 10428220k(4020732k free)

vm_info: Java HotSpot(TM) Client VM (25.211-b12) for windows-x86 JRE (1.8.0_211-b12), built on Apr  1 2019 20:53:53 by "java_re" with MS VC++ 10.0 (VS2010)

I'd be surprised if more than 5% of sbt users are using anything other than 64 bit mac, windows or linux.

Gatling uses Zinc and reaches far beyond the Scala developers. Some of our users can't afford a modern machine and are stuck with 32bits.

Then, there's also the case of ops who want to stick to 32bits for their CI machines because they don't want large pointers memory overhead, or whatever other reason.

And people who install a 32 bits JVM on a 64 bits host.

At any rate, the noexec case is effectively the same as there being no library provided for the target platform because System.load throws an UnsatisfiedLinkError either way.

Do you means that even binary is available for the target platform, if binary can't be loaded, sbt won't throw but will silently fallback?

The native directory listing will have little benefit on sbt boot time and would not likely be measurable in the community build. Whenever a user types compile or a build is triggered by a file event in a ~ command, sbt must gather all of the relevant source files for the task.

It looks like I should go with -Dswoval.directory.lister=com.swoval.files.NioDirectoryLister for both scala-maven-plugin and Gatling then, as compilation is only one shot. Please advertise if the System prop and its value is changed when you internalize and change package.

Thanks for help!

eatkins commented 5 years ago

Fixed in https://github.com/sbt/io/pull/247.

eatkins commented 5 years ago

@slandelle

Do you means that even binary is available for the target platform, if binary can't be loaded, sbt won't throw but will silently fallback?

There are no more 32 bit binaries bundled in swoval and it will fall back to nio based apis when run on a 32 bit platform. You should hopefully not need to set the system property with sbt 1.3.0-RC3/1.3.0.

slandelle commented 5 years ago

@eatkins Thanks a lot! Do you have any ETA?

eed3si9n commented 5 years ago

This coming Monday, hopefully.

slandelle commented 5 years ago

Awesome ! We have a release in about one week so we should be able to ship it, thanks!

eed3si9n commented 5 years ago

@slandelle https://github.com/sbt/zinc/releases/tag/v1.3.0-M8 is out.

slandelle commented 5 years ago

@eed3si9n Thanks for pinging. I've upgraded Gatling's master and PR is waiting to be merged on scala-maven-plugin.

Side question: Do you have plans for cross building sbt and zinc against Scala 2.13?