[ https://issues.apache.org/jira/browse/MRESOLVER-189?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17378015#comment-17378015 ]
Michael Osipov commented on MRESOLVER-189: ------------------------------------------ What would be extremely helpful is that if a build hangs procude a thread dump of the process. This helped me to narrow down the issues in Redisson. As soon as we have data, we can go over to the Redisson devs. > Using semaphore-redisson followed by rwlock-redisson on many parallel build > of the same project triggers redisson error > ----------------------------------------------------------------------------------------------------------------------- > > Key: MRESOLVER-189 > URL: https://issues.apache.org/jira/browse/MRESOLVER-189 > Project: Maven Resolver > Issue Type: Bug > Reporter: Jacques-Etienne Beaudet > Priority: Major > > While testing performance for in > [https://github.com/apache/maven-resolver/pull/68,] I ran into an error using > rwlock-redisson. Here are the steps to reproduce (hopefully it's easily > reproducible on your end) and the logs of the run (trace enabled on > org.eclipse.aether) at the end : > * `redis-cli flushall` to get a clean slate > * Clone a repository with a fair size > * Make 4 copy of this repository (I ran my test with 4 copies, but 2 might > be enough?) > * `mvn clean` on all repositories > * run a parallel build with semaphore-redis (`mvn compile -T1C > -Daether.syncContext.named.factory=semaphore-redisson`) on all repositories > * `mvn clean` all repositories > * run a parallel build with rwlock-redis (`mvn compile -T1C > -Daether.syncContext.named.factory=rwlock-redisson`) on all repositories > By doing this, I ran into this and the only way out was running a `redis-cli > flushall`. > > The way I ran my parallel build was really dumb and simple, something like > that : > > {code:java} > cd repo1 ; mvn clean > /tmp/log1 2>&1 & cd ../repo2 ; mvn clean > /tmp/log2 > 2>&1 & cd ../repo3 ; mvn clean > /tmp/log3 2>&1 & cd ../repo4 ; mvn clean > > /tmp/log4 2>&1 & cd .. ; > {code} > > > Let me know if you can't reproduce, I might be able to provide you with > traces logs of the semaphore build as well. > {code:java} > [INFO] Redisson 3.15.6 > [INFO] 1 connections initialized for localhost/127.0.0.1:6379 > [INFO] 24 connections initialized for localhost/127.0.0.1:6379 > [TRACE] Created Redisson client with id '42934566-3759-4f73-9fbc-a2d0a8368e1f' > [DEBUG] Using manager EnhancedLocalRepositoryManager with priority 10.0 for > /root/.m2/repository > [INFO] Scanning for projects... > [TRACE] Need 1 write lock(s) for > [artifact:com.coveo:coveo-cloud-base-service-pom:40.123.0] > [TRACE] Acquiring write lock for > 'artifact:com.coveo:coveo-cloud-base-service-pom:40.123.0' > [ERROR] Internal error: org.redisson.client.RedisException: ERR Error running > script (call to f_6306ba3bf1f563b284bed52d305fce615c6664d9): @user_script:1: > WRONGTYPE Operation against a key holding the wrong kind of value. channel: > [id: 0x69ea1187, L:/127.0.0.1:60800 - R:localhost/127.0.0.1:6379] command: > (EVAL), params: [local mode = redis.call('hget', KEYS[1], 'mode'); if (mode > == false) then redis.call('hset', KEYS[1]..., 1, > maven:resolver:artifact:com.coveo:coveo-cloud-base-service-pom:40.123.0, > 30000, 42934566-3759-4f73-9fbc-a2d0a8368e1f:1:write] -> [Help 1] > org.apache.maven.InternalErrorException: Internal error: > org.redisson.client.RedisException: ERR Error running script (call to > f_6306ba3bf1f563b284bed52d305fce615c6664d9): @user_script:1: WRONGTYPE > Operation against a key holding the wrong kind of value. channel: [id: > 0x69ea1187, L:/127.0.0.1:60800 - R:localhost/127.0.0.1:6379] command: (EVAL), > params: [local mode = redis.call('hget', KEYS[1], 'mode'); if (mode == false) > then redis.call('hset', KEYS[1]..., 1, > maven:resolver:artifact:com.coveo:coveo-cloud-base-service-pom:40.123.0, > 30000, 42934566-3759-4f73-9fbc-a2d0a8368e1f:1:write] > at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:120) > at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957) > at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289) > at org.apache.maven.cli.MavenCli.main (MavenCli.java:193) > at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) > at jdk.internal.reflect.NativeMethodAccessorImpl.invoke > (NativeMethodAccessorImpl.java:62) > at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke > (DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke (Method.java:566) > 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) > Caused by: org.redisson.client.RedisException: ERR Error running script (call > to f_6306ba3bf1f563b284bed52d305fce615c6664d9): @user_script:1: WRONGTYPE > Operation against a key holding the wrong kind of value. channel: [id: > 0x69ea1187, L:/127.0.0.1:60800 - R:localhost/127.0.0.1:6379] command: (EVAL), > params: [local mode = redis.call('hget', KEYS[1], 'mode'); if (mode == false) > then redis.call('hset', KEYS[1]..., 1, > maven:resolver:artifact:com.coveo:coveo-cloud-base-service-pom:40.123.0, > 30000, 42934566-3759-4f73-9fbc-a2d0a8368e1f:1:write] > at org.redisson.client.handler.CommandDecoder.decode > (CommandDecoder.java:345) > at org.redisson.client.handler.CommandDecoder.decodeCommandBatch > (CommandDecoder.java:246) > at org.redisson.client.handler.CommandDecoder.decodeCommand > (CommandDecoder.java:188) > at org.redisson.client.handler.CommandDecoder.decode > (CommandDecoder.java:116) > at org.redisson.client.handler.CommandDecoder.decode > (CommandDecoder.java:101) > at > io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection > (ByteToMessageDecoder.java:507) > at io.netty.handler.codec.ReplayingDecoder.callDecode > (ReplayingDecoder.java:366) > at io.netty.handler.codec.ByteToMessageDecoder.channelRead > (ByteToMessageDecoder.java:276) > at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead > (AbstractChannelHandlerContext.java:379) > at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead > (AbstractChannelHandlerContext.java:365) > at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead > (AbstractChannelHandlerContext.java:357) > at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead > (DefaultChannelPipeline.java:1410) > at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead > (AbstractChannelHandlerContext.java:379) > at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead > (AbstractChannelHandlerContext.java:365) > at io.netty.channel.DefaultChannelPipeline.fireChannelRead > (DefaultChannelPipeline.java:919) > at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read > (AbstractNioByteChannel.java:166) > at io.netty.channel.nio.NioEventLoop.processSelectedKey > (NioEventLoop.java:719) > at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized > (NioEventLoop.java:655) > at io.netty.channel.nio.NioEventLoop.processSelectedKeys > (NioEventLoop.java:581) > at io.netty.channel.nio.NioEventLoop.run (NioEventLoop.java:493) > at io.netty.util.concurrent.SingleThreadEventExecutor$4.run > (SingleThreadEventExecutor.java:989) > at io.netty.util.internal.ThreadExecutorMap$2.run > (ThreadExecutorMap.java:74) > at io.netty.util.concurrent.FastThreadLocalRunnable.run > (FastThreadLocalRunnable.java:30) > at java.lang.Thread.run (Thread.java:829) > [ERROR] > [ERROR] To see the full stack trace of the errors, re-run Maven with the -e > switch. > [ERROR] Re-run Maven using the -X switch to enable full debug logging. > [ERROR] > [ERROR] For more information about the errors and possible solutions, please > read the following articles: > [ERROR] [Help 1] > http://cwiki.apache.org/confluence/display/MAVEN/InternalErrorException > [TRACE] Shutting down Redisson client with id > '42934566-3759-4f73-9fbc-a2d0a8368e1f' > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)