[
https://issues.apache.org/jira/browse/MNG-7705?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17697502#comment-17697502
]
Jim Sellers commented on MNG-7705:
----------------------------------
I'll do a search around to try to figure out why the file lock might not be
working. It's very strange. I did reproduce the original issue on my old mac
through, so I don't think that the issue is exclusively with this RHEL vm.
Here is what I have.
{code:title=the vm}
cat /etc/redhat-release && java -version
Red Hat Enterprise Linux release 8.7 (Ootpa)
openjdk version "1.8.0_362"
OpenJDK Runtime Environment (build 1.8.0_362-b09)
OpenJDK 64-Bit Server VM (build 25.362-b09, mixed mode)
{code}
{code:title=command run}
strace -f -tt -o out-1 java -cp . demo.TestNioLock perform /tmp/my-lock 15000
{code}
{code:title=logs around the similar part}
1033373 10:34:51.704179 openat(AT_FDCWD, "/tmp/my-lock", O_RDWR|O_CREAT, 0666)
= 8
1033373 10:34:51.704285 fstat(8, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
1033373 10:34:51.704356 fcntl(8, F_SETLK, {l_type=F_WRLCK, l_whence=SEEK_SET,
l_start=0, l_len=1}) = 0
1033373 10:34:51.704450 write(1, "1033372@hpvsdev268 > WON", 24) = 24
1033373 10:34:51.704513 write(1, "\n", 1) = 1
# ... a lot of these lines
1033388 10:35:03.215731 futex(0x7f0834137d78, FUTEX_WAIT_PRIVATE, 0, {tv_sec=0,
tv_nsec=49999495}) = -1 ETIMEDOUT (Connection timed out)
1033388 10:35:03.265923 futex(0x7f0834137d28, FUTEX_WAKE_PRIVATE, 1) = 0
1033388 10:35:03.265981 futex(0x7f0834137d78, FUTEX_WAIT_PRIVATE, 0, {tv_sec=0,
tv_nsec=49999498}) = -1 ETIMEDOUT (Connection timed out)
1033388 10:35:03.318878 futex(0x7f0834137d28, FUTEX_WAKE_PRIVATE, 1) = 0
1033388 10:35:03.318937 futex(0x7f0834137d78, FUTEX_WAIT_PRIVATE, 0, {tv_sec=0,
tv_nsec=49999395}) = -1 ETIMEDOUT (Connection timed out)
1033388 10:35:03.369074 futex(0x7f0834137d28, FUTEX_WAKE_PRIVATE, 1) = 0
# ...
1033380 10:35:06.654916 <... futex resumed>) = -1 ETIMEDOUT (Connection timed
out)
1033380 10:35:06.654976 futex(0x7f08340db128, FUTEX_WAKE_PRIVATE, 1) = 0
1033380 10:35:06.655046 futex(0x7f08340db178, FUTEX_WAIT_PRIVATE, 0, {tv_sec=0,
tv_nsec=999999671} <unfinished ...>
1033388 10:35:06.698991 <... futex resumed>) = -1 ETIMEDOUT (Connection timed
out)
1033388 10:35:06.699049 futex(0x7f0834137d28, FUTEX_WAKE_PRIVATE, 1) = 0
1033388 10:35:06.699098 futex(0x7f0834137d78, FUTEX_WAIT_PRIVATE, 0, {tv_sec=0,
tv_nsec=25999660} <unfinished ...>
1033373 10:35:06.704960 <... futex resumed>) = -1 ETIMEDOUT (Connection timed
out)
1033373 10:35:06.705350 futex(0x7f0834003d28, FUTEX_WAKE_PRIVATE, 1) = 0
1033373 10:35:06.705523 fcntl(8, F_SETLK, {l_type=F_UNLCK, l_whence=SEEK_SET,
l_start=0, l_len=1}) = 0
1033373 10:35:06.705835 close(8) = 0
1033373 10:35:06.705922 fcntl(6, F_SETLK, {l_type=F_UNLCK, l_whence=SEEK_SET,
l_start=0, l_len=1}) = 0
1033373 10:35:06.706023 close(6) = 0
{code}
> 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.gz, maven-resolver-util-1.9.6-SNAPSHOT.jar
>
>
> 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)