[ 
https://issues.apache.org/jira/browse/CASSANDRA-20805?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18011219#comment-18011219
 ] 

Maxim Muzafarov edited comment on CASSANDRA-20805 at 7/31/25 3:34 PM:
----------------------------------------------------------------------

I've fixed the simulator cli, but got another issue that is not related to the 
picocli transion:
{code:java}
Exception: java.lang.IllegalStateException thrown from the 
UncaughtExceptionHandler in thread "RMI Scheduler(3996)"
    at 
org.apache.cassandra.simulator.systems.InterceptorOfGlobalMethods$IfInterceptibleThread.nanoTime(InterceptorOfGlobalMethods.java:360)
    at 
org.apache.cassandra.simulator.systems.InterceptorOfSystemMethods$Global.nanoTime(InterceptorOfSystemMethods.java:213)
    at 
java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2112)
    at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)
    at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
    at 
java.base/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
    at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
    at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:829)
java.lang.IllegalStateException: Using time is not allowed during simulation: 
main
    at 
org.apache.cassandra.simulator.systems.SimulatedTime$Delegating.check(SimulatedTime.java:153)
    at 
org.apache.cassandra.simulator.systems.SimulatedTime$Delegating.nanoTime(SimulatedTime.java:156)
    at org.apache.cassandra.utils.Clock$Global.nanoTime(Clock.java:100)
    at org.apache.cassandra.utils.NoSpamLogger.error(NoSpamLogger.java:264)
    at 
org.apache.cassandra.simulator.SimulationRunner$Run.run(SimulationRunner.java:407)
    at 
org.apache.cassandra.simulator.paxos.PaxosSimulationRunner$Run.run(PaxosSimulationRunner.java:77)
    at 
org.apache.cassandra.simulator.paxos.PaxosSimulationRunner$Run.run(PaxosSimulationRunner.java:47)
    at 
org.apache.cassandra.simulator.SimulationRunner$BasicCommand.run(SimulationRunner.java:394)
    at 
org.apache.cassandra.simulator.paxos.PaxosSimulationRunner$Run.run(PaxosSimulationRunner.java:47)
    at 
org.apache.cassandra.simulator.SimulationRunner$BasicCommand.run(SimulationRunner.java:359)
    at 
org.apache.cassandra.simulator.paxos.PaxosSimulationRunner$Run.run(PaxosSimulationRunner.java:47)
    at picocli.CommandLine.executeUserObject(CommandLine.java:2045)
    at picocli.CommandLine.access$1500(CommandLine.java:148)
    at 
picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2469)
    at picocli.CommandLine$RunLast.handle(CommandLine.java:2461)
    at picocli.CommandLine$RunLast.handle(CommandLine.java:2423)
    at 
picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2277)
    at picocli.CommandLine$RunLast.execute(CommandLine.java:2425)
    at picocli.CommandLine.execute(CommandLine.java:2174)
    at 
org.apache.cassandra.simulator.paxos.PaxosSimulationRunner.main(PaxosSimulationRunner.java:213)
    at 
org.apache.cassandra.simulator.test.ShortPaxosSimulationTest.simulationTest(ShortPaxosSimulationTest.java:100)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
Method)
    at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
    at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
    at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
    at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
    at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
    at 
com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
    at 
com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)
    at 
com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)
    at 
com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)
    at 
com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232)
    at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)
 {code}
The set of permitted thread names must be also updated, to include "RMI 
Scheduler":
{code:java}
private static final Pattern PERMITTED_TIME_THREADS = 
Pattern.compile("(logback|SimulationLiveness|Reconcile)[-:][0-9]+");
 {code}


was (Author: mmuzaf):
I've fixed the simulator cli, but got another issue that is not related to the 
picocli transion:


{code:java}
Exception: java.lang.IllegalStateException thrown from the 
UncaughtExceptionHandler in thread "RMI Scheduler(3996)"
    at 
org.apache.cassandra.simulator.systems.InterceptorOfGlobalMethods$IfInterceptibleThread.nanoTime(InterceptorOfGlobalMethods.java:360)
    at 
org.apache.cassandra.simulator.systems.InterceptorOfSystemMethods$Global.nanoTime(InterceptorOfSystemMethods.java:213)
    at 
java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2112)
    at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)
    at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
    at 
java.base/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
    at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
    at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:829)
java.lang.IllegalStateException: Using time is not allowed during simulation: 
main
    at 
