redis / riot

🧨 Get data in & out of Redis with RIOT

Home Page:http://redis.github.io/riot

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Live replication between two AWS Elasticache Redis clusters: java.lang.NoClassDefFoundError: com/sun/jna/Platform

giulianisanches opened this issue · comments

I'm running riot 3.1.5 on a RedHat Enterprise Linux 8.8 with STIG hardening.

My AWS Elasticache Cluster are configured with Cluster Mode enabled, have 5 shards with 1 replica (10 nodes total). The instance type is cache.m7g.xlarge (4 vCPU, 16GiB RAM).

I use a m7a.2xlarge (8 vCPU, 32 GiB RAM) instance to run riot.

The command I'm using is:

riot --debug -c -h "$ORIGIN_REDIS_ENDPOINT" \
    -p "$REDIS_PORT" \
    -a "$REDIS_PASSWORD" \
    --tls \
    replicate --type ds \
    -c -h "$DESTINATION_REDIS_ENDPOINT" \
    -p "$REDIS_PORT" \
    -a "$REDIS_PASSWORD" \
    --tls \
    --scan-match=l_* \
    --mode live

I'm investigating why the --mode live option seems to be freezing after the initial snapshot. The count items in source and target cluster are different for the same pattern l_*. Also, the progress bar freezes.

My questions are:

  1. What is needed to instal to fix the java.lang.NoClassDefFoundError errors below ?
  2. Based on the logs at the end of the issue, can I consider that the --mode live is working as intended ?

Additional information

Looking into logs I can see that after the initial replication, I get the following error:

16:46:12.676 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Committing resourceless transaction on [org.springframework.batch.support.transaction.ResourcelessTransactionManager$ResourcelessTransaction@44738bf9]
16:46:12.676 INFO org.springframework.batch.core.job.SimpleStepHandler	: Executing step: [live]
16:46:12.677 FINE org.springframework.batch.core.step.AbstractStep	: Executing: id=1
16:46:12.677 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Creating new transaction with name [org.springframework.batch.core.repository.support.SimpleJobRepository.update]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT
16:46:12.678 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Initiating transaction commit
16:46:12.678 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Committing resourceless transaction on [org.springframework.batch.support.transaction.ResourcelessTransactionManager$ResourcelessTransaction@64d95ad9]
16:46:12.678 INFO org.springframework.batch.core.job.SimpleStepHandler	: Executing step: [scan]
16:46:12.678 FINE org.springframework.batch.core.step.AbstractStep	: Executing: id=2
16:46:12.678 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Creating new transaction with name [org.springframework.batch.core.repository.support.SimpleJobRepository.update]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT
16:46:12.680 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Initiating transaction commit
16:46:12.680 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Initiating transaction commit
16:46:12.680 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Committing resourceless transaction on [org.springframework.batch.support.transaction.ResourcelessTransactionManager$ResourcelessTransaction@651d3ac7]
16:46:12.680 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Committing resourceless transaction on [org.springframework.batch.support.transaction.ResourcelessTransactionManager$ResourcelessTransaction@3540f2c2]
16:46:12.695 FINE org.jline	: jnaSupport.isConsoleOutput():
java.lang.NoClassDefFoundError: com/sun/jna/Platform
	at org.jline.terminal.impl.jna.JnaNativePty.isatty(JnaNativePty.java:162)
	at org.jline.terminal.impl.jna.JnaNativePty.isConsoleOutput(JnaNativePty.java:154)
	at org.jline.terminal.impl.jna.JnaSupportImpl.isConsoleOutput(JnaSupportImpl.java:55)
	at org.jline.terminal.TerminalBuilder$TerminalBuilderSupport.<init>(TerminalBuilder.java:550)
	at org.jline.terminal.TerminalBuilder.doBuild(TerminalBuilder.java:330)
	at org.jline.terminal.TerminalBuilder.build(TerminalBuilder.java:271)
	at me.tongfei.progressbar.TerminalUtils.getTerminal(TerminalUtils.java:83)
	at me.tongfei.progressbar.TerminalUtils.hasCursorMovementSupport(TerminalUtils.java:37)
	at me.tongfei.progressbar.Util.createConsoleConsumer(Util.java:30)
	at me.tongfei.progressbar.Util.createConsoleConsumer(Util.java:22)
	at me.tongfei.progressbar.ProgressBarBuilder.build(ProgressBarBuilder.java:136)
	at com.redis.riot.cli.common.ProgressStepListener.beforeStep(ProgressStepListener.java:30)
	at org.springframework.batch.core.listener.CompositeStepExecutionListener.beforeStep(CompositeStepExecutionListener.java:79)
	at org.springframework.batch.core.step.AbstractStep.execute(AbstractStep.java:204)
	at org.springframework.batch.core.job.SimpleStepHandler.handleStep(SimpleStepHandler.java:152)
	at org.springframework.batch.core.job.flow.JobFlowExecutor.executeStep(JobFlowExecutor.java:68)
	at org.springframework.batch.core.job.flow.support.state.StepState.handle(StepState.java:68)
	at org.springframework.batch.core.job.flow.support.SimpleFlow.resume(SimpleFlow.java:169)
	at org.springframework.batch.core.job.flow.support.SimpleFlow.start(SimpleFlow.java:144)
	at org.springframework.batch.core.job.flow.support.state.SplitState$1.call(SplitState.java:94)
	at org.springframework.batch.core.job.flow.support.state.SplitState$1.call(SplitState.java:91)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.ClassNotFoundException: com.sun.jna.Platform
	... 23 more

