[ https://issues.apache.org/jira/browse/IGNITE-16248?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mikhail Petrov updated IGNITE-16248: ------------------------------------ Summary: CDC fails if default page size is used in its coniguration (was: CDC fails if default page size is used) > CDC fails if default page size is used in its coniguration > ---------------------------------------------------------- > > 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 > Or see dedicated reproducer: > {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)