org.apache.cassandra.simulator.systems.SimulatedTime$Delegating.check(SimulatedTime.java:153)
    at 
org.apache.cassandra.simulator.systems.SimulatedTime$Delegating.nanoTime(SimulatedTime.java:156)
    at org.apache.cassandra.utils.Clock$Global.nanoTime(Clock.java:100)
    at org.apache.cassandra.utils.NoSpamLogger.error(NoSpamLogger.java:264)
    at 
org.apache.cassandra.simulator.SimulationRunner$Run.run(SimulationRunner.java:407)
    at 
org.apache.cassandra.simulator.paxos.PaxosSimulationRunner$Run.run(PaxosSimulationRunner.java:77)
    at 
org.apache.cassandra.simulator.paxos.PaxosSimulationRunner$Run.run(PaxosSimulationRunner.java:47)
    at 
org.apache.cassandra.simulator.SimulationRunner$BasicCommand.run(SimulationRunner.java:394)
    at 
org.apache.cassandra.simulator.paxos.PaxosSimulationRunner$Run.run(PaxosSimulationRunner.java:47)
    at 
org.apache.cassandra.simulator.SimulationRunner$BasicCommand.run(SimulationRunner.java:359)
    at 
org.apache.cassandra.simulator.paxos.PaxosSimulationRunner$Run.run(PaxosSimulationRunner.java:47)
    at picocli.CommandLine.executeUserObject(CommandLine.java:2045)
    at picocli.CommandLine.access$1500(CommandLine.java:148)
    at 
picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2469)
    at picocli.CommandLine$RunLast.handle(CommandLine.java:2461)
    at picocli.CommandLine$RunLast.handle(CommandLine.java:2423)
    at 
picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2277)
    at picocli.CommandLine$RunLast.execute(CommandLine.java:2425)
    at picocli.CommandLine.execute(CommandLine.java:2174)
    at 
org.apache.cassandra.simulator.paxos.PaxosSimulationRunner.main(PaxosSimulationRunner.java:213)
    at 
org.apache.cassandra.simulator.test.ShortPaxosSimulationTest.simulationTest(ShortPaxosSimulationTest.java:100)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
Method)
    at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
    at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
    at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
    at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
    at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
    at 
com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
    at 
com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)
    at 
com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)
    at 
com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)
    at 
com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232)
    at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)
 {code}

The set of permitted thread names must be also updated, to include "RMI 
Scheduler" and "main":


{code:java}
private static final Pattern PERMITTED_TIME_THREADS = 
Pattern.compile("(logback|SimulationLiveness|Reconcile)[-:][0-9]+");
 {code}