16:46:12.695 FINE org.jline	: jnaSupport.isConsoleOutput():
java.lang.NoClassDefFoundError: com/sun/jna/Platform
	at org.jline.terminal.impl.jna.JnaNativePty.isatty(JnaNativePty.java:162)
	at org.jline.terminal.impl.jna.JnaNativePty.isConsoleOutput(JnaNativePty.java:154)
	at org.jline.terminal.impl.jna.JnaSupportImpl.isConsoleOutput(JnaSupportImpl.java:55)
	at org.jline.terminal.TerminalBuilder$TerminalBuilderSupport.<init>(TerminalBuilder.java:550)
	at org.jline.terminal.TerminalBuilder.doBuild(TerminalBuilder.java:330)
	at org.jline.terminal.TerminalBuilder.build(TerminalBuilder.java:271)
	at me.tongfei.progressbar.TerminalUtils.getTerminal(TerminalUtils.java:83)
	at me.tongfei.progressbar.TerminalUtils.hasCursorMovementSupport(TerminalUtils.java:37)
	at me.tongfei.progressbar.Util.createConsoleConsumer(Util.java:30)
	at me.tongfei.progressbar.Util.createConsoleConsumer(Util.java:22)
	at me.tongfei.progressbar.ProgressBarBuilder.build(ProgressBarBuilder.java:136)
	at com.redis.riot.cli.common.ProgressStepListener.beforeStep(ProgressStepListener.java:30)
	at org.springframework.batch.core.listener.CompositeStepExecutionListener.beforeStep(CompositeStepExecutionListener.java:79)
	at org.springframework.batch.core.step.AbstractStep.execute(AbstractStep.java:204)
	at org.springframework.batch.core.job.SimpleStepHandler.handleStep(SimpleStepHandler.java:152)
	at org.springframework.batch.core.job.flow.JobFlowExecutor.executeStep(JobFlowExecutor.java:68)
	at org.springframework.batch.core.job.flow.support.state.StepState.handle(StepState.java:68)
	at org.springframework.batch.core.job.flow.support.SimpleFlow.resume(SimpleFlow.java:169)
	at org.springframework.batch.core.job.flow.support.SimpleFlow.start(SimpleFlow.java:144)
	at org.springframework.batch.core.job.flow.support.state.SplitState$1.call(SplitState.java:94)
	at org.springframework.batch.core.job.flow.support.state.SplitState$1.call(SplitState.java:91)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.ClassNotFoundException: com.sun.jna.Platform
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
	... 23 more

