[ https://issues.apache.org/jira/browse/MNG-7705?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17698672#comment-17698672 ]
Michael Osipov commented on MNG-7705: ------------------------------------- Did more testing, as it turns out, my home machine with {noformat} $ mount | grep /tmp /dev/ada0p4 on /tmp (ufs, local, soft-updates) {noformat} reliably fails with {{file-lock}}. First the good story, Redisson works reliably and hasn't failed in tens of builds: {noformat} mosipov@bsd1srv:/tmp/maven-troubleshooting-MNG-7705 (main %=) $ cat args main branch4 branch5 mosipov@bsd1srv:/tmp/maven-troubleshooting-MNG-7705 (main %=) $ echo $MAVEN_ARGS -Daether.syncContext.named.factory=rwlock-redisson -Daether.syncContext.named.nameMapper=discriminating -Daether.syncContext.named.time=120 mosipov@bsd1srv:/tmp/maven-troubleshooting-MNG-7705 (main %=) $ echo $MAVEN_OPTS -Dorg.slf4j.simpleLogger.showThreadName=true -Dorg.slf4j.simpleLogger.showDateTime=true -Dorg.slf4j.simpleLogger.log.org.eclipse.aether=trace mosipov@bsd1srv:/tmp/maven-troubleshooting-MNG-7705 (main %=) $ rm -rf /tmp/MNG-7705-repo/ ; xargs -P 0 -I ^ /tmp/apache-maven-3.9.1-SNAPSHOT-redisson/bin/mvn -V dependency:sources dependency:resolve -Dclassifier=javadoc -Dmaven.repo.local=/tmp/MNG-7705-repo -l ^.out -f ^ < args ; grep BUILD *.out branch4.out:99131 [main] [INFO] BUILD SUCCESS branch5.out:99341 [main] [INFO] BUILD SUCCESS main.out:99396 [main] [INFO] BUILD SUCCESS {noformat} Now let's do with {{file-lock}}: {noformat} mosipov@bsd1srv:/tmp/maven-troubleshooting-MNG-7705 (main %=) $ export MAVEN_ARGS="-Daether.syncContext.named.factory=file-lock -Daether.syncContext.named.nameMapper=file-gav -Daether.syncContext.named.time=30" mosipov@bsd1srv:/tmp/maven-troubleshooting-MNG-7705 (main %=) $ rm -rf /tmp/MNG-7705-repo/ ; xargs -P 0 -I ^ /tmp/apache-maven-3.9.1-SNAPSHOT-redisson/bin/mvn -V dependency:sources dependency:resolve -Dclassifier=javadoc -Dmaven.repo.local=/tmp/MNG-7705-repo -l ^.out -f ^ < args ; grep BUILD *.out branch4.out:17199 [main] [INFO] BUILD FAILURE branch5.out:113607 [main] [INFO] BUILD SUCCESS main.out:113791 [main] [INFO] BUILD SUCCESS {noformat} No here is the thing, when you increase to 120 seconds of wait time the build won't fail. So my assumption is that either the wait for the file lock or the file lock itself is broken. Upshot: file lock IS broken. No doubt. In ANY case, a proper exception should be thrown that the lock could not be acquired which I had with Redisson and 30 s: {noformat} $ rm -rf /tmp/MNG-7705-repo/ ; xargs -P 0 -I ^ /tmp/apache-maven-3.9.1-SNAPSHOT-redisson/bin/mvn -V dependency:sources dependency:resolve -Dclassifier=javadoc -Dmaven.repo.local=/tmp/MNG-7705-repo -l ^.out -f ^ < args ; grep BUILD *.out branch4.out:91093 [main] [INFO] BUILD SUCCESS branch5.out:40002 [main] [INFO] BUILD FAILURE main.out:91219 [main] [INFO] BUILD SUCCESS ... 2447 9996 [main] [TRACE] Need 1 write lock(s) for [511a210267530dd0913bd7b515b6ad1cd2018a2c:artifact:org.apache.commons:commons-math3:3.6.1] 2448 9997 [main] [TRACE] Acquiring write lock for '511a210267530dd0913bd7b515b6ad1cd2018a2c:artifact:org.apache.commons:commons-math3:3.6.1' 2449 40001 [main] [TRACE] Failed to acquire write lock for '511a210267530dd0913bd7b515b6ad1cd2018a2c:artifact:org.apache.commons:commons-math3:3.6.1' 2450 40002 [main] [INFO] ------------------------------------------------------------------------ 2451 40002 [main] [INFO] BUILD FAILURE 2452 40002 [main] [INFO] ------------------------------------------------------------------------ 2453 40002 [main] [INFO] Total time: 37.918 s 2454 40002 [main] [INFO] Finished at: 2023-03-10T01:56:42+01:00 2455 40002 [main] [INFO] ------------------------------------------------------------------------ 2456 40003 [main] [ERROR] Could not acquire write lock for '511a210267530dd0913bd7b515b6ad1cd2018a2c:artifact:org.apache.commons:commons-math3:3.6.1' {noformat} So 30 s passed and no lock acquired. I can provide all out files, if necessary. [~sellersj], I recommend to move to Redisson for now. [~cstamas], what now? > Sporadic failures on multiple builds sharing the same local repo when writing > the .lastUpdated file > --------------------------------------------------------------------------------------------------- > > Key: MNG-7705 > URL: https://issues.apache.org/jira/browse/MNG-7705 > Project: Maven > Issue Type: Bug > Affects Versions: 3.9.0 > Environment: Apache Maven 3.9.0 > (9b58d2bad23a66be161c4664ef21ce219c2c8584) > Maven home: /data00/bamboo/maven/maven-next > Java version: 1.8.0_362, vendor: Red Hat, Inc., runtime: > /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b09-2.el8_7.x86_64/jre > Default locale: en_CA, platform encoding: ISO-8859-1 > OS name: "linux", version: "4.18.0-193.el8.x86_64", arch: "amd64", family: > "unix" > Reporter: Jim Sellers > Priority: Minor > Attachments: 2023-02-28_failure.zip, MNG-7705-2023-02-27.zip, > MNG-7705-2023-03-07.zip, MNG-7705.zip, MNG-7705_strace_2023-02-27.zip, > apache-maven-3.9.1-SNAPSHOT-bin.tar-1.gz, failed_plan-377290782-JOB1-15.zip, > maven-resolver-util-1.9.6-SNAPSHOT.jar, xaa-1.xz, xab-1.xz, xac-1.xz, xad-1.xz > > > On a CI server, we have multiple builds running on the same host and sharing > the same repo. > While testing 3.9.0, I started to see a NIO exception for the > {{.lastUpdated}} file. This has worked fine for years, all the way up to > 3.8.7. > If you re-run the build, it will work. I think that it's just a collision > between the different processes. > {code:title=example command} > mvn --batch-mode dependency:sources dependency:resolve -Dclassifier=javadoc > # this uses dependency:3.5.0:sources > {code} > {code:title=stracktrace} > [WARNING] Failed to write tracking file > '/home/bamboo/.m2/repository/io/smallrye/config/smallrye-config/2.3.0/smallrye-config-2.3.0-javadoc.jar.lastUpdated' > java.nio.file.NoSuchFileException: > /home/bamboo/.m2/repository/io/smallrye/config/smallrye-config/2.3.0/smallrye-config-2.3.0-javadoc.jar.lastUpdated > at sun.nio.fs.UnixException.translateToIOException > (UnixException.java:86) > at sun.nio.fs.UnixException.rethrowAsIOException > (UnixException.java:102) > at sun.nio.fs.UnixException.rethrowAsIOException > (UnixException.java:107) > at sun.nio.fs.UnixFileSystemProvider.newByteChannel > (UnixFileSystemProvider.java:214) > at java.nio.file.Files.newByteChannel (Files.java:361) > at java.nio.file.Files.newByteChannel (Files.java:407) > at java.nio.file.spi.FileSystemProvider.newInputStream > (FileSystemProvider.java:384) > at java.nio.file.Files.newInputStream (Files.java:152) > at org.eclipse.aether.internal.impl.DefaultTrackingFileManager.update > (DefaultTrackingFileManager.java:90) > at org.eclipse.aether.internal.impl.DefaultUpdateCheckManager.write > (DefaultUpdateCheckManager.java:604) > at > org.eclipse.aether.internal.impl.DefaultUpdateCheckManager.touchArtifact > (DefaultUpdateCheckManager.java:539) > at > org.eclipse.aether.internal.impl.DefaultArtifactResolver.evaluateDownloads > (DefaultArtifactResolver.java:701) > at > org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads > (DefaultArtifactResolver.java:592) > at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve > (DefaultArtifactResolver.java:478) > at > org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts > (DefaultArtifactResolver.java:278) > at > org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact > (DefaultArtifactResolver.java:255) > at > org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact > (DefaultRepositorySystem.java:296) > at > org.apache.maven.shared.transfer.artifact.resolve.internal.Maven31ArtifactResolver.resolveArtifact > (Maven31ArtifactResolver.java:97) > at > org.apache.maven.shared.transfer.artifact.resolve.internal.Maven31ArtifactResolver.resolveArtifact > (Maven31ArtifactResolver.java:78) > at > org.apache.maven.shared.transfer.artifact.resolve.internal.DefaultArtifactResolver.resolveArtifact > (DefaultArtifactResolver.java:70) > at > org.apache.maven.plugins.dependency.fromDependencies.AbstractDependencyFilterMojo.resolve > (AbstractDependencyFilterMojo.java:464) > at > org.apache.maven.plugins.dependency.fromDependencies.AbstractDependencyFilterMojo.getClassifierTranslatedDependencies > (AbstractDependencyFilterMojo.java:408) > at > org.apache.maven.plugins.dependency.fromDependencies.AbstractDependencyFilterMojo.getDependencySets > (AbstractDependencyFilterMojo.java:340) > at > org.apache.maven.plugins.dependency.resolvers.ResolveDependenciesMojo.doExecute > (ResolveDependenciesMojo.java:103) > at > org.apache.maven.plugins.dependency.resolvers.ResolveDependencySourcesMojo.doExecute > (ResolveDependencySourcesMojo.java:52) > at org.apache.maven.plugins.dependency.AbstractDependencyMojo.execute > (AbstractDependencyMojo.java:159) > at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo > (DefaultBuildPluginManager.java:126) > at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 > (MojoExecutor.java:342) > at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute > (MojoExecutor.java:330) > at org.apache.maven.lifecycle.internal.MojoExecutor.execute > (MojoExecutor.java:213) > at org.apache.maven.lifecycle.internal.MojoExecutor.execute > (MojoExecutor.java:175) > at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 > (MojoExecutor.java:76) > at org.apache.maven.lifecycle.internal.MojoExecutor$1.run > (MojoExecutor.java:163) > at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute > (DefaultMojosExecutionStrategy.java:39) > at org.apache.maven.lifecycle.internal.MojoExecutor.execute > (MojoExecutor.java:160) > at > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject > (LifecycleModuleBuilder.java:105) > at > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject > (LifecycleModuleBuilder.java:73) > at > org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build > (SingleThreadedBuilder.java:53) > at org.apache.maven.lifecycle.internal.LifecycleStarter.execute > (LifecycleStarter.java:118) > at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:260) > at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:172) > at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:100) > at org.apache.maven.cli.MavenCli.execute (MavenCli.java:821) > at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:270) > at org.apache.maven.cli.MavenCli.main (MavenCli.java:192) > at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke > (NativeMethodAccessorImpl.java:62) > at sun.reflect.DelegatingMethodAccessorImpl.invoke > (DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke (Method.java:498) > at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced > (Launcher.java:282) > at org.codehaus.plexus.classworlds.launcher.Launcher.launch > (Launcher.java:225) > at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode > (Launcher.java:406) > at org.codehaus.plexus.classworlds.launcher.Launcher.main > (Launcher.java:347) > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)