> ShortPaxosSimulationTest exits immediatly without executing a command
> ---------------------------------------------------------------------
>
>                 Key: CASSANDRA-20805
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-20805
>             Project: Apache Cassandra
>          Issue Type: Bug
>          Components: Test/unit
>            Reporter: Maxim Muzafarov
>            Assignee: Maxim Muzafarov
>            Priority: Normal
>             Fix For: 5.x
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Test prints help with output. However, the specified command must be run.
> {code:java}
> JVM Args: 
> "-Dstorage-config=/Users/maxim.muzafarov/IdeaProjects/cassandra/test/conf" 
> "-Djava.awt.headless=true" 
> "-javaagent:/Users/maxim.muzafarov/IdeaProjects/cassandra/lib/jamm-0.4.0.jar" 
> "-ea" "-Dcassandra.debugrefcount=true" "-Xss384k" 
> "-XX:SoftRefLRUPolicyMSPerMB=0" "-XX:ActiveProcessorCount=2" 
> "-XX:HeapDumpPath=build/test" 
> "-Dcassandra.test.driver.connection_timeout_ms=10000" 
> "-Dcassandra.test.driver.read_timeout_ms=24000" 
> "-Dcassandra.memtable_row_overhead_computation_step=100" 
> "-Dcassandra.test.use_prepared=true" 
> "-Dcassandra.test.sstableformatdevelopment=true" 
> "-Djava.security.egd=file:/dev/urandom" "-Dcassandra.testtag=.jdk11" 
> "-Dcassandra.keepBriefBrief=true" "-Dcassandra.allow_simplestrategy=true" 
> "-Dcassandra.strict.runtime.checks=true" 
> "-Dcassandra.reads.thresholds.coordinator.defensive_checks_enabled=true" 
> "-Dcassandra.test.flush_local_schema_changes=false" 
> "-Dcassandra.test.messagingService.nonGracefulShutdown=true" 
> "-Dcassandra.use_nix_recursive_delete=true" 
> "-Dcie-cassandra.disable_schema_drop_log=true" 
> "-Dlogback.configurationFile=file:///Users/maxim.muzafarov/IdeaProjects/cassandra/test/conf/logback-simulator.xml"
>  "-Dcassandra.ring_delay_ms=10000" "-Dcassandra.tolerate_sstable_size=true" 
> "-Dcassandra.skip_sync=true" "-Dcassandra.debugrefcount=false" 
> "-Dcassandra.test.simulator.determinismcheck=strict" 
> "-Dcassandra.test.simulator.print_asm=none" 
> "-javaagent:/Users/maxim.muzafarov/IdeaProjects/cassandra/build/test/lib/jars/simulator-asm.jar"
>  
> "-Xbootclasspath/a:/Users/maxim.muzafarov/IdeaProjects/cassandra/build/test/lib/jars/simulator-bootstrap.jar"
>  "-XX:ActiveProcessorCount=4" "-XX:-TieredCompilation" 
> "-XX:-BackgroundCompilation" "-XX:CICompilerCount=1" 
> "-XX:Tier4CompileThreshold=1000" "-XX:ReservedCodeCacheSize=256M" "-Xmx16G" 
> "--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED" 
> "--add-exports=java.base/jdk.internal.ref=ALL-UNNAMED" 
> "--add-exports=java.base/sun.nio.ch=ALL-UNNAMED" 
> "--add-exports=java.management.rmi/com.sun.jmx.remote.internal.rmi=ALL-UNNAMED"
>  "--add-exports=java.rmi/sun.rmi.registry=ALL-UNNAMED" 
> "--add-exports=java.rmi/sun.rmi.server=ALL-UNNAMED" 
> "--add-exports=java.sql/java.sql=ALL-UNNAMED" 
> "--add-exports=java.rmi/sun.rmi.registry=ALL-UNNAMED" 
> "--add-opens=java.base/java.lang.module=ALL-UNNAMED" 
> "--add-opens=java.base/java.net=ALL-UNNAMED" 
> "--add-opens=java.base/jdk.internal.loader=ALL-UNNAMED" 
> "--add-opens=java.base/jdk.internal.ref=ALL-UNNAMED" 
> "--add-opens=java.base/jdk.internal.reflect=ALL-UNNAMED" 
> "--add-opens=java.base/jdk.internal.math=ALL-UNNAMED" 
> "--add-opens=java.base/jdk.internal.module=ALL-UNNAMED" 
> "--add-opens=java.base/jdk.internal.util.jar=ALL-UNNAMED" 
> "--add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED" 
> "--add-opens=jdk.management.jfr/jdk.management.jfr=ALL-UNNAMED" 
> "--add-opens=java.desktop/com.sun.beans.introspect=ALL-UNNAMED" 
> "-Didea.test.cyclic.buffer.size=25600000" "-javaagent:/Applications/IntelliJ 
> IDEA.app/Contents/lib/idea_rt.jar=52516:/Applications/IntelliJ 
> IDEA.app/Contents/bin" 
> "-javaagent:/Users/maxim.muzafarov/Library/Caches/JetBrains/IntelliJIdea2024.3/captureAgent/debugger-agent.jar"
>  "-Dkotlinx.coroutines.debug.enable.creation.stack.trace=false" 
> "-Ddebugger.agent.enable.coroutines=true" 
> "-Dkotlinx.coroutines.debug.enable.flows.stack.trace=true" 
> "-Dkotlinx.coroutines.debug.enable.mutable.state.flows.stack.trace=true" 
> "-Dfile.encoding=UTF-8"
> Command Args: "run" "--variant" "v2" "-n" "3..6" "-t" "1000" "-c" "2" 
> "--cluster-action-limit" "2" "-s" "30"
> JVM Argument -Dcassandra.disable_tcactive_openssl=true not set, 
> non-determinism possible. Typically set -XX:Tier4CompileThreshold=1000
> JVM Argument -Dlog4j2.disableJmx=true not set, non-determinism possible
> JVM Argument -Dlog4j.shutdownHookEnabled=false not set, non-determinism 
> possible
> JVM Argument -Dcassandra.simulator.skiplog4jreload=true not set, 
> non-determinism possible
> Usage: paxos [COMMAND]
> Run a paxos simulation
> Commands:
>   help       Display help information about the specified command.
>   run
>   version    Display version information
>   record
>   reconcile {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to