16:46:12.697 FINE org.jline	: jansiSupport.isConsoleOutput():
java.lang.NoClassDefFoundError: org/fusesource/jansi/internal/CLibrary
	at org.jline.terminal.impl.jansi.JansiNativePty.isConsoleOutput(JansiNativePty.java:176)
	at org.jline.terminal.impl.jansi.JansiSupportImpl.isConsoleOutput(JansiSupportImpl.java:151)
	at org.jline.terminal.TerminalBuilder$TerminalBuilderSupport.<init>(TerminalBuilder.java:559)
	at org.jline.terminal.TerminalBuilder.doBuild(TerminalBuilder.java:330)
	at org.jline.terminal.TerminalBuilder.build(TerminalBuilder.java:271)
	at me.tongfei.progressbar.TerminalUtils.getTerminal(TerminalUtils.java:83)
	at me.tongfei.progressbar.TerminalUtils.hasCursorMovementSupport(TerminalUtils.java:37)
	at me.tongfei.progressbar.Util.createConsoleConsumer(Util.java:30)
	at me.tongfei.progressbar.Util.createConsoleConsumer(Util.java:22)
	at me.tongfei.progressbar.ProgressBarBuilder.build(ProgressBarBuilder.java:136)
	at com.redis.riot.cli.common.ProgressStepListener.beforeStep(ProgressStepListener.java:30)
	at org.springframework.batch.core.listener.CompositeStepExecutionListener.beforeStep(CompositeStepExecutionListener.java:79)
	at org.springframework.batch.core.step.AbstractStep.execute(AbstractStep.java:204)
	at org.springframework.batch.core.job.SimpleStepHandler.handleStep(SimpleStepHandler.java:152)
	at org.springframework.batch.core.job.flow.JobFlowExecutor.executeStep(JobFlowExecutor.java:68)
	at org.springframework.batch.core.job.flow.support.state.StepState.handle(StepState.java:68)
	at org.springframework.batch.core.job.flow.support.SimpleFlow.resume(SimpleFlow.java:169)
	at org.springframework.batch.core.job.flow.support.SimpleFlow.start(SimpleFlow.java:144)
	at org.springframework.batch.core.job.flow.support.state.SplitState$1.call(SplitState.java:94)
	at org.springframework.batch.core.job.flow.support.state.SplitState$1.call(SplitState.java:91)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.ClassNotFoundException: org.fusesource.jansi.internal.CLibrary
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
	... 22 more

