[jira] [Commented] (IGNITE-8900) SqlFieldsQuery provides incorrect result when item size exceeds page size
[ https://issues.apache.org/jira/browse/IGNITE-8900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16565131#comment-16565131 ] Dmitriy Pavlov commented on IGNITE-8900: [~ilantukh] [~DmitriyGovorukhin], there is a number of suspicious tests {noformat} Continuous Query 1 [ tests 2 ] IgniteCacheQuerySelfTestSuite3: GridCacheContinuousQueryConcurrentTest.testRestartReplicated (fail rate 0,0%) Hadoop [ tests 1 ] IgniteHadoopTestSuite: HadoopClientProtocolSelfTest.testJobCounters(fail rate 0,0%) Java Client [ tests 2 ] IgniteClientTestSuite: ClientTcpMultiNodeSelfTest.testTopologyListener (fail rate 0,0%) Binary Objects (Simple Mapper Compute Grid) [ tests 1 ] IgniteBinaryObjectsSimpleNameMapperComputeGridTestSuite: GridContinuousTaskSelfTest.testContinuousJobsChainMultiThreaded More >> (fail rate 0,0%) Cache (Failover) 1 [ tests 1 ] IgniteCacheFailoverTestSuite: IgniteAtomicLongChangingTopologySelfTest.testClientCollocatedSetCreateCloseFailover (fail rate 0,0%) {noformat} It is likely it is rare flaky, but could we double-check failures are not related to this change? > SqlFieldsQuery provides incorrect result when item size exceeds page size > - > > Key: IGNITE-8900 > URL: https://issues.apache.org/jira/browse/IGNITE-8900 > Project: Ignite > Issue Type: Bug > Components: sql >Affects Versions: 2.4 >Reporter: Anton Kurbanov >Assignee: Ilya Lantukh >Priority: Blocker > Fix For: 2.7 > > Attachments: Main.java, Node.java > > > Start several server nodes, then start client, execute queries with value > range in where clause. Duplicate entries may be found, some entries may be > missing. > Results as an example: > expected 5 results but got back 3 results (query range 61002664327616 to > 610026643276160004), cache.getAll returned 5 entries. > expected 8 results but got back 7 results (query range 61002664327616 to > 610026643276160007), cache.getAll returned 8 entries. > Query results: [61002664327616, 610026643276160003, 610026643276160004, > 610026643276160005, 610026643276160005, 610026643276160006, > 610026643276160007] > Please find reproducer attached. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-8900) SqlFieldsQuery provides incorrect result when item size exceeds page size
[ https://issues.apache.org/jira/browse/IGNITE-8900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16563586#comment-16563586 ] Dmitriy Govorukhin commented on IGNITE-8900: [~ilantukh] Looks good. Thanks for the contribution! > SqlFieldsQuery provides incorrect result when item size exceeds page size > - > > Key: IGNITE-8900 > URL: https://issues.apache.org/jira/browse/IGNITE-8900 > Project: Ignite > Issue Type: Bug > Components: sql >Affects Versions: 2.4 >Reporter: Anton Kurbanov >Assignee: Ilya Lantukh >Priority: Blocker > Fix For: 2.7 > > Attachments: Main.java, Node.java > > > Start several server nodes, then start client, execute queries with value > range in where clause. Duplicate entries may be found, some entries may be > missing. > Results as an example: > expected 5 results but got back 3 results (query range 61002664327616 to > 610026643276160004), cache.getAll returned 5 entries. > expected 8 results but got back 7 results (query range 61002664327616 to > 610026643276160007), cache.getAll returned 8 entries. > Query results: [61002664327616, 610026643276160003, 610026643276160004, > 610026643276160005, 610026643276160005, 610026643276160006, > 610026643276160007] > Please find reproducer attached. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-8900) SqlFieldsQuery provides incorrect result when item size exceeds page size
[ https://issues.apache.org/jira/browse/IGNITE-8900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16559655#comment-16559655 ] Ilya Lantukh commented on IGNITE-8900: -- [~agoncharuk], thanks for noticing it! Changes done in this ticket weren't the cause of these failures, they were fixed in https://issues.apache.org/jira/browse/IGNITE-8791. After I merged those changes, failures have stopped. > SqlFieldsQuery provides incorrect result when item size exceeds page size > - > > Key: IGNITE-8900 > URL: https://issues.apache.org/jira/browse/IGNITE-8900 > Project: Ignite > Issue Type: Bug > Components: sql >Affects Versions: 2.4 >Reporter: Anton Kurbanov >Assignee: Ilya Lantukh >Priority: Blocker > Fix For: 2.7 > > Attachments: Main.java, Node.java > > > Start several server nodes, then start client, execute queries with value > range in where clause. Duplicate entries may be found, some entries may be > missing. > Results as an example: > expected 5 results but got back 3 results (query range 61002664327616 to > 610026643276160004), cache.getAll returned 5 entries. > expected 8 results but got back 7 results (query range 61002664327616 to > 610026643276160007), cache.getAll returned 8 entries. > Query results: [61002664327616, 610026643276160003, 610026643276160004, > 610026643276160005, 610026643276160005, 610026643276160006, > 610026643276160007] > Please find reproducer attached. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-8900) SqlFieldsQuery provides incorrect result when item size exceeds page size
[ https://issues.apache.org/jira/browse/IGNITE-8900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16550508#comment-16550508 ] Alexey Goncharuk commented on IGNITE-8900: -- [~ilantukh], I see the following tests failing in the branch compared to master, can you please take a look? {code} IgnitePdsWithIndexingCoreTestSuite: IgnitePdsAtomicCacheHistoricalRebalancingTest.testForceRebalance (fail rate 0,0%) IgnitePdsWithIndexingCoreTestSuite: IgnitePdsAtomicCacheHistoricalRebalancingTest.testRebalancingOnRestart (fail rate 0,0%) IgnitePdsWithIndexingCoreTestSuite: IgnitePdsAtomicCacheHistoricalRebalancingTest.testRebalancingOnRestartAfterCheckpoint (fail rate 0,0%) {code} > SqlFieldsQuery provides incorrect result when item size exceeds page size > - > > Key: IGNITE-8900 > URL: https://issues.apache.org/jira/browse/IGNITE-8900 > Project: Ignite > Issue Type: Bug > Components: sql >Affects Versions: 2.4 >Reporter: Anton Kurbanov >Assignee: Ilya Lantukh >Priority: Blocker > Attachments: Main.java, Node.java > > > Start several server nodes, then start client, execute queries with value > range in where clause. Duplicate entries may be found, some entries may be > missing. > Results as an example: > expected 5 results but got back 3 results (query range 61002664327616 to > 610026643276160004), cache.getAll returned 5 entries. > expected 8 results but got back 7 results (query range 61002664327616 to > 610026643276160007), cache.getAll returned 8 entries. > Query results: [61002664327616, 610026643276160003, 610026643276160004, > 610026643276160005, 610026643276160005, 610026643276160006, > 610026643276160007] > Please find reproducer attached. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-8900) SqlFieldsQuery provides incorrect result when item size exceeds page size
[ https://issues.apache.org/jira/browse/IGNITE-8900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16543488#comment-16543488 ] Alexey Goncharuk commented on IGNITE-8900: -- [~ilantukh] the changes look good, please convert the provided reproducer into a unit-test. > SqlFieldsQuery provides incorrect result when item size exceeds page size > - > > Key: IGNITE-8900 > URL: https://issues.apache.org/jira/browse/IGNITE-8900 > Project: Ignite > Issue Type: Bug > Components: sql >Affects Versions: 2.4 >Reporter: Anton Kurbanov >Assignee: Ilya Lantukh >Priority: Blocker > Attachments: Main.java, Node.java > > > Start several server nodes, then start client, execute queries with value > range in where clause. Duplicate entries may be found, some entries may be > missing. > Results as an example: > expected 5 results but got back 3 results (query range 61002664327616 to > 610026643276160004), cache.getAll returned 5 entries. > expected 8 results but got back 7 results (query range 61002664327616 to > 610026643276160007), cache.getAll returned 8 entries. > Query results: [61002664327616, 610026643276160003, 610026643276160004, > 610026643276160005, 610026643276160005, 610026643276160006, > 610026643276160007] > Please find reproducer attached. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-8900) SqlFieldsQuery provides incorrect result when item size exceeds page size
[ https://issues.apache.org/jira/browse/IGNITE-8900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16538662#comment-16538662 ] ASF GitHub Bot commented on IGNITE-8900: GitHub user ilantukh opened a pull request: https://github.com/apache/ignite/pull/4344 IGNITE-8900 You can merge this pull request into a Git repository by running: $ git pull https://github.com/gridgain/apache-ignite ignite-8900 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/ignite/pull/4344.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #4344 commit b3707b44c89b3bb4cb30d07cb1c9936264b0666e Author: devozerov Date: 2018-06-29T20:01:26Z Reproducer for IGNITE-8900 issue with broken links. commit 1e05b9963592e20150d6006752da8a7b9fc87b09 Author: Alexey Goncharuk Date: 2018-06-30T11:08:45Z Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/ignite into ignite-8900-repro commit 1c9c746c9ebae59a83f030689d0d7e90a429152e Author: Alexey Goncharuk Date: 2018-06-30T13:23:21Z IGNITE-8900 Attempting to fix the link issue commit f819202d254f3b52f34a68d29cb48e120dc45810 Author: Ilya Lantukh Date: 2018-07-10T14:12:32Z IGNITE-8900 : Hotfix for JVM crash. > SqlFieldsQuery provides incorrect result when item size exceeds page size > - > > Key: IGNITE-8900 > URL: https://issues.apache.org/jira/browse/IGNITE-8900 > Project: Ignite > Issue Type: Bug > Components: sql >Affects Versions: 2.4 >Reporter: Anton Kurbanov >Assignee: Ilya Lantukh >Priority: Blocker > Attachments: Main.java, Node.java > > > Start several server nodes, then start client, execute queries with value > range in where clause. Duplicate entries may be found, some entries may be > missing. > Results as an example: > expected 5 results but got back 3 results (query range 61002664327616 to > 610026643276160004), cache.getAll returned 5 entries. > expected 8 results but got back 7 results (query range 61002664327616 to > 610026643276160007), cache.getAll returned 8 entries. > Query results: [61002664327616, 610026643276160003, 610026643276160004, > 610026643276160005, 610026643276160005, 610026643276160006, > 610026643276160007] > Please find reproducer attached. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-8900) SqlFieldsQuery provides incorrect result when item size exceeds page size
[ https://issues.apache.org/jira/browse/IGNITE-8900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16531046#comment-16531046 ] Alexey Goncharuk commented on IGNITE-8900: -- TC run shows a JVM crash on }{{org.apache.ignite.internal.processors.cache.persistence.tree.io.AbstractDataPageIO.addRowFragment}} during WAL recovery. Need to investigate further. > SqlFieldsQuery provides incorrect result when item size exceeds page size > - > > Key: IGNITE-8900 > URL: https://issues.apache.org/jira/browse/IGNITE-8900 > Project: Ignite > Issue Type: Bug > Components: sql >Affects Versions: 2.4 >Reporter: Anton Kurbanov >Priority: Blocker > Attachments: Main.java, Node.java > > > Start several server nodes, then start client, execute queries with value > range in where clause. Duplicate entries may be found, some entries may be > missing. > Results as an example: > expected 5 results but got back 3 results (query range 61002664327616 to > 610026643276160004), cache.getAll returned 5 entries. > expected 8 results but got back 7 results (query range 61002664327616 to > 610026643276160007), cache.getAll returned 8 entries. > Query results: [61002664327616, 610026643276160003, 610026643276160004, > 610026643276160005, 610026643276160005, 610026643276160006, > 610026643276160007] > Please find reproducer attached. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-8900) SqlFieldsQuery provides incorrect result when item size exceeds page size
[ https://issues.apache.org/jira/browse/IGNITE-8900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16528699#comment-16528699 ] Alexey Goncharuk commented on IGNITE-8900: -- I've committed a fix and started a TC build. If the run is successful, only need to convert the provided reproducer to a unit-test and add more full API tests with large fragmented entries. > SqlFieldsQuery provides incorrect result when item size exceeds page size > - > > Key: IGNITE-8900 > URL: https://issues.apache.org/jira/browse/IGNITE-8900 > Project: Ignite > Issue Type: Bug > Components: sql >Affects Versions: 2.4 >Reporter: Anton Kurbanov >Priority: Blocker > Attachments: Main.java, Node.java > > > Start several server nodes, then start client, execute queries with value > range in where clause. Duplicate entries may be found, some entries may be > missing. > Results as an example: > expected 5 results but got back 3 results (query range 61002664327616 to > 610026643276160004), cache.getAll returned 5 entries. > expected 8 results but got back 7 results (query range 61002664327616 to > 610026643276160007), cache.getAll returned 8 entries. > Query results: [61002664327616, 610026643276160003, 610026643276160004, > 610026643276160005, 610026643276160005, 610026643276160006, > 610026643276160007] > Please find reproducer attached. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-8900) SqlFieldsQuery provides incorrect result when item size exceeds page size
[ https://issues.apache.org/jira/browse/IGNITE-8900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16528697#comment-16528697 ] Alexey Goncharuk commented on IGNITE-8900: -- Going deeper in the code, the bug is caused by setting link based on {{pageId}} that is written in the page header. When Ignite is running in in-memory mode, entries from different partition IDs may be written to a single page, so we should not read page ID from the page in order to construct a link. Method call sequence: * {{AbstractFreeList#insertDataRow}} - page ID is adjusted according to partition ID * {{WriteRowHandler#addRowFragment}} page ID is correct, but it calls an overloaded method {{addRowFragment}} which accepts only page address, but not page ID * {{addRowFragment}} calls {{AbstractDataPageIO#setLink}} which accepts page address and not page ID. At this point partition ID becomes invalid Note that when an entry is not fragmented, we use another path and construct a link based on {{pageId}}, not page addr. > SqlFieldsQuery provides incorrect result when item size exceeds page size > - > > Key: IGNITE-8900 > URL: https://issues.apache.org/jira/browse/IGNITE-8900 > Project: Ignite > Issue Type: Bug > Components: sql >Affects Versions: 2.4 >Reporter: Anton Kurbanov >Priority: Blocker > Attachments: Main.java, Node.java > > > Start several server nodes, then start client, execute queries with value > range in where clause. Duplicate entries may be found, some entries may be > missing. > Results as an example: > expected 5 results but got back 3 results (query range 61002664327616 to > 610026643276160004), cache.getAll returned 5 entries. > expected 8 results but got back 7 results (query range 61002664327616 to > 610026643276160007), cache.getAll returned 8 entries. > Query results: [61002664327616, 610026643276160003, 610026643276160004, > 610026643276160005, 610026643276160005, 610026643276160006, > 610026643276160007] > Please find reproducer attached. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-8900) SqlFieldsQuery provides incorrect result when item size exceeds page size
[ https://issues.apache.org/jira/browse/IGNITE-8900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16528164#comment-16528164 ] Vladimir Ozerov commented on IGNITE-8900: - The problem is caused by link content - it is impossible to resolve correct partition form a link. Thus, duplicate or missing entries appear. Please see {{ignite-8900-repro}} [1] branch with simplified and stable reproducer. Two nodes, several cache create-destroy cycles. On fifth attempt test fails. Offending key is {{610026643276160002}}. On {{node1}} it resolves to partition {{831}}, on {{node2}} to {{108}}. See debug output in {{H2Tree#getRow}}. [1] https://github.com/apache/ignite/tree/ignite-8900-repro > SqlFieldsQuery provides incorrect result when item size exceeds page size > - > > Key: IGNITE-8900 > URL: https://issues.apache.org/jira/browse/IGNITE-8900 > Project: Ignite > Issue Type: Bug > Components: sql >Affects Versions: 2.4 >Reporter: Anton Kurbanov >Priority: Blocker > Attachments: Main.java, Node.java > > > Start several server nodes, then start client, execute queries with value > range in where clause. Duplicate entries may be found, some entries may be > missing. > Results as an example: > expected 5 results but got back 3 results (query range 61002664327616 to > 610026643276160004), cache.getAll returned 5 entries. > expected 8 results but got back 7 results (query range 61002664327616 to > 610026643276160007), cache.getAll returned 8 entries. > Query results: [61002664327616, 610026643276160003, 610026643276160004, > 610026643276160005, 610026643276160005, 610026643276160006, > 610026643276160007] > Please find reproducer attached. -- This message was sent by Atlassian JIRA (v7.6.3#76005)