Ok, this is def a timeout on lock: https://github.com/apache/maven-resolver/blob/e439b343d8d94bdcc82965a3d4f2584c31c319c0/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/synccontext/named/NamedLockFactoryAdapter.java#L157-L158
Pls increase the timeout. T On Thu, Mar 23, 2023 at 9:32 AM Dan Tran <dant...@gmail.com> wrote: > this is not a single threaded buld > > stack trace: > > *9:35:34* [ERROR] Could not acquire write lock for > 'artifact:ch.qos.logback:logback-classic:1.2.10'*09:35:34* > java.lang.IllegalStateException: Could not acquire write lock for > 'artifact:ch.qos.logback:logback-classic:1.2.10'*09:35:34* at > > org.eclipse.aether.internal.impl.synccontext.named.NamedLockFactoryAdapter$AdaptedLockSyncContext.acquire > (NamedLockFactoryAdapter.java:158)*09:35:34* at > org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts > (DefaultArtifactResolver.java:259)*09:35:34* at > > org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies > (DefaultRepositorySystem.java:352)*09:35:34* at > > org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.resolveInternal > (DefaultPluginDependenciesResolver.java:212)*09:35:34* at > org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.resolve > (DefaultPluginDependenciesResolver.java:158)*09:35:34* at > > org.apache.maven.plugin.internal.DefaultMavenPluginManager.createPluginRealm > (DefaultMavenPluginManager.java:372)*09:35:34* at > > org.apache.maven.plugin.internal.DefaultMavenPluginManager.lambda$setupPluginRealm$1 > (DefaultMavenPluginManager.java:335)*09:35:34* at > org.apache.maven.plugin.DefaultPluginRealmCache.lambda$get$0 > (DefaultPluginRealmCache.java:156)*09:35:34* at > java.util.concurrent.ConcurrentHashMap.computeIfAbsent > (ConcurrentHashMap.java:1737)*09:35:34* at > org.apache.maven.plugin.DefaultPluginRealmCache.get > (DefaultPluginRealmCache.java:154)*09:35:34* at > org.apache.maven.plugin.internal.DefaultMavenPluginManager.setupPluginRealm > (DefaultMavenPluginManager.java:334)*09:35:34* at > org.apache.maven.plugin.DefaultBuildPluginManager.getPluginRealm > (DefaultBuildPluginManager.java:205)*09:35:34* at > org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo > (DefaultBuildPluginManager.java:98)*09:35:34* at > org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 > (MojoExecutor.java:342)*09:35:34* at > org.apache.maven.lifecycle.internal.MojoExecutor.doExecute > (MojoExecutor.java:330)*09:35:34* at > org.apache.maven.lifecycle.internal.MojoExecutor.execute > (MojoExecutor.java:213)*09:35:34* at > org.apache.maven.lifecycle.internal.MojoExecutor.execute > (MojoExecutor.java:175)*09:35:34* at > org.apache.maven.lifecycle.internal.MojoExecutor.access$000 > (MojoExecutor.java:76)*09:35:34* at > org.apache.maven.lifecycle.internal.MojoExecutor$1.run > (MojoExecutor.java:163)*09:35:34* at > org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute > (DefaultMojosExecutionStrategy.java:39)*09:35:34* at > org.apache.maven.lifecycle.internal.MojoExecutor.execute > (MojoExecutor.java:160)*09:35:34* at > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject > (LifecycleModuleBuilder.java:105)*09:35:34* at > > org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call > (MultiThreadedBuilder.java:193)*09:35:34* at > > org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call > (MultiThreadedBuilder.java:180)*09:35:34* at > java.util.concurrent.FutureTask.run (FutureTask.java:264)*09:35:34* > at java.util.concurrent.Executors$RunnableAdapter.call > (Executors.java:515)*09:35:34* at > java.util.concurrent.FutureTask.run (FutureTask.java:264)*09:35:34* > at java.util.concurrent.ThreadPoolExecutor.runWorker > (ThreadPoolExecutor.java:1128)*09:35:34* at > java.util.concurrent.ThreadPoolExecutor$Worker.run > (ThreadPoolExecutor.java:628)*09:35:34* at java.lang.Thread.run > (Thread.java:829)*09:35:34* [ERROR] java.lang.IllegalStateException: > Could not acquire write lock for > 'artifact:ch.qos.logback:logback-classic:1.2.10'*09:35:34* > java.util.concurrent.ExecutionException: > java.lang.IllegalStateException: Could not acquire write lock for > 'artifact:ch.qos.logback:logback-classic:1.2.10'*09:35:34* at > java.util.concurrent.FutureTask.report (FutureTask.java:122)*09:35:34* > at java.util.concurrent.FutureTask.get > (FutureTask.java:191)*09:35:34* at > > org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder.multiThreadedProjectTaskSegmentBuild > (MultiThreadedBuilder.java:140)*09:35:34* at > > org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder.build > (MultiThreadedBuilder.java:101)*09:35:34* at > org.apache.maven.lifecycle.internal.LifecycleStarter.execute > (LifecycleStarter.java:118)*09:35:34* at > org.apache.maven.DefaultMaven.doExecute > (DefaultMaven.java:261)*09:35:34* at > org.apache.maven.DefaultMaven.doExecute > (DefaultMaven.java:173)*09:35:34* at > org.apache.maven.DefaultMaven.execute > (DefaultMaven.java:101)*09:35:34* at > org.apache.maven.cli.MavenCli.execute (MavenCli.java:827)*09:35:34* > at org.apache.maven.cli.MavenCli.doMain > (MavenCli.java:272)*09:35:34* at > org.apache.maven.cli.MavenCli.main (MavenCli.java:195)*09:35:34* > at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native > Method)*09:35:34* at > jdk.internal.reflect.NativeMethodAccessorImpl.invoke > (NativeMethodAccessorImpl.java:62)*09:35:34* at > jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke > (DelegatingMethodAccessorImpl.java:43)*09:35:34* at > java.lang.reflect.Method.invoke (Method.java:566)*09:35:34* at > org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced > (Launcher.java:282)*09:35:34* at > org.codehaus.plexus.classworlds.launcher.Launcher.launch > (Launcher.java:225)*09:35:34* at > org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode > (Launcher.java:406)*09:35:34* at > org.codehaus.plexus.classworlds.launcher.Launcher.main > (Launcher.java:347)*09:35:34* at > jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native > Method)*09:35:34* at > jdk.internal.reflect.NativeMethodAccessorImpl.invoke > (NativeMethodAccessorImpl.java:62)*09:35:34* at > jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke > (DelegatingMethodAccessorImpl.java:43)*09:35:34* at > java.lang.reflect.Method.invoke (Method.java:566)*09:35:34* at > org.apache.maven.wrapper.BootstrapMainStarter.start > (BootstrapMainStarter.java:52)*09:35:34* at > org.apache.maven.wrapper.WrapperExecutor.execute > (WrapperExecutor.java:161)*09:35:34* at > org.apache.maven.wrapper.MavenWrapperMain.main > (MavenWrapperMain.java:73) > > > thanks > > > -D > > > On Wed, Mar 22, 2023 at 3:23 PM Tamás Cservenák <ta...@cservenak.net> > wrote: > > > Interesting. > > > > You did not provide any stack, so I just guessed "timeout". For > > increasing/decreasing "wait time" (def is 30 sec), see here: > > https://maven.apache.org/resolver/configuration.html > > Look for "aether.syncContext.named.time" and > > "aether.syncContext.named.time.unit". > > Also good to look at: > > https://maven.apache.org/resolver/maven-resolver-named-locks/index.html > > > > And finally, there are redisson and hazelcast provided locks: > > > > > https://maven.apache.org/resolver/maven-resolver-named-locks-redisson/index.html > > > > Also, "So I guess it is using the default file-lock?" -- Maven 3.9.1 does > > NOT use file locking by default, so unless the docker image you use, or > > whatever sets it up.... > > It would be good to see some stack and what locking is in use. > > > > Note: if it turns out you don't use file locking, but the default (Maven > > 3.9.1 by default uses in-jvm "rwlock-local" (backed by ReadWriteLock), > then > > really just increase time.... > > > > How about concurrency, I guess this is not a single threaded build? > > > > T > > > > PS: Is late here, my response to your response will probably come in my > > morning > > > > On Wed, Mar 22, 2023 at 11:08 PM Dan Tran <dant...@gmail.com> wrote: > > > > > Thanks for the quick response > > > > > > This is a simple switch from 3.8.7 to 3.9.1 ( did not see this issue > when > > > tested with 3.9.0). So I guess it is using the default file-lock? > > > > > > The build runs inside a docker container on Jenkins agent with no > > antivirus > > > checker. The build always starts from scratch > > > > > > artifact:ch.qos.logback:logback-classic:1.2.10 is common artifact > > > used by all components > > > > > > > > > How do I increase timeout? > > > > > > > > > Thanks > > > > > > > > > -D > > > > > > > > > On Wed, Mar 22, 2023 at 11:44 AM Tamás Cservenák <ta...@cservenak.net> > > > wrote: > > > > > > > Howdy Dan, > > > > > > > > You did not mention what locking implementation you use, what params > > etc? > > > > file-lock? redisson? something else? > > > > > > > > At the same time, it is rather strange that you mention "at the same > > > > artifact" thing... from here and below I will assume you use file > > locks: > > > > - can you do something like lsof on Linux? Meaning, can you ensure > > > nothing > > > > (some app, IDE or antivirus) is keeping the file open? > > > > - can you tell a bit more about that artifact? Is it installed one? > > Maybe > > > > from the current build? A dependency? In case of HUGE build and > COMMON > > > > artifact (ie. slf4j-api) that is used in almost all modules may be > > "hot", > > > > maybe try to increase lock timeout? Or even radically lessen (that > > should > > > > make problem occur more often perhaps) > > > > > > > > HTH > > > > Tamas > > > > > > > > On Wed, Mar 22, 2023 at 7:32 PM Dan Tran <dant...@gmail.com> wrote: > > > > > > > > > Hi > > > > > > > > > > My large 400+ modules build facing the mentioned locking issue > > > > consistently > > > > > at the same artifact > > > > > > > > > > artifact:ch.qos.logback:logback-classic:1.2.10 > > > > > > > > > > > > > > > any one see this issue at your build? > > > > > > > > > > > > > > > Thanks > > > > > > > > > > > > > > > -D > > > > > > > > > > > > > > > dont see same issue at smaller build > > > > > > > > > > > > > > >