16:46:12.697 FINE org.jline	: jansiSupport.isConsoleOutput():
java.lang.NoClassDefFoundError: org/fusesource/jansi/internal/CLibrary
	at org.jline.terminal.impl.jansi.JansiNativePty.isConsoleOutput(JansiNativePty.java:176)
	at org.jline.terminal.impl.jansi.JansiSupportImpl.isConsoleOutput(JansiSupportImpl.java:151)
	at org.jline.terminal.TerminalBuilder$TerminalBuilderSupport.<init>(TerminalBuilder.java:559)
	at org.jline.terminal.TerminalBuilder.doBuild(TerminalBuilder.java:330)
	at org.jline.terminal.TerminalBuilder.build(TerminalBuilder.java:271)
	at me.tongfei.progressbar.TerminalUtils.getTerminal(TerminalUtils.java:83)
	at me.tongfei.progressbar.TerminalUtils.hasCursorMovementSupport(TerminalUtils.java:37)
	at me.tongfei.progressbar.Util.createConsoleConsumer(Util.java:30)
	at me.tongfei.progressbar.Util.createConsoleConsumer(Util.java:22)
	at me.tongfei.progressbar.ProgressBarBuilder.build(ProgressBarBuilder.java:136)
	at com.redis.riot.cli.common.ProgressStepListener.beforeStep(ProgressStepListener.java:30)
	at org.springframework.batch.core.listener.CompositeStepExecutionListener.beforeStep(CompositeStepExecutionListener.java:79)
	at org.springframework.batch.core.step.AbstractStep.execute(AbstractStep.java:204)
	at org.springframework.batch.core.job.SimpleStepHandler.handleStep(SimpleStepHandler.java:152)
	at org.springframework.batch.core.job.flow.JobFlowExecutor.executeStep(JobFlowExecutor.java:68)
	at org.springframework.batch.core.job.flow.support.state.StepState.handle(StepState.java:68)
	at org.springframework.batch.core.job.flow.support.SimpleFlow.resume(SimpleFlow.java:169)
	at org.springframework.batch.core.job.flow.support.SimpleFlow.start(SimpleFlow.java:144)
	at org.springframework.batch.core.job.flow.support.state.SplitState$1.call(SplitState.java:94)
	at org.springframework.batch.core.job.flow.support.state.SplitState$1.call(SplitState.java:91)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.ClassNotFoundException: org.fusesource.jansi.internal.CLibrary
	... 22 more

16:46:12.719 FINE org.jline	: ExecPty.current():
java.io.IOException: Not a tty
	at org.jline.terminal.impl.ExecPty.current(ExecPty.java:44)
	at org.jline.terminal.TerminalBuilder$TerminalBuilderSupport.<init>(TerminalBuilder.java:567)
	at org.jline.terminal.TerminalBuilder.doBuild(TerminalBuilder.java:330)
	at org.jline.terminal.TerminalBuilder.build(TerminalBuilder.java:271)
	at me.tongfei.progressbar.TerminalUtils.getTerminal(TerminalUtils.java:83)
	at me.tongfei.progressbar.TerminalUtils.hasCursorMovementSupport(TerminalUtils.java:37)
	at me.tongfei.progressbar.Util.createConsoleConsumer(Util.java:30)
	at me.tongfei.progressbar.Util.createConsoleConsumer(Util.java:22)
	at me.tongfei.progressbar.ProgressBarBuilder.build(ProgressBarBuilder.java:136)
	at com.redis.riot.cli.common.ProgressStepListener.beforeStep(ProgressStepListener.java:30)
	at org.springframework.batch.core.listener.CompositeStepExecutionListener.beforeStep(CompositeStepExecutionListener.java:79)
	at org.springframework.batch.core.step.AbstractStep.execute(AbstractStep.java:204)
	at org.springframework.batch.core.job.SimpleStepHandler.handleStep(SimpleStepHandler.java:152)
	at org.springframework.batch.core.job.flow.JobFlowExecutor.executeStep(JobFlowExecutor.java:68)
	at org.springframework.batch.core.job.flow.support.state.StepState.handle(StepState.java:68)
	at org.springframework.batch.core.job.flow.support.SimpleFlow.resume(SimpleFlow.java:169)
	at org.springframework.batch.core.job.flow.support.SimpleFlow.start(SimpleFlow.java:144)
	at org.springframework.batch.core.job.flow.support.state.SplitState$1.call(SplitState.java:94)
	at org.springframework.batch.core.job.flow.support.state.SplitState$1.call(SplitState.java:91)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.io.IOException: Error executing 'tty': not a tty
	at org.jline.utils.ExecHelper.exec(ExecHelper.java:42)
	at org.jline.terminal.impl.ExecPty.current(ExecPty.java:41)
	... 20 more

