[ https://issues.apache.org/jira/browse/IGNITE-16248?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mikhail Petrov updated IGNITE-16248: ------------------------------------ Description: Exception: {code:java} java.lang.IllegalArgumentException: Ouch! Argument is invalid: Page size must be between 1kB and 16kB. [22:16:04] [org.apache.ignite:ignite-cdc-ext] at org.apache.ignite.internal.util.GridArgumentCheck.ensure(GridArgumentCheck.java:110) [22:16:04] [org.apache.ignite:ignite-cdc-ext] at org.apache.ignite.internal.processors.cache.persistence.wal.reader.IgniteWalIteratorFactory$IteratorParametersBuilder.validate(IgniteWalIteratorFactory.java:663) [22:16:04] [org.apache.ignite:ignite-cdc-ext] at org.apache.ignite.internal.processors.cache.persistence.wal.reader.IgniteWalIteratorFactory.iterator(IgniteWalIteratorFactory.java:174) [22:16:04] [org.apache.ignite:ignite-cdc-ext] at org.apache.ignite.internal.cdc.CdcMain.consumeSegment(CdcMain.java:467) [22:16:04] [org.apache.ignite:ignite-cdc-ext] at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) [22:16:04] [org.apache.ignite:ignite-cdc-ext] at java.util.stream.ReferencePipeline$11$1.accept(ReferencePipeline.java:373) [22:16:04] [org.apache.ignite:ignite-cdc-ext] at java.util.ArrayList.forEach(ArrayList.java:1259) [22:16:04] [org.apache.ignite:ignite-cdc-ext] at java.util.stream.SortedOps$RefSortingSink.end(SortedOps.java:390) [22:16:04] [org.apache.ignite:ignite-cdc-ext] at java.util.stream.Sink$ChainedReference.end(Sink.java:258) [22:16:04] [org.apache.ignite:ignite-cdc-ext] at java.util.stream.Sink$ChainedReference.end(Sink.java:258) [22:16:04] [org.apache.ignite:ignite-cdc-ext] at java.util.stream.Sink$ChainedReference.end(Sink.java:258) [22:16:04] [org.apache.ignite:ignite-cdc-ext] at java.util.stream.Sink$ChainedReference.end(Sink.java:258) [22:16:04] [org.apache.ignite:ignite-cdc-ext] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:483) [22:16:04] [org.apache.ignite:ignite-cdc-ext] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) [22:16:04] [org.apache.ignite:ignite-cdc-ext] at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) [22:16:04] [org.apache.ignite:ignite-cdc-ext] at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) [22:16:04] [org.apache.ignite:ignite-cdc-ext] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) [22:16:04] [org.apache.ignite:ignite-cdc-ext] at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) [22:16:04] [org.apache.ignite:ignite-cdc-ext] at org.apache.ignite.internal.cdc.CdcMain.consumeWalSegmentsUntilStopped(CdcMain.java:403) [22:16:04] [org.apache.ignite:ignite-cdc-ext] at org.apache.ignite.internal.cdc.CdcMain.runX(CdcMain.java:285) [22:16:04] [org.apache.ignite:ignite-cdc-ext] at org.apache.ignite.internal.cdc.CdcMain.run(CdcMain.java:229) [22:16:04] [org.apache.ignite:ignite-cdc-ext] at java.lang.Thread.run(Thread.java:748) {code} The main reason of failures is that after IGNITE-15558 IteratorParametersBuilder#pageSize is set in CdcMain#consumeSegment. Since DataStorageConfiguration#pageSize default variable is 0, IteratorParametersBuilder#validate throws an exception considering that page size must be at least 4 kB. As a reproducer you can see CDC tests in Ignite Extensions repository - https://ci.ignite.apache.org/viewType.html?buildTypeId=IgniteExtensions_Tests_Cdc&tab=buildTypeHistoryList&branch_IgniteExtensions_Tests=%3Cdefault%3E {code:java} public class CdcPageSizeTest extends GridCommonAbstractTest { /** {@inheritDoc} */ @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception { return super.getConfiguration(igniteInstanceName) .setDataStorageConfiguration(new DataStorageConfiguration() .setCdcEnabled(true) .setWalMode(FSYNC) .setWalForceArchiveTimeout(5_000) .setDefaultDataRegionConfiguration( new DataRegionConfiguration() .setPersistenceEnabled(true) )); } @Override protected void beforeTest() throws Exception { super.beforeTest(); cleanPersistenceDir(); } /** */ @Test public void test() throws Exception { startGrid(0); grid(0).cluster().state(ClusterState.ACTIVE); CdcConsumer consumer = new CdcConsumer() { @Override public void start(MetricRegistry mreg) { } @Override public boolean onEvents(Iterator<CdcEvent> events) { return false; } @Override public void stop() { } }; CdcConfiguration cdcCfg = new CdcConfiguration(); cdcCfg.setConsumer(consumer); new CdcMain(getConfiguration(getTestIgniteInstanceName(0)), null, cdcCfg).run(); } } {code} was: It is needed to fix CDC tests that start to fail after IGNITE-15558. The main reason of failures is that after IGNITE-15558 IteratorParametersBuilder#pageSize is set in CdcMain#consumeSegment. Since DataStorageConfiguration#pageSize default variable is 0, IteratorParametersBuilder#validate throws an exception considering that page size must be at least 4 kB. https://ci.ignite.apache.org/viewType.html?buildTypeId=IgniteExtensions_Tests_Cdc&tab=buildTypeHistoryList&branch_IgniteExtensions_Tests=%3Cdefault%3E Summary: CDC fails if default page size is used (was: Ignite-extensions: CDC tests fails after IGNITE-15558) > CDC fails if default page size is used > -------------------------------------- > > Key: IGNITE-16248 > URL: https://issues.apache.org/jira/browse/IGNITE-16248 > Project: Ignite > Issue Type: Test > Reporter: Mikhail Petrov > Assignee: Mikhail Petrov > Priority: Major > Time Spent: 10m > Remaining Estimate: 0h > > Exception: > {code:java} > java.lang.IllegalArgumentException: Ouch! Argument is invalid: Page size must > be between 1kB and 16kB. > [22:16:04] [org.apache.ignite:ignite-cdc-ext] at > org.apache.ignite.internal.util.GridArgumentCheck.ensure(GridArgumentCheck.java:110) > [22:16:04] [org.apache.ignite:ignite-cdc-ext] at > org.apache.ignite.internal.processors.cache.persistence.wal.reader.IgniteWalIteratorFactory$IteratorParametersBuilder.validate(IgniteWalIteratorFactory.java:663) > [22:16:04] [org.apache.ignite:ignite-cdc-ext] at > org.apache.ignite.internal.processors.cache.persistence.wal.reader.IgniteWalIteratorFactory.iterator(IgniteWalIteratorFactory.java:174) > [22:16:04] [org.apache.ignite:ignite-cdc-ext] at > org.apache.ignite.internal.cdc.CdcMain.consumeSegment(CdcMain.java:467) > [22:16:04] [org.apache.ignite:ignite-cdc-ext] at > java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) > [22:16:04] [org.apache.ignite:ignite-cdc-ext] at > java.util.stream.ReferencePipeline$11$1.accept(ReferencePipeline.java:373) > [22:16:04] [org.apache.ignite:ignite-cdc-ext] at > java.util.ArrayList.forEach(ArrayList.java:1259) > [22:16:04] [org.apache.ignite:ignite-cdc-ext] at > java.util.stream.SortedOps$RefSortingSink.end(SortedOps.java:390) > [22:16:04] [org.apache.ignite:ignite-cdc-ext] at > java.util.stream.Sink$ChainedReference.end(Sink.java:258) > [22:16:04] [org.apache.ignite:ignite-cdc-ext] at > java.util.stream.Sink$ChainedReference.end(Sink.java:258) > [22:16:04] [org.apache.ignite:ignite-cdc-ext] at > java.util.stream.Sink$ChainedReference.end(Sink.java:258) > [22:16:04] [org.apache.ignite:ignite-cdc-ext] at > java.util.stream.Sink$ChainedReference.end(Sink.java:258) > [22:16:04] [org.apache.ignite:ignite-cdc-ext] at > java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:483) > [22:16:04] [org.apache.ignite:ignite-cdc-ext] at > java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) > [22:16:04] [org.apache.ignite:ignite-cdc-ext] at > java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) > [22:16:04] [org.apache.ignite:ignite-cdc-ext] at > java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) > [22:16:04] [org.apache.ignite:ignite-cdc-ext] at > java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) > [22:16:04] [org.apache.ignite:ignite-cdc-ext] at > java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) > [22:16:04] [org.apache.ignite:ignite-cdc-ext] at > org.apache.ignite.internal.cdc.CdcMain.consumeWalSegmentsUntilStopped(CdcMain.java:403) > [22:16:04] [org.apache.ignite:ignite-cdc-ext] at > org.apache.ignite.internal.cdc.CdcMain.runX(CdcMain.java:285) > [22:16:04] [org.apache.ignite:ignite-cdc-ext] at > org.apache.ignite.internal.cdc.CdcMain.run(CdcMain.java:229) > [22:16:04] [org.apache.ignite:ignite-cdc-ext] at > java.lang.Thread.run(Thread.java:748) > {code} > The main reason of failures is that after IGNITE-15558 > IteratorParametersBuilder#pageSize is set in CdcMain#consumeSegment. > Since DataStorageConfiguration#pageSize default variable is 0, > IteratorParametersBuilder#validate throws an exception considering that page > size must be at least 4 kB. > As a reproducer you can see CDC tests in Ignite Extensions repository - > https://ci.ignite.apache.org/viewType.html?buildTypeId=IgniteExtensions_Tests_Cdc&tab=buildTypeHistoryList&branch_IgniteExtensions_Tests=%3Cdefault%3E > {code:java} > public class CdcPageSizeTest extends GridCommonAbstractTest { > /** {@inheritDoc} */ > @Override protected IgniteConfiguration getConfiguration(String > igniteInstanceName) throws Exception { > return super.getConfiguration(igniteInstanceName) > .setDataStorageConfiguration(new DataStorageConfiguration() > .setCdcEnabled(true) > .setWalMode(FSYNC) > .setWalForceArchiveTimeout(5_000) > .setDefaultDataRegionConfiguration( > new DataRegionConfiguration() > .setPersistenceEnabled(true) > )); > } > @Override protected void beforeTest() throws Exception { > super.beforeTest(); > cleanPersistenceDir(); > } > /** */ > @Test > public void test() throws Exception { > startGrid(0); > grid(0).cluster().state(ClusterState.ACTIVE); > CdcConsumer consumer = new CdcConsumer() { > @Override public void start(MetricRegistry mreg) { > } > @Override public boolean onEvents(Iterator<CdcEvent> events) { > return false; > } > @Override public void stop() { > } > }; > CdcConfiguration cdcCfg = new CdcConfiguration(); > cdcCfg.setConsumer(consumer); > new CdcMain(getConfiguration(getTestIgniteInstanceName(0)), null, > cdcCfg).run(); > } > } > {code} -- This message was sent by Atlassian Jira (v8.20.1#820001)