16:46:12.721 FINE org.jline	: ExecPty.current():
java.io.IOException: Not a tty
	at org.jline.terminal.impl.ExecPty.current(ExecPty.java:44)
	at org.jline.terminal.TerminalBuilder$TerminalBuilderSupport.<init>(TerminalBuilder.java:567)
	at org.jline.terminal.TerminalBuilder.doBuild(TerminalBuilder.java:330)
	at org.jline.terminal.TerminalBuilder.build(TerminalBuilder.java:271)
	at me.tongfei.progressbar.TerminalUtils.getTerminal(TerminalUtils.java:83)
	at me.tongfei.progressbar.TerminalUtils.hasCursorMovementSupport(TerminalUtils.java:37)
	at me.tongfei.progressbar.Util.createConsoleConsumer(Util.java:30)
	at me.tongfei.progressbar.Util.createConsoleConsumer(Util.java:22)
	at me.tongfei.progressbar.ProgressBarBuilder.build(ProgressBarBuilder.java:136)
	at com.redis.riot.cli.common.ProgressStepListener.beforeStep(ProgressStepListener.java:30)
	at org.springframework.batch.core.listener.CompositeStepExecutionListener.beforeStep(CompositeStepExecutionListener.java:79)
	at org.springframework.batch.core.step.AbstractStep.execute(AbstractStep.java:204)
	at org.springframework.batch.core.job.SimpleStepHandler.handleStep(SimpleStepHandler.java:152)
	at org.springframework.batch.core.job.flow.JobFlowExecutor.executeStep(JobFlowExecutor.java:68)
	at org.springframework.batch.core.job.flow.support.state.StepState.handle(StepState.java:68)
	at org.springframework.batch.core.job.flow.support.SimpleFlow.resume(SimpleFlow.java:169)
	at org.springframework.batch.core.job.flow.support.SimpleFlow.start(SimpleFlow.java:144)
	at org.springframework.batch.core.job.flow.support.state.SplitState$1.call(SplitState.java:94)
	at org.springframework.batch.core.job.flow.support.state.SplitState$1.call(SplitState.java:91)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.io.IOException: Error executing 'tty': not a tty
	at org.jline.utils.ExecHelper.exec(ExecHelper.java:42)
	at org.jline.terminal.impl.ExecPty.current(ExecPty.java:41)
	... 20 more

16:46:12.743 FINE org.jline	: Using terminal DumbTerminal
16:46:12.746 FINE org.jline	: Using terminal DumbTerminal

Listening  ? % [=                                       ] 0/? (0:00:00 / ?) ?/s
Scanning  ? % [=                                        ] 0/? (0:00:00 / ?) ?/s16:46:12.757 FINE jdk.event.security	: X509Certificate: Alg:SHA256withRSA, Serial:3a0d99f0c154c6c20a9d28f5586ca49, Subject:CN=x5szejiznrh4dee1vhzpndwzfimrl682lzcduic.usw2.cache.amazonaws.com, Issuer:CN=Amazon RSA 2048 M01, O=Amazon, C=US, Key type:RSA, Length:2048, Cert Id:-911784366, Valid from:5/19/23, 12:00 AM, Valid until:6/16/24, 11:59 PM

But right after that, it enters in a loop with messages like these (full log attatched):

16:46:12.822 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Creating new transaction with name [org.springframework.batch.core.repository.support.SimpleJobRepository.getLastJobExecution]: PROPAGATION_REQUIRES_NEW,ISOLATION_SERIALIZABLE
16:46:12.822 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Initiating transaction commit
16:46:12.823 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Committing resourceless transaction on [org.springframework.batch.support.transaction.ResourcelessTransactionManager$ResourcelessTransaction@11750f8c]
16:46:12.823 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Creating new transaction with name [org.springframework.batch.core.repository.support.SimpleJobRepository.createJobExecution]: PROPAGATION_REQUIRES_NEW,ISOLATION_SERIALIZABLE
16:46:12.825 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Initiating transaction commit
16:46:12.825 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Committing resourceless transaction on [org.springframework.batch.support.transaction.ResourcelessTransactionManager$ResourcelessTransaction@15febd29]
16:46:12.829 INFO org.springframework.batch.core.launch.support.SimpleJobLauncher	: Job: [SimpleJob: [name=scan-reader]] launched with the following parameters: [{}]
16:46:12.829 FINE org.springframework.batch.core.job.AbstractJob	: Job execution starting: JobExecution: id=1, version=0, startTime=null, endTime=null, lastUpdated=Mon Sep 04 16:46:12 UTC 2023, status=STARTING, exitStatus=exitCode=UNKNOWN;exitDescription=, job=[JobInstance: id=1, version=0, Job=[scan-reader]], jobParameters=[{}]
16:46:12.830 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Creating new transaction with name [org.springframework.batch.core.repository.support.SimpleJobRepository.update]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT
16:46:12.831 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Initiating transaction commit
16:46:12.832 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Committing resourceless transaction on [org.springframework.batch.support.transaction.ResourcelessTransactionManager$ResourcelessTransaction@2596aa2d]
16:46:12.832 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Creating new transaction with name [org.springframework.batch.core.repository.support.SimpleJobRepository.getLastStepExecution]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT
16:46:12.832 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Initiating transaction commit
16:46:12.836 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Committing resourceless transaction on [org.springframework.batch.support.transaction.ResourcelessTransactionManager$ResourcelessTransaction@5610284b]
16:46:12.837 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Creating new transaction with name [org.springframework.batch.core.repository.support.SimpleJobRepository.getStepExecutionCount]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT
16:46:12.837 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Initiating transaction commit
16:46:12.837 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Committing resourceless transaction on [org.springframework.batch.support.transaction.ResourcelessTransactionManager$ResourcelessTransaction@31004853]
16:46:12.837 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Creating new transaction with name [org.springframework.batch.core.repository.support.SimpleJobRepository.add]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT
16:46:12.839 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Initiating transaction commit
16:46:12.839 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Committing resourceless transaction on [org.springframework.batch.support.transaction.ResourcelessTransactionManager$ResourcelessTransaction@131b0214]
16:46:12.839 INFO org.springframework.batch.core.job.SimpleStepHandler	: Executing step: [scan-reader]
16:46:12.839 FINE org.springframework.batch.core.step.AbstractStep	: Executing: id=3
16:46:12.839 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Creating new transaction with name [org.springframework.batch.core.repository.support.SimpleJobRepository.update]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT
16:46:12.840 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Initiating transaction commit
16:46:12.840 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Committing resourceless transaction on [org.springframework.batch.support.transaction.ResourcelessTransactionManager$ResourcelessTransaction@1c330422]
16:46:12.861 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Creating new transaction with name [org.springframework.batch.core.repository.support.SimpleJobRepository.getLastJobExecution]: PROPAGATION_REQUIRES_NEW,ISOLATION_SERIALIZABLE
16:46:12.861 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Initiating transaction commit
16:46:12.861 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Committing resourceless transaction on [org.springframework.batch.support.transaction.ResourcelessTransactionManager$ResourcelessTransaction@10c286c3]
16:46:12.861 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Creating new transaction with name [org.springframework.batch.core.repository.support.SimpleJobRepository.createJobExecution]: PROPAGATION_REQUIRES_NEW,ISOLATION_SERIALIZABLE
16:46:12.863 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Initiating transaction commit
16:46:12.863 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Committing resourceless transaction on [org.springframework.batch.support.transaction.ResourcelessTransactionManager$ResourcelessTransaction@38d01ddb]
16:46:12.863 INFO org.springframework.batch.core.launch.support.SimpleJobLauncher	: Job: [SimpleJob: [name=live-reader]] launched with the following parameters: [{}]
16:46:12.863 FINE org.springframework.batch.core.job.AbstractJob	: Job execution starting: JobExecution: id=2, version=0, startTime=null, endTime=null, lastUpdated=Mon Sep 04 16:46:12 UTC 2023, status=STARTING, exitStatus=exitCode=UNKNOWN;exitDescription=, job=[JobInstance: id=2, version=0, Job=[live-reader]], jobParameters=[{}]
16:46:12.863 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Creating new transaction with name [org.springframework.batch.core.repository.support.SimpleJobRepository.update]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT
16:46:12.865 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Initiating transaction commit
16:46:12.865 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Committing resourceless transaction on [org.springframework.batch.support.transaction.ResourcelessTransactionManager$ResourcelessTransaction@187332e5]
16:46:12.865 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Creating new transaction with name [org.springframework.batch.core.repository.support.SimpleJobRepository.getLastStepExecution]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT
16:46:12.865 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Initiating transaction commit
16:46:12.865 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Committing resourceless transaction on [org.springframework.batch.support.transaction.ResourcelessTransactionManager$ResourcelessTransaction@aebdbee]
16:46:12.865 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Creating new transaction with name [org.springframework.batch.core.repository.support.SimpleJobRepository.getStepExecutionCount]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT
16:46:12.865 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Initiating transaction commit
16:46:12.865 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Committing resourceless transaction on [org.springframework.batch.support.transaction.ResourcelessTransactionManager$ResourcelessTransaction@37783e17]
16:46:12.865 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Creating new transaction with name [org.springframework.batch.core.repository.support.SimpleJobRepository.add]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT
16:46:12.867 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Initiating transaction commit
16:46:12.867 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Committing resourceless transaction on [org.springframework.batch.support.transaction.ResourcelessTransactionManager$ResourcelessTransaction@f763cf0]
16:46:12.867 INFO org.springframework.batch.core.job.SimpleStepHandler	: Executing step: [live-reader]
16:46:12.867 FINE org.springframework.batch.core.step.AbstractStep	: Executing: id=4
16:46:12.867 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Creating new transaction with name [org.springframework.batch.core.repository.support.SimpleJobRepository.update]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT
16:46:12.868 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Initiating transaction commit
16:46:12.868 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Committing resourceless transaction on [org.springframework.batch.support.transaction.ResourcelessTransactionManager$ResourcelessTransaction@5dbc2130]
16:46:12.950 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Creating new transaction with name [org.springframework.batch.core.repository.support.SimpleJobRepository.updateExecutionContext]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT
16:46:12.950 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Initiating transaction commit
16:46:12.950 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Committing resourceless transaction on [org.springframework.batch.support.transaction.ResourcelessTransactionManager$ResourcelessTransaction@16765b72]
16:46:12.952 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Creating new transaction with name [org.springframework.batch.core.repository.support.SimpleJobRepository.updateExecutionContext]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT
16:46:12.953 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Initiating transaction commit
16:46:12.953 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Committing resourceless transaction on [org.springframework.batch.support.transaction.ResourcelessTransactionManager$ResourcelessTransaction@ce170d2]
16:46:12.964 FINE org.springframework.batch.repeat.support.RepeatTemplate	: Starting repeat context.
16:46:12.965 FINE org.springframework.batch.repeat.support.RepeatTemplate	: Repeat operation about to start at count=1
16:46:12.965 FINE org.springframework.batch.core.scope.context.StepContextRepeatCallback	: Preparing chunk execution for StepContext: org.springframework.batch.core.scope.context.StepContext@367b8ab7
16:46:12.965 FINE org.springframework.batch.core.scope.context.StepContextRepeatCallback	: Chunk execution starting: queue size=0
16:46:12.966 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Creating new transaction with name [null]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT
16:46:12.966 FINE org.springframework.batch.repeat.support.RepeatTemplate	: Starting repeat context.
16:46:12.966 FINE org.springframework.batch.repeat.support.RepeatTemplate	: Repeat operation about to start at count=1
16:46:12.968 FINE org.springframework.batch.repeat.support.RepeatTemplate	: Starting repeat context.
16:46:12.968 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Creating new transaction with name [org.springframework.batch.core.repository.support.SimpleJobRepository.updateExecutionContext]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT
16:46:12.968 FINE org.springframework.batch.repeat.support.RepeatTemplate	: Repeat operation about to start at count=1
16:46:12.969 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Initiating transaction commit
16:46:12.973 FINE org.springframework.batch.core.scope.context.StepContextRepeatCallback	: Preparing chunk execution for StepContext: org.springframework.batch.core.scope.context.StepContext@4abddf81
16:46:12.975 FINE org.springframework.batch.core.scope.context.StepContextRepeatCallback	: Chunk execution starting: queue size=0
16:46:12.975 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Creating new transaction with name [null]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT
16:46:12.976 FINE org.springframework.batch.repeat.support.RepeatTemplate	: Starting repeat context.
16:46:12.976 FINE org.springframework.batch.repeat.support.RepeatTemplate	: Repeat operation about to start at count=1
16:46:12.975 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Committing resourceless transaction on [org.springframework.batch.support.transaction.ResourcelessTransactionManager$ResourcelessTransaction@1a14bc1b]
16:46:12.976 FINE org.springframework.batch.repeat.support.RepeatTemplate	: Starting repeat context.
16:46:12.976 FINE org.springframework.batch.repeat.support.RepeatTemplate	: Repeat operation about to start at count=1
16:46:12.976 FINE org.springframework.batch.core.scope.context.StepContextRepeatCallback	: Preparing chunk execution for StepContext: org.springframework.batch.core.scope.context.StepContext@230a83f8
16:46:12.976 FINE org.springframework.batch.core.scope.context.StepContextRepeatCallback	: Chunk execution starting: queue size=0
16:46:12.976 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Creating new transaction with name [null]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT
16:46:12.976 FINE org.springframework.batch.repeat.support.RepeatTemplate	: Starting repeat context.
16:46:12.976 FINE org.springframework.batch.repeat.support.RepeatTemplate	: Repeat operation about to start at count=1
16:46:12.987 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Creating new transaction with name [org.springframework.batch.core.repository.support.SimpleJobRepository.updateExecutionContext]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT
16:46:12.988 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Initiating transaction commit
16:46:12.988 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Committing resourceless transaction on [org.springframework.batch.support.transaction.ResourcelessTransactionManager$ResourcelessTransaction@62553384]
16:46:12.988 FINE org.springframework.batch.repeat.support.RepeatTemplate	: Starting repeat context.
16:46:12.988 FINE org.springframework.batch.repeat.support.RepeatTemplate	: Repeat operation about to start at count=1
16:46:12.988 FINE org.springframework.batch.core.scope.context.StepContextRepeatCallback	: Preparing chunk execution for StepContext: org.springframework.batch.core.scope.context.StepContext@76f2b66c
16:46:12.988 FINE org.springframework.batch.core.scope.context.StepContextRepeatCallback	: Chunk execution starting: queue size=0
16:46:12.988 FINE org.springframework.batch.support.transaction.ResourcelessTransactionManager	: Creating new transaction with name [null]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT
16:46:12.988 FINE org.springframework.batch.repeat.support.RepeatTemplate	: Starting repeat context.
16:46:12.988 FINE org.springframework.batch.repeat.support.RepeatTemplate	: Repeat operation about to start at count=1

nohup.out.zip

I was using OpenJDK 17. There is a jna package for the RHEL8, but it requires the OpenJdk 1.8.0. Installed both, but the ClassNotFound error persists:

~]$ rpm -qa | grep -E 'jna|jdk'
jna-4.5.1-5.el8.x86_64
java-1.8.0-openjdk-headless-1.8.0.382.b05-2.el8.x86_64
copy-jdk-configs-4.0-2.el8.noarch

Ok, looks like the ClassNotFound exception does not impact on the riot operation. And I have discovered that for the sync to work, i need to enable the notify-keyspace-events.

Based on the following documentation the only question remaining is: do riot subscribe to each of the nodes in the cluster ?

I will need to research a bit.

Thank you.