[jira] [Updated] (IGNITE-18496) Handle documentation feedback
[ https://issues.apache.org/jira/browse/IGNITE-18496?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] YuJue Li updated IGNITE-18496: -- Component/s: documentation > Handle documentation feedback > - > > Key: IGNITE-18496 > URL: https://issues.apache.org/jira/browse/IGNITE-18496 > Project: Ignite > Issue Type: Task > Components: documentation >Reporter: Igor Gusev >Assignee: Igor Gusev >Priority: Major > Fix For: 2.15 > > Time Spent: 20m > Remaining Estimate: 0h > > We have had bugyard for a while, and there is a lot of useful feedback on > documentation. Its time to go through it and fix all issues. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-18496) Handle documentation feedback
[ https://issues.apache.org/jira/browse/IGNITE-18496?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] YuJue Li updated IGNITE-18496: -- Fix Version/s: 2.15 > Handle documentation feedback > - > > Key: IGNITE-18496 > URL: https://issues.apache.org/jira/browse/IGNITE-18496 > Project: Ignite > Issue Type: Task >Reporter: Igor Gusev >Assignee: Igor Gusev >Priority: Major > Fix For: 2.15 > > Time Spent: 20m > Remaining Estimate: 0h > > We have had bugyard for a while, and there is a lot of useful feedback on > documentation. Its time to go through it and fix all issues. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-19259) [IEP-94] Reimplement cluster restart command to control.sh
YuJue Li created IGNITE-19259: - Summary: [IEP-94] Reimplement cluster restart command to control.sh Key: IGNITE-19259 URL: https://issues.apache.org/jira/browse/IGNITE-19259 Project: Ignite Issue Type: Improvement Components: control.sh Affects Versions: 2.14 Reporter: YuJue Li To decomission ignitevisorcmd.sh we need to move all useful commands to control script. Cluster restart command is used by users to restart the whole cluster so we must provide it via control.sh h4. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-19258) [IEP-94] Reimplement cluster stop command to control.sh
YuJue Li created IGNITE-19258: - Summary: [IEP-94] Reimplement cluster stop command to control.sh Key: IGNITE-19258 URL: https://issues.apache.org/jira/browse/IGNITE-19258 Project: Ignite Issue Type: Improvement Components: control.sh Affects Versions: 2.14 Reporter: YuJue Li To decomission ignitevisorcmd.sh we need to move all useful commands to control script. Cluster stop command is used by users to stop the whole cluster so we must provide it via control.sh h4. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Assigned] (IGNITE-19257) The cache is not destroyed if snapshot restore start cache stage failed.
[ https://issues.apache.org/jira/browse/IGNITE-19257?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Nikita Amelchev reassigned IGNITE-19257: Assignee: Nikita Amelchev > The cache is not destroyed if snapshot restore start cache stage failed. > > > Key: IGNITE-19257 > URL: https://issues.apache.org/jira/browse/IGNITE-19257 > Project: Ignite > Issue Type: Bug >Reporter: Nikita Amelchev >Assignee: Nikita Amelchev >Priority: Major > Labels: ise > > Add the {{RESTORE_CACHE_GROUP_SNAPSHOT_START}} stage to the > {{IncrementalSnapshotTest#testStagesFail}} test to reproduce the fail. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-19178) Add Sonar to Ignite project to analyze sources
[ https://issues.apache.org/jira/browse/IGNITE-19178?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17709727#comment-17709727 ] Maxim Muzafarov commented on IGNITE-19178: -- [~NSAmelchev] thank you for the review. Merged to the master branch. Examples of Sonar Analysis: https://sonarcloud.io/summary/overall?id=apache_ignite A PR Analysis: https://github.com/apache/ignite/pull/10629 > Add Sonar to Ignite project to analyze sources > -- > > Key: IGNITE-19178 > URL: https://issues.apache.org/jira/browse/IGNITE-19178 > Project: Ignite > Issue Type: Task > Components: build >Reporter: Maxim Muzafarov >Assignee: Maxim Muzafarov >Priority: Major > Fix For: 2.16 > > Time Spent: 20m > Remaining Estimate: 0h > > Sonar is a code quality and security tool that is free to open-source > projects and recommended by the INFRA team the link for documentation: > https://cwiki.apache.org/confluence/display/INFRA/SonarCloud+for+ASF+projects > Despite in commonly used by many of the ASF projects, it can have the > following benefits for us: > - visualise simple problems for newcomers to work on; > - see the trends in the source code; > - add an extra layer of static code analysis; > The INFRA ticket: > https://issues.apache.org/jira/browse/INFRA-24415 -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Resolved] (IGNITE-19254) Move ignite-ssh to extensions
[ https://issues.apache.org/jira/browse/IGNITE-19254?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Nikolay Izhikov resolved IGNITE-19254. -- Resolution: Fixed > Move ignite-ssh to extensions > - > > Key: IGNITE-19254 > URL: https://issues.apache.org/jira/browse/IGNITE-19254 > Project: Ignite > Issue Type: Sub-task >Reporter: Nikolay Izhikov >Assignee: Nikolay Izhikov >Priority: Major > Fix For: 2.15 > > Time Spent: 20m > Remaining Estimate: 0h > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-19254) Move ignite-ssh to extensions
[ https://issues.apache.org/jira/browse/IGNITE-19254?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Nikolay Izhikov updated IGNITE-19254: - Fix Version/s: 2.15 > Move ignite-ssh to extensions > - > > Key: IGNITE-19254 > URL: https://issues.apache.org/jira/browse/IGNITE-19254 > Project: Ignite > Issue Type: Sub-task >Reporter: Nikolay Izhikov >Assignee: Nikolay Izhikov >Priority: Major > Fix For: 2.15 > > Time Spent: 20m > Remaining Estimate: 0h > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Assigned] (IGNITE-19254) Move ignite-ssh to extensions
[ https://issues.apache.org/jira/browse/IGNITE-19254?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Nikolay Izhikov reassigned IGNITE-19254: Assignee: Nikolay Izhikov > Move ignite-ssh to extensions > - > > Key: IGNITE-19254 > URL: https://issues.apache.org/jira/browse/IGNITE-19254 > Project: Ignite > Issue Type: Sub-task >Reporter: Nikolay Izhikov >Assignee: Nikolay Izhikov >Priority: Major > Time Spent: 20m > Remaining Estimate: 0h > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-19254) Move ignite-ssh to extensions
[ https://issues.apache.org/jira/browse/IGNITE-19254?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17709723#comment-17709723 ] Ignite TC Bot commented on IGNITE-19254: {panel:title=Branch: [pull/10635/head] Base: [master] : Possible Blockers (5)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1} {color:#d04437}Cache 2{color} [[tests 1|https://ci2.ignite.apache.org/viewLog.html?buildId=7127653]] * IgniteCacheTestSuite2: GridCachePartitionedTxMultiThreadedSelfTest.testOptimisticReadCommittedCommitMultithreaded - Test has low fail rate in base branch 0,0% and is not flaky {color:#d04437}Start Nodes{color} [[tests 0 Exit Code , Failure on metric |https://ci2.ignite.apache.org/viewLog.html?buildId=7127739]] {color:#d04437}Snapshots{color} [[tests 1|https://ci2.ignite.apache.org/viewLog.html?buildId=7127733]] * IgniteSnapshotTestSuite: EncryptedSnapshotTest.testSnapshotRestoringFailsWithOtherMasterKey[encryption=true, onlyPrimay=false] - Test has low fail rate in base branch 0,0% and is not flaky {color:#d04437}PDS 4{color} [[tests 1|https://ci2.ignite.apache.org/viewLog.html?buildId=7127709]] * IgnitePdsTestSuite4: IgniteClusterActivateDeactivateTestWithPersistenceAndMemoryReuse.testActivateInReadOnlySimple_5_Servers - Test has low fail rate in base branch 0,0% and is not flaky {color:#d04437}Queries 3 (lazy=true){color} [[tests 1|https://ci2.ignite.apache.org/viewLog.html?buildId=7127727]] * IgniteBinaryCacheQueryLazyTestSuite3: CacheEventsCdcTest.testCreateDropSQLTable[persistence=false] - Test has low fail rate in base branch 0,0% and is not flaky {panel} {panel:title=Branch: [pull/10635/head] Base: [master] : No new tests found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1}{panel} [TeamCity *-- Run :: All* Results|https://ci2.ignite.apache.org/viewLog.html?buildId=7127755buildTypeId=IgniteTests24Java8_RunAll] > Move ignite-ssh to extensions > - > > Key: IGNITE-19254 > URL: https://issues.apache.org/jira/browse/IGNITE-19254 > Project: Ignite > Issue Type: Sub-task >Reporter: Nikolay Izhikov >Priority: Major > Time Spent: 10m > Remaining Estimate: 0h > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-19257) The cache is not destroyed if snapshot restore start cache stage failed.
Nikita Amelchev created IGNITE-19257: Summary: The cache is not destroyed if snapshot restore start cache stage failed. Key: IGNITE-19257 URL: https://issues.apache.org/jira/browse/IGNITE-19257 Project: Ignite Issue Type: Bug Reporter: Nikita Amelchev Add the {{RESTORE_CACHE_GROUP_SNAPSHOT_START}} stage to the {{IncrementalSnapshotTest#testStagesFail}} test to reproduce the fail. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-19256) .NET: Thin 3.0: Document MemberInit projections in LINQ
Pavel Tupitsyn created IGNITE-19256: --- Summary: .NET: Thin 3.0: Document MemberInit projections in LINQ Key: IGNITE-19256 URL: https://issues.apache.org/jira/browse/IGNITE-19256 Project: Ignite Issue Type: Improvement Components: platforms Affects Versions: 3.0.0-beta1 Reporter: Pavel Tupitsyn Assignee: Sergey Stronchinskiy Fix For: 3.0.0-beta2 -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-19256) .NET: Thin 3.0: Document MemberInit projections in LINQ
[ https://issues.apache.org/jira/browse/IGNITE-19256?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Pavel Tupitsyn updated IGNITE-19256: Description: Update https://github.com/apache/ignite-3/blob/main/modules/platforms/dotnet/Apache.Ignite/Internal/Linq/README.md with changes made in IGNITE-18120 > .NET: Thin 3.0: Document MemberInit projections in LINQ > --- > > Key: IGNITE-19256 > URL: https://issues.apache.org/jira/browse/IGNITE-19256 > Project: Ignite > Issue Type: Improvement > Components: platforms >Affects Versions: 3.0.0-beta1 >Reporter: Pavel Tupitsyn >Assignee: Sergey Stronchinskiy >Priority: Major > Labels: .NET, LINQ, ignite-3 > Fix For: 3.0.0-beta2 > > > Update > https://github.com/apache/ignite-3/blob/main/modules/platforms/dotnet/Apache.Ignite/Internal/Linq/README.md > with changes made in IGNITE-18120 -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-18120) .NET: Thin 3.0: Allow arbitrary MemberInit projections in LINQ
[ https://issues.apache.org/jira/browse/IGNITE-18120?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Pavel Tupitsyn updated IGNITE-18120: Ignite Flags: (was: Docs Required,Release Notes Required) > .NET: Thin 3.0: Allow arbitrary MemberInit projections in LINQ > -- > > Key: IGNITE-18120 > URL: https://issues.apache.org/jira/browse/IGNITE-18120 > Project: Ignite > Issue Type: Improvement > Components: platforms >Reporter: Pavel Tupitsyn >Assignee: Sergey Stronchinskiy >Priority: Major > Labels: .NET, LINQ, ignite-3 > Fix For: 3.0.0-beta2 > > Time Spent: 1h 40m > Remaining Estimate: 0h > > Ignite LINQ provider allows anonymous type projections: > {code} > query.Select(emp => new {Id = emp.Key, Name = emp.Value.Name}); > {code} > However, it does not work with a custom class: > {code} > query.Select(emp => new Foo {Id = emp.Key, Name = emp.Value.Name}); > {code} > throws exception: > {code} > System.NotSupportedException : The expression 'new Foo() {Id = [x].Key}' > (type: System.Linq.Expressions.MemberInitExpression) is not supported. > {code} > Add VisitMemberInit overload to CacheQueryExpressionVisitor to support this > scenario. See linked SO page for more details - there is a proposed fix as > well. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Resolved] (IGNITE-18120) .NET: Thin 3.0: Allow arbitrary MemberInit projections in LINQ
[ https://issues.apache.org/jira/browse/IGNITE-18120?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Pavel Tupitsyn resolved IGNITE-18120. - Fix Version/s: 3.0.0-beta2 Resolution: Fixed > .NET: Thin 3.0: Allow arbitrary MemberInit projections in LINQ > -- > > Key: IGNITE-18120 > URL: https://issues.apache.org/jira/browse/IGNITE-18120 > Project: Ignite > Issue Type: Improvement > Components: platforms >Reporter: Pavel Tupitsyn >Assignee: Sergey Stronchinskiy >Priority: Major > Labels: .NET, LINQ, ignite-3 > Fix For: 3.0.0-beta2 > > Time Spent: 1h 40m > Remaining Estimate: 0h > > Ignite LINQ provider allows anonymous type projections: > {code} > query.Select(emp => new {Id = emp.Key, Name = emp.Value.Name}); > {code} > However, it does not work with a custom class: > {code} > query.Select(emp => new Foo {Id = emp.Key, Name = emp.Value.Name}); > {code} > throws exception: > {code} > System.NotSupportedException : The expression 'new Foo() {Id = [x].Key}' > (type: System.Linq.Expressions.MemberInitExpression) is not supported. > {code} > Add VisitMemberInit overload to CacheQueryExpressionVisitor to support this > scenario. See linked SO page for more details - there is a proposed fix as > well. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-18120) .NET: Thin 3.0: Allow arbitrary MemberInit projections in LINQ
[ https://issues.apache.org/jira/browse/IGNITE-18120?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17709707#comment-17709707 ] Pavel Tupitsyn commented on IGNITE-18120: - Looks good. Merged to main: 54781ef08e6b66fefaca13259fc888daef5ffe8f > .NET: Thin 3.0: Allow arbitrary MemberInit projections in LINQ > -- > > Key: IGNITE-18120 > URL: https://issues.apache.org/jira/browse/IGNITE-18120 > Project: Ignite > Issue Type: Improvement > Components: platforms >Reporter: Pavel Tupitsyn >Assignee: Sergey Stronchinskiy >Priority: Major > Labels: .NET, LINQ, ignite-3 > Time Spent: 1h 40m > Remaining Estimate: 0h > > Ignite LINQ provider allows anonymous type projections: > {code} > query.Select(emp => new {Id = emp.Key, Name = emp.Value.Name}); > {code} > However, it does not work with a custom class: > {code} > query.Select(emp => new Foo {Id = emp.Key, Name = emp.Value.Name}); > {code} > throws exception: > {code} > System.NotSupportedException : The expression 'new Foo() {Id = [x].Key}' > (type: System.Linq.Expressions.MemberInitExpression) is not supported. > {code} > Add VisitMemberInit overload to CacheQueryExpressionVisitor to support this > scenario. See linked SO page for more details - there is a proposed fix as > well. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-19255) Fix broken unit tests in distribution-zones module
[ https://issues.apache.org/jira/browse/IGNITE-19255?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksandr Polovtcev updated IGNITE-19255: - Description: In IGNITE-19105 I've changed some internal shenanigans of the MetaStorageManager (without affecting its API in any way). After that, nearly all unit tests in the {{distribution-zones}} module started to fail. Turns out it happened because of extensive mock usages that emulate behavior of the Meta Storage. So I decided to replace it with the {{StandaloneMetaStorageManager}} implementation and all hell broke loose: many tests emulate Meta Storage incorrectly, a lot of races appeared, because many methods became truly asynchronous. This situation is very frustrating: a different component internals were changed with no API changes and a completely unrelated module is not longer able to pass its tests. Though I fixed most of the failures, some tests are still failing and I'm going to try to describe, what's wrong with them: *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationAfterScaleUpTriggeredOnNewCluster}}* - this test tests a scenario when we start a node after logical topology was updated. I don't know how realistic is this scenario, but the problem is that "data nodes" don't get populated with the logical topology nodes on {{distributionZoneManager}} start, because {{scheduleTimers}} method, that get's invoked from the Meta Storage Watch, doesn't go inside the {{if (!addedNodes.isEmpty() && autoAdjustScaleUp != INFINITE_TIMER_VALUE)}} branch. *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationForDefaultZoneAfterScaleUpTriggered}}* - same issue as above. *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationForDefaultZoneAfterScaleDownTriggered}}* - same issue as above. *{{DistributionZoneManagerScaleUpTest#testUpdateZoneScaleUpTriggersDataNodePropagation}}* - this test fails with the following assertion error: _Expected revision that is greater or equal to already seen meta storage events._. This is because TestConfigurationStorage does not use the same revision as the Meta Storage, therefore their revisions can't be compared directly. This should either be converted to an integration test or it should use `DistributedConfigurationStrorage` instead. *{{DistributionZoneManagerScaleUpTest#testUpdateZoneScaleDownTriggersDataNodePropagation}}* - same issue as above. *{{DistributionZoneManagerScaleUpTest#testScaleUpDidNotChangeDataNodesWhenTriggerKeyWasConcurrentlyChanged}}* - fails, because I had to comment the part which emulates a concurrent Meta Storage update. Nothing is wrong with this test, we simply need to invent a different way to emulate concurrent Meta Storage updates. *{{DistributionZoneManagerScaleUpTest#testScaleDownDidNotChangeDataNodesWhenTriggerKeyWasConcurrentlyChanged}}* - same issue as above. *{{DistributionZoneManagerWatchListenerTest#testDataNodesOfDefaultZoneUpdatedOnWatchListenerEvent}}* - this test is flaky, probably due to some races between Watch and Configuration Listener execution (sometimes a retry on {{invoke}} happens and {{Mockito#verify}} fails). was: In IGNITE-19105 I've changed some internal shenanigans of the MetaStorageManager (without affecting its API in any way). After that, nearly all unit tests in the {{distribution-zones}} module started to fail. Turns out it happened because of extensive mock usages that emulate behavior of the Meta Storage. So I decided to replace it with the {{StandaloneMetaStorageManager}} implementation and all hell broke loose: many tests emulate Meta Storage incorrectly, a lot of races appeared, because many methods became truly asynchronous. This situation is very frustrating: a different component internals were changed with no API changes and a completely unrelated module is not longer able to pass its tests. Though I fixed most of the failures, some tests are still failing and I'm going to try to describe, what's wrong with them: *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationAfterScaleUpTriggeredOnNewCluster}}* - this test tests a scenario when we start a node after logical topology was updated. I don't know how realistic is this scenario, but the problem is that "data nodes" don't get populated with the logical topology nodes on {{distributionZoneManager}} start, because {{scheduleTimers}} method, that get's invoked from the Meta Storage Watch, doesn't go inside the {{if (!addedNodes.isEmpty() && autoAdjustScaleUp != INFINITE_TIMER_VALUE)}} branch. *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationForDefaultZoneAfterScaleUpTriggered}}* - same issue as above. *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationForDefaultZoneAfterScaleDownTriggered}}* - same issue as above. *{{DistributionZoneManagerScaleUpTest#testUpdateZoneScaleUpTriggersDataNodePropagation}}* - this test
[jira] [Assigned] (IGNITE-19255) Fix broken unit tests in distribution-zones module
[ https://issues.apache.org/jira/browse/IGNITE-19255?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksandr Polovtcev reassigned IGNITE-19255: Assignee: Mirza Aliev > Fix broken unit tests in distribution-zones module > -- > > Key: IGNITE-19255 > URL: https://issues.apache.org/jira/browse/IGNITE-19255 > Project: Ignite > Issue Type: Bug >Reporter: Aleksandr Polovtcev >Assignee: Mirza Aliev >Priority: Blocker > Labels: ignite-3 > > In IGNITE-19105 I've changed some internal shenanigans of the > MetaStorageManager (without affecting its API in any way). After that, nearly > all unit tests in the {{distribution-zones}} module started to fail. Turns > out it happened because of extensive mock usages that emulate behavior of the > Meta Storage. So I decided to replace it with the > {{StandaloneMetaStorageManager}} implementation and all hell broke loose: > many tests emulate Meta Storage incorrectly, a lot of races appeared, because > many methods became truly asynchronous. > This situation is very frustrating: a different component internals were > changed with no API changes and a completely unrelated module is not longer > able to pass its tests. Though I fixed most of the failures, some tests are > still failing and I'm going to try to describe, what's wrong with them: > *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationAfterScaleUpTriggeredOnNewCluster}}* > - this test tests a scenario when we start a node after logical topology was > updated. I don't know how realistic is this scenario, but the problem is that > "data nodes" don't get populated with the logical topology nodes on > {{distributionZoneManager}} start, because {{scheduleTimers}} method, that > get's invoked from the Meta Storage Watch, doesn't go inside the {{if > (!addedNodes.isEmpty() && autoAdjustScaleUp != INFINITE_TIMER_VALUE)}} branch. > *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationForDefaultZoneAfterScaleUpTriggered}}* > - same issue as above. > *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationForDefaultZoneAfterScaleDownTriggered}}* > - same issue as above. > *{{DistributionZoneManagerScaleUpTest#testUpdateZoneScaleUpTriggersDataNodePropagation}}* > - this test fails with the following assertion error: _Expected revision > that is greater or equal to already seen meta storage events._. This is > because TestConfigurationStorage does not use the same revision as the Meta > Storage, therefore their revisions can't be compared directly. This should > either be converted to an integration test or it should use > `DistributedConfigurationStrorage` instead. > *{{DistributionZoneManagerScaleUpTest#testUpdateZoneScaleDownTriggersDataNodePropagation}}* > - same issue as above. > *{{DistributionZoneManagerScaleUpTest#testScaleUpDidNotChangeDataNodesWhenTriggerKeyWasConcurrentlyChanged}}* > - fails, because I had to comment the part which emulates a concurrent Meta > Storage update. Nothing is wrong with this test, we simply need to invent a > different way to emulate concurrent Meta Storage updates. > *{{DistributionZoneManagerScaleUpTest#testScaleDownDidNotChangeDataNodesWhenTriggerKeyWasConcurrentlyChanged}}* > - same issue as above. > *{{DistributionZoneManagerWatchListenerTest#testDataNodesOfDefaultZoneUpdatedOnWatchListenerEvent}}* > - this test is flaky, probably due to some races between Watch and > Configuration Listener execution (sometimes a retry on {{invoke}} happens and > {{Mockito#verify}} fails). -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-19255) Fix broken unit tests in distribution-zones module
[ https://issues.apache.org/jira/browse/IGNITE-19255?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksandr Polovtcev updated IGNITE-19255: - Description: In IGNITE-19105 I've changed some internal shenanigans of the MetaStorageManager (without affecting its API in any way). After that, nearly all unit tests in the {{distribution-zones}} module started to fail. Turns out it happened because of extensive mock usages that emulate behavior of the Meta Storage. So I decided to replace it with the {{StandaloneMetaStorageManager}} implementation and all hell broke loose: many tests emulate Meta Storage incorrectly, a lot of races appeared, because many methods became truly asynchronous. This situation is very frustrating: a different component internals were changed with no API changes and a completely unrelated module is not longer able to pass its tests. Though I fixed most of the failures, some tests are still failing and I'm going to try to describe, what's wrong with them: *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationAfterScaleUpTriggeredOnNewCluster}}* - this test tests a scenario when we start a node after logical topology was updated. I don't know how realistic is this scenario, but the problem is that "data nodes" don't get populated with the logical topology nodes on {{distributionZoneManager}} start, because {{scheduleTimers}} method, that get's invoked from the Meta Storage Watch, doesn't go inside the {{if (!addedNodes.isEmpty() && autoAdjustScaleUp != INFINITE_TIMER_VALUE)}} branch. *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationForDefaultZoneAfterScaleUpTriggered}}* - same issue as above. *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationForDefaultZoneAfterScaleDownTriggered}}* - same issue as above. *{{DistributionZoneManagerScaleUpTest#testUpdateZoneScaleUpTriggersDataNodePropagation}}* - this test fails with the following assertion error: _Expected revision that is greater or equal to already seen meta storage events._. This is because TestConfigurationStorage does not use the same revision as the Meta Storage, therefore their revisions can't be compared directly. This should either be converted to an integration test or it should use `DistributedConfigurationStrorage` instead. *{{DistributionZoneManagerScaleUpTest#testUpdateZoneScaleDownTriggersDataNodePropagation}}* - same issue as above. *{{DistributionZoneManagerWatchListenerTest#testDataNodesOfDefaultZoneUpdatedOnWatchListenerEvent}}* - this test is flaky, probably due to some races between Watch and Configuration Listener execution (sometimes a retry on {{invoke}} happens and {{Mockito#verify}} fails). was: In IGNITE-19105 I've changed some internal shenanigans of the MetaStorageManager (without affecting its API in any way). After that, nearly all unit tests in the {{distribution-zones}} module started to fail. Turns out it happened because of extensive mock usages that emulate behavior of the Meta Storage. So I decided to replace it with the {{StandaloneMetaStorageManager}} implementation and all hell broke loose: many tests emulate Meta Storage incorrectly, a lot of races appeared, because many methods became truly asynchronous. This situation is very frustrating: a different component internals were changed with no API changes and a completely unrelated module is not longer able to pass its tests. Though I fixed most of the failures, some tests are still failing and I'm going to try to describe, what's wrong with them: *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationAfterScaleUpTriggeredOnNewCluster}}* - this test tests a scenario when we start a node after logical topology was updated. I don't know how realistic is this scenario, but the problem is that "data nodes" don't get populated with the logical topology nodes on {{distributionZoneManager}} start, because {{scheduleTimers}} method, that get's invoked from the Meta Storage Watch, doesn't go inside the {{if (!addedNodes.isEmpty() && autoAdjustScaleUp != INFINITE_TIMER_VALUE)}} branch. *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationForDefaultZoneAfterScaleUpTriggered}}* - same issue as above. *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationForDefaultZoneAfterScaleDownTriggered}}* - same issue as above. *{{DistributionZoneManagerScaleUpTest#testUpdateZoneScaleUpTriggersDataNodePropagation}}* - this test fails with the following assertion error: _Expected revision that is greater or equal to already seen meta storage events._. This is because TestConfigurationStorage does not use the same revision as the Meta Storage, therefore their revisions can't be compared directly. This should either be converted to an integration test or it should use `DistributedConfigurationStrorage` instead.
[jira] [Updated] (IGNITE-19255) Fix broken unit tests in distribution-zones module
[ https://issues.apache.org/jira/browse/IGNITE-19255?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksandr Polovtcev updated IGNITE-19255: - Description: In IGNITE-19105 I've changed some internal shenanigans of the MetaStorageManager (without affecting its API in any way). After that, nearly all unit tests in the {{distribution-zones}} module started to fail. Turns out it happened because of extensive mock usages that emulate behavior of the Meta Storage. So I decided to replace it with the {{StandaloneMetaStorageManager}} implementation and all hell broke loose: many tests emulate Meta Storage incorrectly, a lot of races appeared, because many methods became truly asynchronous. This situation is very frustrating: a different component internals were changed with no API changes and a completely unrelated module is not longer able to pass its tests. Though I fixed most of the failures, some tests are still failing and I'm going to try to describe, what's wrong with them: *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationAfterScaleUpTriggeredOnNewCluster}}* - this test tests a scenario when we start a node after logical topology was updated. I don't know how realistic is this scenario, but the problem is that "data nodes" don't get populated with the logical topology nodes on {{distributionZoneManager}} start, because {{scheduleTimers}} method, that get's invoked from the Meta Storage Watch, doesn't go inside the {{if (!addedNodes.isEmpty() && autoAdjustScaleUp != INFINITE_TIMER_VALUE)}} branch. *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationForDefaultZoneAfterScaleUpTriggered}}* - same issue as above. *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationForDefaultZoneAfterScaleDownTriggered}}* - same issue as above. *{{DistributionZoneManagerScaleUpTest#testUpdateZoneScaleUpTriggersDataNodePropagation}}* - this test fails with the following assertion error: _Expected revision that is greater or equal to already seen meta storage events._. This is because TestConfigurationStorage does not use the same revision as the Meta Storage, therefore their revisions can't be compared directly. This should either be converted to an integration test or it should use `DistributedConfigurationStrorage` instead. *{{DistributionZoneManagerWatchListenerTest#testDataNodesOfDefaultZoneUpdatedOnWatchListenerEvent}}* - this test is flaky, probably due to some races between Watch and Configuration Listener execution (sometimes a retry on {{invoke}} happens and {{Mockito#verify}} fails). was: In IGNITE-19105 I've changed some internal shenanigans of the MetaStorageManager (without affecting its API in any way). After that, nearly all unit tests in the {{distribution-zones}} module started to fail. Turns out it happened because of extensive mock usages that emulate behavior of the Meta Storage. So I decided to replace it with the {{StandaloneMetaStorageManager}} implementation and all hell broke loose: many tests emulate Meta Storage incorrectly, a lot of races appeared, because many methods became truly asynchronous. This situation is very frustrating: a different component internals were changed with no API changes and a completely unrelated module is not longer able to pass its tests. Though I fixed most of the failures, some tests are still failing and I'm going to try to describe, what's wrong with them: *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationAfterScaleUpTriggeredOnNewCluster}}* - this test tests a scenario when we start a node after logical topology was updated. I don't know how realistic is this scenario, but the problem is that "data nodes" don't get populated with the logical topology nodes on {{distributionZoneManager}} start, because {{scheduleTimers}} method, that get's invoked from the Meta Storage Watch, doesn't go inside the {{if (!addedNodes.isEmpty() && autoAdjustScaleUp != INFINITE_TIMER_VALUE)}} branch. *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationForDefaultZoneAfterScaleUpTriggered}}* - same issue as above. *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationForDefaultZoneAfterScaleDownTriggered}}* - same issue as above. *{{DistributionZoneManagerScaleUpTest#testUpdateZoneScaleUpTriggersDataNodePropagation}} - this test fails with the following assertion error: _Expected revision that is greater or equal to already seen meta storage events._. This is because TestConfigurationStorage does not use the same revision as the Meta Storage, therefore their revisions can't be compared directly. This should either be converted to an integration test or it should use `DistributedConfigurationStrorage` instead. *{{DistributionZoneManagerWatchListenerTest#testDataNodesOfDefaultZoneUpdatedOnWatchListenerEvent}}* - this test is flaky, probably due to some races between Watch and Configuration
[jira] [Updated] (IGNITE-19255) Fix broken unit tests in distribution-zones module
[ https://issues.apache.org/jira/browse/IGNITE-19255?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksandr Polovtcev updated IGNITE-19255: - Description: In IGNITE-19105 I've changed some internal shenanigans of the MetaStorageManager (without affecting its API in any way). After that, nearly all unit tests in the {{distribution-zones}} module started to fail. Turns out it happened because of extensive mock usages that emulate behavior of the Meta Storage. So I decided to replace it with the {{StandaloneMetaStorageManager}} implementation and all hell broke loose: many tests emulate Meta Storage incorrectly, a lot of races appeared, because many methods became truly asynchronous. This situation is very frustrating: a different component internals were changed with no API changes and a completely unrelated module is not longer able to pass its tests. Though I fixed most of the failures, some tests are still failing and I'm going to try to describe, what's wrong with them: *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationAfterScaleUpTriggeredOnNewCluster}}* - this test tests a scenario when we start a node after logical topology was updated. I don't know how realistic is this scenario, but the problem is that "data nodes" don't get populated with the logical topology nodes on {{distributionZoneManager}} start, because {{scheduleTimers}} method, that get's invoked from the Meta Storage Watch, doesn't go inside the {{if (!addedNodes.isEmpty() && autoAdjustScaleUp != INFINITE_TIMER_VALUE)}} branch. *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationForDefaultZoneAfterScaleUpTriggered}}* - same issue as above. *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationForDefaultZoneAfterScaleDownTriggered}}* - same issue as above. *{{DistributionZoneManagerScaleUpTest#testUpdateZoneScaleUpTriggersDataNodePropagation}} - this test fails with the following assertion error: _Expected revision that is greater or equal to already seen meta storage events._. This is because TestConfigurationStorage does not use the same revision as the Meta Storage, therefore their revisions can't be compared directly. This should either be converted to an integration test or it should use `DistributedConfigurationStrorage` instead. *{{DistributionZoneManagerWatchListenerTest#testDataNodesOfDefaultZoneUpdatedOnWatchListenerEvent}}* - this test is flaky, probably due to some races between Watch and Configuration Listener execution (sometimes a retry on {{invoke}} happens and {{Mockito#verify}} fails). was: In IGNITE-19105 I've changed some internal shenanigans of the MetaStorageManager (without affecting its API in any way). After that, nearly all unit tests in the {{distribution-zones}} module started to fail. Turns out it happened because of extensive mock usages that emulate behavior of the Meta Storage. So I decided to replace it with the {{StandaloneMetaStorageManager}} implementation and all hell broke loose: many tests emulate Meta Storage incorrectly, a lot of races appeared, because many methods became truly asynchronous. This situation is very frustrating: a different component internals were changed with no API changes and a completely unrelated module is not longer able to pass its tests. Though I fixed most of the failures, some tests are still failing and I'm going to try to describe, what's wrong with them: *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationAfterScaleUpTriggeredOnNewCluster}}* - this test tests a scenario when we start a node after logical topology was updated. I don't know how realistic is this scenario, but the problem is that "data nodes" don't get populated with the logical topology nodes on {{distributionZoneManager}} start, because {{scheduleTimers}} method, that get's invoked from the Meta Storage Watch, doesn't go inside the {{if (!addedNodes.isEmpty() && autoAdjustScaleUp != INFINITE_TIMER_VALUE)}} branch. *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationForDefaultZoneAfterScaleUpTriggered}}* - same issue as above. *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationForDefaultZoneAfterScaleDownTriggered}}* - same issue as above. *{{DistributionZoneManagerWatchListenerTest#testDataNodesOfDefaultZoneUpdatedOnWatchListenerEvent}}* - this test is flaky, probably due to some races between Watch and Configuration Listener execution (sometimes a retry on {{invoke}} happens and {{Mockito#verify}} fails). > Fix broken unit tests in distribution-zones module > -- > > Key: IGNITE-19255 > URL: https://issues.apache.org/jira/browse/IGNITE-19255 > Project: Ignite > Issue Type: Bug >Reporter: Aleksandr Polovtcev >Priority: Blocker > Labels: ignite-3 > > In IGNITE-19105 I've
[jira] [Updated] (IGNITE-17842) .NET: LINQ GroupBy with anonymous type produces invalid SQL
[ https://issues.apache.org/jira/browse/IGNITE-17842?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Pavel Tupitsyn updated IGNITE-17842: Fix Version/s: (was: 2.15) > .NET: LINQ GroupBy with anonymous type produces invalid SQL > --- > > Key: IGNITE-17842 > URL: https://issues.apache.org/jira/browse/IGNITE-17842 > Project: Ignite > Issue Type: Bug > Components: platforms >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Major > Labels: .NET > > To reproduce, change *TestGroupBy* like this: > {code} > CollectionAssert.AreEquivalent(new[] { 1000, 1001 }, > persons.GroupBy(x => new { I0 = x.Value.OrganizationId > }).Select(x => x.Key.I0).ToArray()); > {code} > Result: > {code} > Apache.Ignite.Core.Common.IgniteException : Failed to parse query. Column > "_T0.I0" not found; SQL statement: > select _T0.I0 from PERSON_ORG_SCHEMA.Person as _T0 group by > (_T0.ORGANIZATIONID) > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-17550) .NET: SslStreamFactory does not dispose X509Certificate2
[ https://issues.apache.org/jira/browse/IGNITE-17550?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Pavel Tupitsyn updated IGNITE-17550: Fix Version/s: (was: 2.15) > .NET: SslStreamFactory does not dispose X509Certificate2 > > > Key: IGNITE-17550 > URL: https://issues.apache.org/jira/browse/IGNITE-17550 > Project: Ignite > Issue Type: Bug > Components: platforms, thin client >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Major > > See > https://ayende.com/blog/198081-A/managing-the-most-dangerous-constructor-ever, > https://snede.net/the-most-dangerous-constructor-in-net/ -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-19255) Fix broken unit tests in distribution-zones module
[ https://issues.apache.org/jira/browse/IGNITE-19255?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksandr Polovtcev updated IGNITE-19255: - Description: In IGNITE-19105 I've changed some internal shenanigans of the MetaStorageManager (without affecting its API in any way). After that, nearly all unit tests in the {{distribution-zones}} module started to fail. Turns out it happened because of extensive mock usages that emulate behavior of the Meta Storage. So I decided to replace it with the {{StandaloneMetaStorageManager}} implementation and all hell broke loose: many tests emulate Meta Storage incorrectly, a lot of races appeared, because many methods became truly asynchronous. This situation is very frustrating: a different component internals were changed with no API changes and a completely unrelated module is not longer able to pass its tests. Though I fixed most of the failures, some tests are still failing and I'm going to try to describe, what's wrong with them: *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationAfterScaleUpTriggeredOnNewCluster}}* - this test tests a scenario when we start a node after logical topology was updated. I don't know how realistic is this scenario, but the problem is that "data nodes" don't get populated with the logical topology nodes on {{distributionZoneManager}} start, because {{scheduleTimers}} method, that get's invoked from the Meta Storage Watch, doesn't go inside the {{if (!addedNodes.isEmpty() && autoAdjustScaleUp != INFINITE_TIMER_VALUE)}} branch. *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationForDefaultZoneAfterScaleUpTriggered}}* - same issue as above. *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationForDefaultZoneAfterScaleDownTriggered}}* - same issue as above. *{{DistributionZoneManagerWatchListenerTest#testDataNodesOfDefaultZoneUpdatedOnWatchListenerEvent}}* - this test is flaky, probably due to some races between Watch and Configuration Listener execution (sometimes a retry on {{invoke}} happens and {{Mockito#verify}} fails). was: In IGNITE-19105 I've changed some internal shenanigans of the MetaStorageManager (without affecting its API in any way). After that, nearly all unit tests in the {{distribution-zones}} module started to fail. Turns out it happened because of extensive mock usages that emulate behavior of the Meta Storage. So I decided to replace it with the {{StandaloneMetaStorageManager}} implementation and all hell broke loose: many tests emulate Meta Storage incorrectly, a lot of races appeared, because many methods became truly asynchronous. This situation is very frustrating: a different component internals were changed with no API changes and a completely unrelated module is not longer able to pass its tests. Though I fixed most of the failures, some tests are still failing and I'm going to try to describe, what's wrong with them: *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationAfterScaleUpTriggeredOnNewCluster}}* - this test tests a scenario when we start a node after logical topology was updated. I don't know how realistic is this scenario, but the problem is that "data nodes" don't get populated with the logical topology nodes on {{distributionZoneManager}} start, because {{scheduleTimers}} method, that get's invoked from the Meta Storage Watch, doesn't go inside the {{if (!addedNodes.isEmpty() && autoAdjustScaleUp != INFINITE_TIMER_VALUE)}} branch. *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationForDefaultZoneAfterScaleUpTriggered}}* - same issue as above. *{{DistributionZoneManagerWatchListenerTest#testDataNodesOfDefaultZoneUpdatedOnWatchListenerEvent}}* - this test is flaky, probably due to some races between Watch and Configuration Listener execution (sometimes a retry on {{invoke}} happens and {{Mockito#verify}} fails). > Fix broken unit tests in distribution-zones module > -- > > Key: IGNITE-19255 > URL: https://issues.apache.org/jira/browse/IGNITE-19255 > Project: Ignite > Issue Type: Bug >Reporter: Aleksandr Polovtcev >Priority: Blocker > Labels: ignite-3 > > In IGNITE-19105 I've changed some internal shenanigans of the > MetaStorageManager (without affecting its API in any way). After that, nearly > all unit tests in the {{distribution-zones}} module started to fail. Turns > out it happened because of extensive mock usages that emulate behavior of the > Meta Storage. So I decided to replace it with the > {{StandaloneMetaStorageManager}} implementation and all hell broke loose: > many tests emulate Meta Storage incorrectly, a lot of races appeared, because > many methods became truly asynchronous. > This situation is very frustrating: a different component internals were > changed
[jira] [Updated] (IGNITE-19255) Fix broken unit tests in distribution-zones module
[ https://issues.apache.org/jira/browse/IGNITE-19255?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksandr Polovtcev updated IGNITE-19255: - Description: In IGNITE-19105 I've changed some internal shenanigans of the MetaStorageManager (without affecting its API in any way). After that, nearly all unit tests in the {{distribution-zones}} module started to fail. Turns out it happened because of extensive mock usages that emulate behavior of the Meta Storage. So I decided to replace it with the {{StandaloneMetaStorageManager}} implementation and all hell broke loose: many tests emulate Meta Storage incorrectly, a lot of races appeared, because many methods became truly asynchronous. This situation is very frustrating: a different component internals were changed with no API changes and a completely unrelated module is not longer able to pass its tests. Though I fixed most of the failures, some tests are still failing and I'm going to try to describe, what's wrong with them: *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationAfterScaleUpTriggeredOnNewCluster}}* - this test tests a scenario when we start a node after logical topology was updated. I don't know how realistic is this scenario, but the problem is that "data nodes" don't get populated with the logical topology nodes on {{distributionZoneManager}} start, because {{scheduleTimers}} method, that get's invoked from the Meta Storage Watch, doesn't go inside the {{if (!addedNodes.isEmpty() && autoAdjustScaleUp != INFINITE_TIMER_VALUE)}} branch. *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationForDefaultZoneAfterScaleUpTriggered}}* - same issue as above. *{{DistributionZoneManagerWatchListenerTest#testDataNodesOfDefaultZoneUpdatedOnWatchListenerEvent}}* - this test is flaky, probably due to some races between Watch and Configuration Listener execution (sometimes a retry on {{invoke}} happens and {{Mockito#verify}} fails). was: In IGNITE-19105 I've changed some internal shenanigans of the MetaStorageManager (without affecting its API in any way). After that, nearly all unit tests in the {{distribution-zones}} module started to fail. Turns out it happened because of extensive mock usages that emulate behavior of the Meta Storage. So I decided to replace it with the {{StandaloneMetaStorageManager}} implementation and all hell broke loose: many tests emulate Meta Storage incorrectly, a lot of races appeared, because many methods became truly asynchronous. This situation is very frustrating: a different component internals were changed with no API changes and a completely unrelated module is not longer able to pass its tests. Though I fixed most of the failures, some tests are still failing and I'm going to try to describe, what's wrong with them: *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationAfterScaleUpTriggeredOnNewCluster}}* - this test tests a scenario when we start a node after logical topology was updated. I don't know how realistic is this scenario, but the problem is that "data nodes" don't get populated with the logical topology nodes on {{distributionZoneManager}} start, because {{scheduleTimers}} method, that get's invoked from the Meta Storage Watch, doesn't go inside the {{if (!addedNodes.isEmpty() && autoAdjustScaleUp != INFINITE_TIMER_VALUE)}} branch. *{{DistributionZoneManagerWatchListenerTest#testDataNodesOfDefaultZoneUpdatedOnWatchListenerEvent}}* - this test is flaky, probably due to some races between Watch and Configuration Listener execution (sometimes a retry on {{invoke}} happens and {{Mockito#verify}} fails). > Fix broken unit tests in distribution-zones module > -- > > Key: IGNITE-19255 > URL: https://issues.apache.org/jira/browse/IGNITE-19255 > Project: Ignite > Issue Type: Bug >Reporter: Aleksandr Polovtcev >Priority: Blocker > Labels: ignite-3 > > In IGNITE-19105 I've changed some internal shenanigans of the > MetaStorageManager (without affecting its API in any way). After that, nearly > all unit tests in the {{distribution-zones}} module started to fail. Turns > out it happened because of extensive mock usages that emulate behavior of the > Meta Storage. So I decided to replace it with the > {{StandaloneMetaStorageManager}} implementation and all hell broke loose: > many tests emulate Meta Storage incorrectly, a lot of races appeared, because > many methods became truly asynchronous. > This situation is very frustrating: a different component internals were > changed with no API changes and a completely unrelated module is not longer > able to pass its tests. Though I fixed most of the failures, some tests are > still failing and I'm going to try to describe, what's wrong with them: >
[jira] [Commented] (IGNITE-19252) The incremental snapshot restore operation fails if there is a node not from the baseline.
[ https://issues.apache.org/jira/browse/IGNITE-19252?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17709689#comment-17709689 ] Ignite TC Bot commented on IGNITE-19252: {panel:title=Branch: [pull/10630/head] Base: [master] : No blockers found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel} {panel:title=Branch: [pull/10630/head] Base: [master] : New Tests (2)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1} {color:#8b}Disk Page Compressions 1{color} [[tests 1|https://ci2.ignite.apache.org/viewLog.html?buildId=7126467]] * {color:#013220}IgnitePdsCompressionTestSuite: IncrementalSnapshotRestoreTest.testRecoveryWithNotBaselineNode - PASSED{color} {color:#8b}Snapshots{color} [[tests 1|https://ci2.ignite.apache.org/viewLog.html?buildId=7127632]] * {color:#013220}IgniteSnapshotTestSuite: IncrementalSnapshotRestoreTest.testRecoveryWithNotBaselineNode - PASSED{color} {panel} [TeamCity *-- Run :: All* Results|https://ci2.ignite.apache.org/viewLog.html?buildId=7126470buildTypeId=IgniteTests24Java8_RunAll] > The incremental snapshot restore operation fails if there is a node not from > the baseline. > -- > > Key: IGNITE-19252 > URL: https://issues.apache.org/jira/browse/IGNITE-19252 > Project: Ignite > Issue Type: Bug >Reporter: Nikita Amelchev >Assignee: Nikita Amelchev >Priority: Major > Labels: ise > Fix For: 2.15 > > Time Spent: 40m > Remaining Estimate: 0h > > The incremental snapshot restore operation fails if there is a node not from > the baseline: > {noformat} > 21:20:40.324 [disco-notifier-worker-#147%server-1%] ERROR > org.apache.ignite.internal.processors.cache.persistence.snapshot.SnapshotRestoreProcess > - Failed to restore snapshot cache groups > [reqId=55eead09-4da7-4232-8e98-976dba117d91]. > org.apache.ignite.IgniteCheckedException: Snapshot metafile cannot be read > due to it doesn't exist: > /work/snapshots/snp1/increments/0001/server_3.smf > at > org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.readFromFile(IgniteSnapshotManager.java:2001) > ~[ignite-core-15.0.0-SNAPSHOT.jar:15.0.0-SNAPSHOT] > at > org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.readIncrementalSnapshotMetadata(IgniteSnapshotManager.java:1098) > ~[ignite-core-15.0.0-SNAPSHOT.jar:15.0.0-SNAPSHOT] > at > org.apache.ignite.internal.processors.cache.persistence.snapshot.IncrementalSnapshotProcessor.process(IncrementalSnapshotProcessor.java:94) > ~[ignite-core-15.0.0-SNAPSHOT.jar:15.0.0-SNAPSHOT] > at > org.apache.ignite.internal.processors.cache.persistence.snapshot.SnapshotRestoreProcess.restoreIncrementalSnapshot(SnapshotRestoreProcess.java:1466) > ~[ignite-core-15.0.0-SNAPSHOT.jar:15.0.0-SNAPSHOT] > at > org.apache.ignite.internal.processors.cache.persistence.snapshot.SnapshotRestoreProcess.lambda$incrementalSnapshotRestore$35(SnapshotRestoreProcess.java:1417) > ~[ignite-core-15.0.0-SNAPSHOT.jar:15.0.0-SNAPSHOT] > at > org.apache.ignite.internal.processors.security.thread.SecurityAwareRunnable.run(SecurityAwareRunnable.java:51) > ~[ignite-core-15.0.0-SNAPSHOT.jar:15.0.0-SNAPSHOT] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > ~[?:1.8.0_201] > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > ~[?:1.8.0_201] > at > org.apache.ignite.internal.processors.security.thread.SecurityAwareRunnable.run(SecurityAwareRunnable.java:51) > ~[ignite-core-15.0.0-SNAPSHOT.jar:15.0.0-SNAPSHOT] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > ~[?:1.8.0_201] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > ~[?:1.8.0_201] > at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_201] > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-19255) Fix broken unit tests in distribution-zones module
[ https://issues.apache.org/jira/browse/IGNITE-19255?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksandr Polovtcev updated IGNITE-19255: - Description: In IGNITE-19105 I've changed some internal shenanigans of the MetaStorageManager (without affecting its API in any way). After that, nearly all unit tests in the {{distribution-zones}} module started to fail. Turns out it happened because of extensive mock usages that emulate behavior of the Meta Storage. So I decided to replace it with the {{StandaloneMetaStorageManager}} implementation and all hell broke loose: many tests emulate Meta Storage incorrectly, a lot of races appeared, because many methods became truly asynchronous. This situation is very frustrating: a different component internals were changed with no API changes and a completely unrelated module is not longer able to pass its tests. Though I fixed most of the failures, some tests are still failing and I'm going to try to describe, what's wrong with them: *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationAfterScaleUpTriggeredOnNewCluster}}* - this test tests a scenario when we start a node after logical topology was updated. I don't know how realistic is this scenario, but the problem is that "data nodes" don't get populated with the logical topology nodes on {{distributionZoneManager}} start, because {{scheduleTimers}} method, that get's invoked from the Meta Storage Watch, doesn't go inside the {{if (!addedNodes.isEmpty() && autoAdjustScaleUp != INFINITE_TIMER_VALUE)}} branch, *{{DistributionZoneManagerWatchListenerTest#testDataNodesOfDefaultZoneUpdatedOnWatchListenerEvent}}* - this test is flaky, probably due to some races between Watch and Configuration Listener execution (sometimes a retry on {{invoke}} happens and {{Mockito#verify}} fails) was: In IGNITE-19105 I've changed some internal shenanigans of the MetaStorageManager (without affecting its API in any way). After that, nearly all unit tests in the {{distribution-zones}} module started to fail. Turns out it happened because of extensive mock usages that emulate behavior of the Meta Storage. So I decided to replace it with the {{StandaloneMetaStorageManager}} implementation and all hell broke loose: many tests emulate Meta Storage incorrectly, a lot of races appeared, because many methods became truly asynchronous. This situation is very frustrating: a different component internals were changed with no API changes and a completely unrelated module is not longer able to pass its tests. Though I fixed most of the failures, some tests are still failing and I'm going to try to describe, what's wrong with them: *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationAfterScaleUpTriggeredOnNewCluster}}* - this test tests a scenario when we start a node after logical topology was updated. I don't know how realistic is this scenario, but the problem is that "data nodes" don't get populated with the logical topology nodes on {{distributionZoneManager}} start, because {{scheduleTimers}} method, that get's invoked from the Meta Storage Watch, doesn't go inside the {{if (!addedNodes.isEmpty() && autoAdjustScaleUp != INFINITE_TIMER_VALUE)}} branch, *{{DistributionZoneManagerWatchListenerTest#testDataNodesOfDefaultZoneUpdatedOnWatchListenerEvent}}* - this test is flaky, probably due to some races between Watch and Configuration Listener execution. > Fix broken unit tests in distribution-zones module > -- > > Key: IGNITE-19255 > URL: https://issues.apache.org/jira/browse/IGNITE-19255 > Project: Ignite > Issue Type: Bug >Reporter: Aleksandr Polovtcev >Priority: Blocker > Labels: ignite-3 > > In IGNITE-19105 I've changed some internal shenanigans of the > MetaStorageManager (without affecting its API in any way). After that, nearly > all unit tests in the {{distribution-zones}} module started to fail. Turns > out it happened because of extensive mock usages that emulate behavior of the > Meta Storage. So I decided to replace it with the > {{StandaloneMetaStorageManager}} implementation and all hell broke loose: > many tests emulate Meta Storage incorrectly, a lot of races appeared, because > many methods became truly asynchronous. > This situation is very frustrating: a different component internals were > changed with no API changes and a completely unrelated module is not longer > able to pass its tests. Though I fixed most of the failures, some tests are > still failing and I'm going to try to describe, what's wrong with them: > *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationAfterScaleUpTriggeredOnNewCluster}}* > - this test tests a scenario when we start a node after logical topology was > updated. I don't know how realistic is this
[jira] [Updated] (IGNITE-19255) Fix broken unit tests in distribution-zones module
[ https://issues.apache.org/jira/browse/IGNITE-19255?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksandr Polovtcev updated IGNITE-19255: - Description: In IGNITE-19105 I've changed some internal shenanigans of the MetaStorageManager (without affecting its API in any way). After that, nearly all unit tests in the {{distribution-zones}} module started to fail. Turns out it happened because of extensive mock usages that emulate behavior of the Meta Storage. So I decided to replace it with the {{StandaloneMetaStorageManager}} implementation and all hell broke loose: many tests emulate Meta Storage incorrectly, a lot of races appeared, because many methods became truly asynchronous. This situation is very frustrating: a different component internals were changed with no API changes and a completely unrelated module is not longer able to pass its tests. Though I fixed most of the failures, some tests are still failing and I'm going to try to describe, what's wrong with them: *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationAfterScaleUpTriggeredOnNewCluster}}* - this test tests a scenario when we start a node after logical topology was updated. I don't know how realistic is this scenario, but the problem is that "data nodes" don't get populated with the logical topology nodes on {{distributionZoneManager}} start, because {{scheduleTimers}} method, that get's invoked from the Meta Storage Watch, doesn't go inside the {{if (!addedNodes.isEmpty() && autoAdjustScaleUp != INFINITE_TIMER_VALUE)}} branch. *{{DistributionZoneManagerWatchListenerTest#testDataNodesOfDefaultZoneUpdatedOnWatchListenerEvent}}* - this test is flaky, probably due to some races between Watch and Configuration Listener execution (sometimes a retry on {{invoke}} happens and {{Mockito#verify}} fails). was: In IGNITE-19105 I've changed some internal shenanigans of the MetaStorageManager (without affecting its API in any way). After that, nearly all unit tests in the {{distribution-zones}} module started to fail. Turns out it happened because of extensive mock usages that emulate behavior of the Meta Storage. So I decided to replace it with the {{StandaloneMetaStorageManager}} implementation and all hell broke loose: many tests emulate Meta Storage incorrectly, a lot of races appeared, because many methods became truly asynchronous. This situation is very frustrating: a different component internals were changed with no API changes and a completely unrelated module is not longer able to pass its tests. Though I fixed most of the failures, some tests are still failing and I'm going to try to describe, what's wrong with them: *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationAfterScaleUpTriggeredOnNewCluster}}* - this test tests a scenario when we start a node after logical topology was updated. I don't know how realistic is this scenario, but the problem is that "data nodes" don't get populated with the logical topology nodes on {{distributionZoneManager}} start, because {{scheduleTimers}} method, that get's invoked from the Meta Storage Watch, doesn't go inside the {{if (!addedNodes.isEmpty() && autoAdjustScaleUp != INFINITE_TIMER_VALUE)}} branch, *{{DistributionZoneManagerWatchListenerTest#testDataNodesOfDefaultZoneUpdatedOnWatchListenerEvent}}* - this test is flaky, probably due to some races between Watch and Configuration Listener execution (sometimes a retry on {{invoke}} happens and {{Mockito#verify}} fails) > Fix broken unit tests in distribution-zones module > -- > > Key: IGNITE-19255 > URL: https://issues.apache.org/jira/browse/IGNITE-19255 > Project: Ignite > Issue Type: Bug >Reporter: Aleksandr Polovtcev >Priority: Blocker > Labels: ignite-3 > > In IGNITE-19105 I've changed some internal shenanigans of the > MetaStorageManager (without affecting its API in any way). After that, nearly > all unit tests in the {{distribution-zones}} module started to fail. Turns > out it happened because of extensive mock usages that emulate behavior of the > Meta Storage. So I decided to replace it with the > {{StandaloneMetaStorageManager}} implementation and all hell broke loose: > many tests emulate Meta Storage incorrectly, a lot of races appeared, because > many methods became truly asynchronous. > This situation is very frustrating: a different component internals were > changed with no API changes and a completely unrelated module is not longer > able to pass its tests. Though I fixed most of the failures, some tests are > still failing and I'm going to try to describe, what's wrong with them: > *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationAfterScaleUpTriggeredOnNewCluster}}* > - this test tests a scenario when we start a node after
[jira] [Updated] (IGNITE-19255) Fix broken unit tests in distribution-zones module
[ https://issues.apache.org/jira/browse/IGNITE-19255?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksandr Polovtcev updated IGNITE-19255: - Description: In IGNITE-19105 I've changed some internal shenanigans of the MetaStorageManager (without affecting its API in any way). After that, nearly all unit tests in the {{distribution-zones}} module started to fail. Turns out it happened because of extensive mock usages that emulate behavior of the Meta Storage. So I decided to replace it with the {{StandaloneMetaStorageManager}} implementation and all hell broke loose: many tests emulate Meta Storage incorrectly, a lot of races appeared, because many methods became truly asynchronous. This situation is very frustrating: a different component internals were changed with no API changes and a completely unrelated module is not longer able to pass its tests. Though I fixed most of the failures, some tests are still failing and I'm going to try to describe, what's wrong with them: *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationAfterScaleUpTriggeredOnNewCluster}}* - this test tests a scenario when we start a node after logical topology was updated. I don't know how realistic is this scenario, but the problem is that "data nodes" don't get populated with the logical topology nodes on {{distributionZoneManager}} start, because {{scheduleTimers}} method, that get's invoked from the Meta Storage Watch, doesn't go inside the {{if (!addedNodes.isEmpty() && autoAdjustScaleUp != INFINITE_TIMER_VALUE)}} branch, *{{DistributionZoneManagerWatchListenerTest#testDataNodesOfDefaultZoneUpdatedOnWatchListenerEvent}}* - this test is flaky, probably due to some races between Watch and Configuration Listener execution. was: In IGNITE-19105 I've changed some internal shenanigans of the MetaStorageManager (without affecting its API in any way). After that, nearly all unit tests in the {{distribution-zones}} module started to fail. Turns out it happened because of extensive mock usages that emulate behavior of the Meta Storage. So I decided to replace it with the {{StandaloneMetaStorageManager}} implementation and all hell broke loose: many tests emulate Meta Storage incorrectly, a lot of races appeared, because many methods became truly asynchronous. This situation is very frustrating: a different component internals were changed with no API changes and a completely unrelated module is not longer able to pass its tests. Though I fixed most of the failures, some tests are still failing and I'm going to try to describe, what's wrong with them: *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationAfterScaleUpTriggeredOnNewCluster}}* - this test tests a scenario when we start a node after logical topology was updated. I don't know how realistic is this scenario, but the problem is that "data nodes" don't get populated with the logical topology nodes on {{distributionZoneManager}} start, because {{scheduleTimers}} method, that get's invoked from the Meta Storage Watch, doesn't go inside the {{if (!addedNodes.isEmpty() && autoAdjustScaleUp != INFINITE_TIMER_VALUE)}} branch, > Fix broken unit tests in distribution-zones module > -- > > Key: IGNITE-19255 > URL: https://issues.apache.org/jira/browse/IGNITE-19255 > Project: Ignite > Issue Type: Bug >Reporter: Aleksandr Polovtcev >Priority: Blocker > Labels: ignite-3 > > In IGNITE-19105 I've changed some internal shenanigans of the > MetaStorageManager (without affecting its API in any way). After that, nearly > all unit tests in the {{distribution-zones}} module started to fail. Turns > out it happened because of extensive mock usages that emulate behavior of the > Meta Storage. So I decided to replace it with the > {{StandaloneMetaStorageManager}} implementation and all hell broke loose: > many tests emulate Meta Storage incorrectly, a lot of races appeared, because > many methods became truly asynchronous. > This situation is very frustrating: a different component internals were > changed with no API changes and a completely unrelated module is not longer > able to pass its tests. Though I fixed most of the failures, some tests are > still failing and I'm going to try to describe, what's wrong with them: > *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationAfterScaleUpTriggeredOnNewCluster}}* > - this test tests a scenario when we start a node after logical topology was > updated. I don't know how realistic is this scenario, but the problem is that > "data nodes" don't get populated with the logical topology nodes on > {{distributionZoneManager}} start, because {{scheduleTimers}} method, that > get's invoked from the Meta Storage Watch, doesn't go inside the {{if >
[jira] [Updated] (IGNITE-15147) Possible leak in metrics in PageLockTracker
[ https://issues.apache.org/jira/browse/IGNITE-15147?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-15147: --- Fix Version/s: 2.16 (was: 2.15) > Possible leak in metrics in PageLockTracker > --- > > Key: IGNITE-15147 > URL: https://issues.apache.org/jira/browse/IGNITE-15147 > Project: Ignite > Issue Type: Bug > Components: persistence >Affects Versions: 2.10 >Reporter: Sergey Chugunov >Priority: Major > Fix For: 2.16 > > > In one of PageHandler#readPage methods there is the following code: > {code:java} > long pageAddr = readLock(pageMem, cacheId, pageId, page, lsnr); > if (pageAddr == 0L) > return lockFailed; > try { > PageIO io = pageIoRslvr.resolve(pageAddr); > return h.run(cacheId, pageId, page, pageAddr, io, null, arg, intArg, > statHolder); > } > finally { > readUnlock(pageMem, cacheId, pageId, page, pageAddr, lsnr); > } > {code} > Here we obtain a read lock on a page by calling {{readLock}} method, its > implementation is as following: > {code:java} > lsnr.onBeforeReadLock(cacheId, pageId, page); > long pageAddr = pageMem.readLock(cacheId, pageId, page); > lsnr.onReadLock(cacheId, pageId, page, pageAddr); > return pageAddr; > {code} > And here is a problem: in {{readLock}} we always call {{onReadLock}} for the > page but {{onReadUnlock}} is called *only if lock was acquired successfully*. > Otherwise lock counters end up in incorrect state: {{onReadLock}} called > although no lock was actually acqured. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-18471) Integer overflow in LRU page eviction trackers
[ https://issues.apache.org/jira/browse/IGNITE-18471?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-18471: --- Fix Version/s: 2.16 (was: 2.15) > Integer overflow in LRU page eviction trackers > -- > > Key: IGNITE-18471 > URL: https://issues.apache.org/jira/browse/IGNITE-18471 > Project: Ignite > Issue Type: Bug >Reporter: Roman Puchkovskiy >Priority: Major > Fix For: 2.16 > > > In IGNITE-16866, an integer overflow was fixed in > RandomLruPageEvictionTracker and Random2LruPageEvictionTracker (namely, > start() methods). But there are other integer overflows in these classes that > need to be fixed. > Also, testLargeRegionsWithRandomLRU() and testLargeRegionsWithRandom2LRU() > were added to CacheDataRegionConfigurationTest to test the fix, but these > tests allocate correspondingly 4Gb and 8Gb of memory which is too much for > our CI. It seems reasonable to either reduce region sizes (to 2060 and 1030 > Gb, correspondingly) to make the tests only allocate 2Gb (which seems > bearable), or completely remove the tests and test this differently. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-19255) Fix broken unit tests in distribution-zones module
[ https://issues.apache.org/jira/browse/IGNITE-19255?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksandr Polovtcev updated IGNITE-19255: - Description: In IGNITE-19105 I've changed some internal shenanigans of the MetaStorageManager (without affecting its API in any way). After that, nearly all unit tests in the {{distribution-zones}} module started to fail. Turns out it happened because of extensive mock usages that emulate behavior of the Meta Storage. So I decided to replace it with the {{StandaloneMetaStorageManager}} implementation and all hell broke loose: many tests emulate Meta Storage incorrectly, a lot of races appeared, because many methods became truly asynchronous. This situation is very frustrating: a different component internals were changed with no API changes and a completely unrelated module is not longer able to pass its tests. Though I fixed most of the failures, some tests are still failing and I'm going to try to describe, what's wrong with them: *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationAfterScaleUpTriggeredOnNewCluster}}* - this test tests a scenario when we start a node after logical topology was updated. I don't know how realistic is this scenario, but the problem is that "data nodes" don't get populated with the logical topology nodes on {{distributionZoneManager}} start, because {{scheduleTimers}} method, that get's invoked from the Meta Storage Watch, doesn't go inside the {{if (!addedNodes.isEmpty() && autoAdjustScaleUp != INFINITE_TIMER_VALUE)}} branch, was: In IGNITE-19105 I've changed some internal shenanigans of the MetaStorageManager (without affecting its API in any way). After that, nearly all unit tests in the {{distribution-zones}} module started to fail. Turns out it happened because of extensive mock usages that emulate behavior of the Meta Storage. So I decided to replace it with the {{StandaloneMetaStorageManager}} implementation and all hell broke loose: many tests emulate Meta Storage incorrectly, a lot of races appeared, because many methods became truly asynchronous. This situation is very frustrating: a different component internals were changed with no API changes and a completely unrelated module is not longer able to pass its tests. Though I fixed most of the failures, some tests are still failing and I'm going to try to describe, what's wrong with them: *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationAfterScaleUpTriggeredOnNewCluster}}* - this test tests a scenario when we start a node after logical topology was updated. I don't know how realistic is this scenario, but the problem is that "data nodes" don't get populated with the logical topology nodes on {{distributionZoneManager}} start, because {{scheduleTimers}} method, that get's invoked from the Meta Storage Watch doesn't go inside the {{if (!addedNodes.isEmpty() && autoAdjustScaleUp != INFINITE_TIMER_VALUE)}} branch, > Fix broken unit tests in distribution-zones module > -- > > Key: IGNITE-19255 > URL: https://issues.apache.org/jira/browse/IGNITE-19255 > Project: Ignite > Issue Type: Bug >Reporter: Aleksandr Polovtcev >Priority: Blocker > Labels: ignite-3 > > In IGNITE-19105 I've changed some internal shenanigans of the > MetaStorageManager (without affecting its API in any way). After that, nearly > all unit tests in the {{distribution-zones}} module started to fail. Turns > out it happened because of extensive mock usages that emulate behavior of the > Meta Storage. So I decided to replace it with the > {{StandaloneMetaStorageManager}} implementation and all hell broke loose: > many tests emulate Meta Storage incorrectly, a lot of races appeared, because > many methods became truly asynchronous. > This situation is very frustrating: a different component internals were > changed with no API changes and a completely unrelated module is not longer > able to pass its tests. Though I fixed most of the failures, some tests are > still failing and I'm going to try to describe, what's wrong with them: > *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationAfterScaleUpTriggeredOnNewCluster}}* > - this test tests a scenario when we start a node after logical topology was > updated. I don't know how realistic is this scenario, but the problem is that > "data nodes" don't get populated with the logical topology nodes on > {{distributionZoneManager}} start, because {{scheduleTimers}} method, that > get's invoked from the Meta Storage Watch, doesn't go inside the {{if > (!addedNodes.isEmpty() && autoAdjustScaleUp != INFINITE_TIMER_VALUE)}} branch, -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-19255) Fix broken unit tests in distribution-zones module
[ https://issues.apache.org/jira/browse/IGNITE-19255?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksandr Polovtcev updated IGNITE-19255: - Description: In IGNITE-19105 I've changed some internal shenanigans of the MetaStorageManager (without affecting its API in any way). After that, nearly all unit tests in the {{distribution-zones}} module started to fail. Turns out it happened because of extensive mock usages that emulate behavior of the Meta Storage. So I decided to replace it with the {{StandaloneMetaStorageManager}} implementation and all hell broke loose: many tests emulate Meta Storage incorrectly, a lot of races appeared, because many methods became truly asynchronous. This situation is very frustrating: a different component internals were changed with no API changes and a completely unrelated module is not longer able to pass its tests. Though I fixed most of the failures, some tests are still failing and I'm going to try to describe, what's wrong with them: *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationAfterScaleUpTriggeredOnNewCluster}}* - this test tests a scenario when we start a node after logical topology was updated. I don't know how realistic is this scenario, but the problem is that "data nodes" don't get populated with the logical topology nodes on {{distributionZoneManager}} start, because {{scheduleTimers}} method, that get's invoked from the Meta Storage Watch doesn't go inside the {{if (!addedNodes.isEmpty() && autoAdjustScaleUp != INFINITE_TIMER_VALUE)}} branch, was: In IGNITE-19105 I've changed some internal shenanigans of the MetaStorageManager (without affecting its API in any way). After that, nearly all unit tests in the {{distribution-zones}} module started to fail. Turns out it happened because of extensive mock usages that emulate behavior of the Meta Storage. So I decided to replace it with the {{StandaloneMetaStorageManager}} implementation and all hell broke loose: many tests emulate Meta Storage incorrectly, a lot of races appeared, because many methods became truly asynchronous. This situation is very frustrating: a different component internals were changed with no API changes and a completely unrelated module is not longer able to pass its tests. Though I fixed most of the failures, some tests are still failing and I'm going to try to describe, what's wrong with them: {{DistributionZoneManagerScaleUpTest#testDataNodesPropagationAfterScaleUpTriggeredOnNewCluster}} - this test tests a scenario when we start a node after logical topology was updated. I don't know how realistic is this scenario, but the problem is that "data nodes" don't get populated with the logical topology nodes on {{distributionZoneManager}} start, because {{scheduleTimers}} method, that get's invoked from the Meta Storage Watch doesn't go inside the {{if (!addedNodes.isEmpty() && autoAdjustScaleUp != INFINITE_TIMER_VALUE)}} branch, > Fix broken unit tests in distribution-zones module > -- > > Key: IGNITE-19255 > URL: https://issues.apache.org/jira/browse/IGNITE-19255 > Project: Ignite > Issue Type: Bug >Reporter: Aleksandr Polovtcev >Priority: Blocker > Labels: ignite-3 > > In IGNITE-19105 I've changed some internal shenanigans of the > MetaStorageManager (without affecting its API in any way). After that, nearly > all unit tests in the {{distribution-zones}} module started to fail. Turns > out it happened because of extensive mock usages that emulate behavior of the > Meta Storage. So I decided to replace it with the > {{StandaloneMetaStorageManager}} implementation and all hell broke loose: > many tests emulate Meta Storage incorrectly, a lot of races appeared, because > many methods became truly asynchronous. > This situation is very frustrating: a different component internals were > changed with no API changes and a completely unrelated module is not longer > able to pass its tests. Though I fixed most of the failures, some tests are > still failing and I'm going to try to describe, what's wrong with them: > *{{DistributionZoneManagerScaleUpTest#testDataNodesPropagationAfterScaleUpTriggeredOnNewCluster}}* > - this test tests a scenario when we start a node after logical topology was > updated. I don't know how realistic is this scenario, but the problem is that > "data nodes" don't get populated with the logical topology nodes on > {{distributionZoneManager}} start, because {{scheduleTimers}} method, that > get's invoked from the Meta Storage Watch doesn't go inside the {{if > (!addedNodes.isEmpty() && autoAdjustScaleUp != INFINITE_TIMER_VALUE)}} branch, -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-19255) Fix broken unit tests in distribution-zones module
[ https://issues.apache.org/jira/browse/IGNITE-19255?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksandr Polovtcev updated IGNITE-19255: - Description: In IGNITE-19105 I've changed some internal shenanigans of the MetaStorageManager (without affecting its API in any way). After that, nearly all unit tests in the {{distribution-zones}} module started to fail. Turns out it happened because of extensive mock usages that emulate behavior of the Meta Storage. So I decided to replace it with the {{StandaloneMetaStorageManager}} implementation and all hell broke loose: many tests emulate Meta Storage incorrectly, a lot of races appeared, because many methods became truly asynchronous. This situation is very frustrating: a different component internals were changed with no API changes and a completely unrelated module is not longer able to pass its tests. Though I fixed most of the failures, some tests are still failing and I'm going to try to describe, what's wrong with them: {{DistributionZoneManagerScaleUpTest#testDataNodesPropagationAfterScaleUpTriggeredOnNewCluster}} - this test tests a scenario when we start a node after logical topology was updated. I don't know how realistic is this scenario, but the problem is that "data nodes" don't get populated with the logical topology nodes on {{distributionZoneManager}} start, because {{scheduleTimers}} method, that get's invoked from the Meta Storage Watch doesn't go inside the {{if (!addedNodes.isEmpty() && autoAdjustScaleUp != INFINITE_TIMER_VALUE)}} branch, > Fix broken unit tests in distribution-zones module > -- > > Key: IGNITE-19255 > URL: https://issues.apache.org/jira/browse/IGNITE-19255 > Project: Ignite > Issue Type: Bug >Reporter: Aleksandr Polovtcev >Priority: Blocker > Labels: ignite-3 > > In IGNITE-19105 I've changed some internal shenanigans of the > MetaStorageManager (without affecting its API in any way). After that, nearly > all unit tests in the {{distribution-zones}} module started to fail. Turns > out it happened because of extensive mock usages that emulate behavior of the > Meta Storage. So I decided to replace it with the > {{StandaloneMetaStorageManager}} implementation and all hell broke loose: > many tests emulate Meta Storage incorrectly, a lot of races appeared, because > many methods became truly asynchronous. > This situation is very frustrating: a different component internals were > changed with no API changes and a completely unrelated module is not longer > able to pass its tests. Though I fixed most of the failures, some tests are > still failing and I'm going to try to describe, what's wrong with them: > {{DistributionZoneManagerScaleUpTest#testDataNodesPropagationAfterScaleUpTriggeredOnNewCluster}} > - this test tests a scenario when we start a node after logical topology was > updated. I don't know how realistic is this scenario, but the problem is that > "data nodes" don't get populated with the logical topology nodes on > {{distributionZoneManager}} start, because {{scheduleTimers}} method, that > get's invoked from the Meta Storage Watch doesn't go inside the {{if > (!addedNodes.isEmpty() && autoAdjustScaleUp != INFINITE_TIMER_VALUE)}} branch, -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-19255) Fix broken unit tests in distribution-zones module
Aleksandr Polovtcev created IGNITE-19255: Summary: Fix broken unit tests in distribution-zones module Key: IGNITE-19255 URL: https://issues.apache.org/jira/browse/IGNITE-19255 Project: Ignite Issue Type: Bug Reporter: Aleksandr Polovtcev -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-19253) [Missing Tests] check fails on windows agents
[ https://issues.apache.org/jira/browse/IGNITE-19253?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17709676#comment-17709676 ] Anton Vinogradov commented on IGNITE-19253: --- Merged to the master. [~alexpl], thanks for the review! > [Missing Tests] check fails on windows agents > - > > Key: IGNITE-19253 > URL: https://issues.apache.org/jira/browse/IGNITE-19253 > Project: Ignite > Issue Type: Bug >Reporter: Anton Vinogradov >Assignee: Anton Vinogradov >Priority: Major > Fix For: 2.15 > > Time Spent: 20m > Remaining Estimate: 0h > > {noformat} > org.apache.ignite.tools.surefire.testsuites.CheckAllTestsInSuites > 12:53:08 check > 12:53:08 java.nio.file.InvalidPathException: Illegal char <:> at index > 2: /C:/BuildAgent/work/6429fa5c3148cb5c/modules/tools/target/classes/ > 12:53:08 java.nio.file.InvalidPathException: Illegal char <:> at index > 2: /C:/BuildAgent/work/6429fa5c3148cb5c/modules/tools/target/classes/ > at > org.apache.ignite.tools.surefire.testsuites.CheckAllTestsInSuites.check(CheckAllTestsInSuites.java:79) > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Comment Edited] (IGNITE-19253) [Missing Tests] check fails on windows agents
[ https://issues.apache.org/jira/browse/IGNITE-19253?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17709669#comment-17709669 ] Anton Vinogradov edited comment on IGNITE-19253 at 4/7/23 12:59 PM: Fixed according to the hints from https://stackoverflow.com/questions/9834776/java-nio-file-path-issue (to use toURI() instead of getPath()) was (Author: av): Fixed according to the hints from https://stackoverflow.com/questions/9834776/java-nio-file-path-issue > [Missing Tests] check fails on windows agents > - > > Key: IGNITE-19253 > URL: https://issues.apache.org/jira/browse/IGNITE-19253 > Project: Ignite > Issue Type: Bug >Reporter: Anton Vinogradov >Assignee: Anton Vinogradov >Priority: Major > Fix For: 2.15 > > Time Spent: 10m > Remaining Estimate: 0h > > {noformat} > org.apache.ignite.tools.surefire.testsuites.CheckAllTestsInSuites > 12:53:08 check > 12:53:08 java.nio.file.InvalidPathException: Illegal char <:> at index > 2: /C:/BuildAgent/work/6429fa5c3148cb5c/modules/tools/target/classes/ > 12:53:08 java.nio.file.InvalidPathException: Illegal char <:> at index > 2: /C:/BuildAgent/work/6429fa5c3148cb5c/modules/tools/target/classes/ > at > org.apache.ignite.tools.surefire.testsuites.CheckAllTestsInSuites.check(CheckAllTestsInSuites.java:79) > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-19253) [Missing Tests] check fails on windows agents
[ https://issues.apache.org/jira/browse/IGNITE-19253?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17709669#comment-17709669 ] Anton Vinogradov commented on IGNITE-19253: --- Fixed according to the hints from https://stackoverflow.com/questions/9834776/java-nio-file-path-issue > [Missing Tests] check fails on windows agents > - > > Key: IGNITE-19253 > URL: https://issues.apache.org/jira/browse/IGNITE-19253 > Project: Ignite > Issue Type: Bug >Reporter: Anton Vinogradov >Assignee: Anton Vinogradov >Priority: Major > Fix For: 2.15 > > Time Spent: 10m > Remaining Estimate: 0h > > {noformat} > org.apache.ignite.tools.surefire.testsuites.CheckAllTestsInSuites > 12:53:08 check > 12:53:08 java.nio.file.InvalidPathException: Illegal char <:> at index > 2: /C:/BuildAgent/work/6429fa5c3148cb5c/modules/tools/target/classes/ > 12:53:08 java.nio.file.InvalidPathException: Illegal char <:> at index > 2: /C:/BuildAgent/work/6429fa5c3148cb5c/modules/tools/target/classes/ > at > org.apache.ignite.tools.surefire.testsuites.CheckAllTestsInSuites.check(CheckAllTestsInSuites.java:79) > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-18242) Update ignite dependency: kafka
[ https://issues.apache.org/jira/browse/IGNITE-18242?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Dmitry Pavlov updated IGNITE-18242: --- Fix Version/s: 2.16 (was: 2.15) > Update ignite dependency: kafka > --- > > Key: IGNITE-18242 > URL: https://issues.apache.org/jira/browse/IGNITE-18242 > Project: Ignite > Issue Type: Improvement >Reporter: Aleksandr Nikolaev >Assignee: Aleksandr Nikolaev >Priority: Major > Labels: ise > Fix For: 2.16 > > > Update Ignite dependency: kafka 2.0.0 to 3.3.1 -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-19133) Increase partitions count upper bound
[ https://issues.apache.org/jira/browse/IGNITE-19133?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Kirill Tkalenko updated IGNITE-19133: - Description: h3. Problem Data partitioning is used to distribute data (hopefully) evenly across the cluster and to provide necessary operation parallelism for the end user. As a rule of thumb, one may consider allocating 256 partitions per Ignite node, in order to achieve that. This rule only scales up to a certain point. Imagine a cluster of 1000 nodes, with a table that has 3 replicas of each partition (ability to lose 1 backup). With current limit of 65500 partitions, the maximal number of partitions per node would be {{{}65500*3/1000 ~= 196{}}}. This is the limit of our scalability, according to aforementioned rule. To provide 256 partitions per node, the user would have to: * either increase the number of backups, which proportionally increases required storage space (affects cost), * or increase the total number of partitions up to about 85 thousands. This is not possible right now. h3. What's the reason of current limit Disclaimer: I'm not the one who designed it, so my thoughts may be speculative in some sense. Short answer is: we need a number of partitions to fit into 2 bytes. Long answer: in current implementation we have 1 to 1 correspondence between logical partition id and physical partition id. We use the same value both in affinity and in physical file name. This makes system simpler, and I believe that simplicity is the real explanation of the restriction. Why does it have to be 2 bytes, and not 3, for example. The key is the structure of page identifiers in data regions: {code:java} +---++-+-+ | rotation/item id (1 byte) | flags (1 byte) | partition (2 bytes) | index (4 bytes) | +---++-+-+{code} The idea was to fit it into 8 bytes. Good idea, in my opinion. Making it bigger doesn't feel right. h3. Proposed solution As mentioned, there are to components to the problem: # One to one correspondence between partition ids. # Hard limit in a single data region, caused by the page id layout. There's not much we can do with component #2, because the implications are unpredictable, and the amount of code we would need to fix is astonishing. h4. More reasonable restrictions This leads us to the following problem: every single Ignite node can't have more than 65500 partitions for a table (or distribution zone). So, imagine the situation: * user has a cluster with 3 nodes * user tries to create distribution zone with 3 nodes, 3 replicas for each partitions and 10 partitions While this is absurd, the configuration is still "valid", but it leads to 100k partitions per node, which is impossible. Such zone configurations must be banned. Such restriction doesn't seem unreasonable. If a user wants to start so many partitions for such a small cluster, they really don't understand what they're doing. This naturally gives us a minimal number of nodes per the number of partitions, as the following formula (assuming that you can't have 2 replicas of the same partition on the same Ignite node): {code:java} nodes >= min(replicas, ceil(partitions * replicas / 65500)) {code} This estimation is imprecise, because it assumes perfect distribution. In reality, rendezvous affinity is uneven, so the real value must be checked when user configures the number of nodes for specific distribution zone. h4. Ties to rebalance For this question I would probably need an assistance. While affinity reassignment, each node may store more partition then it's stated in every single distribution. What do I mean by this: * imagine node having partitions 1, 2, and 3 * after the reassignment, the node has partitions 3, 4 and 5 Each individual distribution states that node only has 3 partitions, while during the rebalance, it may store all 5: sending 1 and 2 to some node, and receiving 4 and 5 from some different node. Multiply that by a big factor, and it is possible to have situation, where local number of partitions exceeds 65500. The only way to beat it, in my opinion, is to lower the hard limit in affinity function to 32xxx per node, leaving a space for partitions in a MOVING state. h4. Mapping partition ids With that being said, all that's left is to map logical partition ids from the range 0..N (where N is unlimited) to physical ids from the range 0..65500. Such mapping is a local entity, encapsulated deep inside of the storage engine. Simplest way to do so is to have a HashMap \{ logical -> physical } and to increase physical partition id by 1 every time you insert a new value. If the {{values()}} set is not continuous, one may occupy the gap, it's not too hard to implement. Of course, this
[jira] [Updated] (IGNITE-19133) Increase partitions count upper bound
[ https://issues.apache.org/jira/browse/IGNITE-19133?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ivan Bessonov updated IGNITE-19133: --- Description: h3. Problem Data partitioning is used to distribute data (hopefully) evenly across the cluster and to provide necessary operation parallelism for the end user. As a rule of thumb, one may consider allocating 256 partitions per Ignite node, in order to achieve that. This rule only scales up to a certain point. Imagine a cluster of 1000 nodes, with a table that has 3 replicas of each partition (ability to lose 1 backup). With current limit of 65500 partitions, the maximal number of partitions per node would be {{{}65500*3/1000 ~= 196{}}}. This is the limit of our scalability, according to aforementioned rule. To provide 256 partitions per node, the user would have to: * either increase the number of backups, which proportionally increases required storage space (affects cost), * or increase the total number of partitions up to about 85 thousands. This is not possible right now. h3. What's the reason of current limit Disclaimer: I'm not the one who designed it, so my thoughts may be speculative in some sense. Short answer is: we need a number of partitions to fit into 2 bytes. Long answer: in current implementation we have 1 to 1 correspondence between logical partition id and physical partition id. We use the same value both in affinity and in physical file name. This makes system simpler, and I believe that simplicity is the real explanation of the restriction. Why does it have to be 2 bytes, and not 3, for example. The key is the structure of page identifiers in data regions: {code:java} +---++-+-+ | rotation/item id (1 byte) | flags (1 byte) | partition (2 bytes) | index (4 bytes) | +---++-+-+{code} The idea was to fit it into 8 bytes. Good idea, in my opinion. Making it bigger doesn't feel right. h3. Proposed solution As mentioned, there are to components to the problem: # One to one correspondence between partition ids. # Hard limit in a single data region, caused by the page id layout. There's not much we can do with component #2, because the implications are unpredictable, and the amount of code we would need to fix is astonishing. h4. More reasonable restrictions This leads us to the following problem: every single Ignite node can't have more than 65500 partitions for a table (or distribution zone). So, imagine the situation: * user has a cluster with 3 nodes * user tries to create distribution zone with 3 nodes, 3 replicas for each partitions and 10 partitions While this is absurd, the configuration is still "valid", but it leads to 100k partitions per node, which is impossible. Such zone configurations must be banned. Such restriction doesn't seem unreasonable. If a user wants to start so many partitions for such a small cluster, they really don't understand what they're doing. This naturally gives us a minimal number of nodes per the number of partitions, as the following formula (assuming that you can't have 2 replicas of the same partition on the same Ignite node): {code:java} nodes >= min(replicas, ceil(partitions * replicas / 65500)) {code} This estimation is imprecise, because it assumes perfect distribution. In reality, rendezvous affinity is uneven, so the real value must be checked when user configures the number of nodes for specific distribution zone. h4. Ties to rebalance For this question I would probably need an assistance. While affinity reassignment, each node may store more partition then it's stated in every single distribution. What do I mean by this: * imagine node having partitions 1, 2, and 3 * after the reassignment, the node has partitions 3, 4 and 5 Each individual distribution states that node only has 3 partitions, while during the rebalance, it may store all 5: sending 1 and 2 to some node, and receiving 4 and 5 from some different node. Multiply that by a big factor, and it is possible to have situation, where local number of partitions exceeds 65500. The only way to beat it, in my opinion, is to lower the hard limit in affinity function to 32xxx per node, leaving a space for partitions in a MOVING state. h4. Mapping partition ids With that being said, all that's left is to map logical partition ids from the range 0..N (where N is unlimited) to physical ids from the range 0..65500. Such mapping is a local entity, encapsulated deep inside of the storage engine. Simplest way to do so is to have a HashMap \{ logical -> physical } and to increase physical partition id by 1 every time you add a new partition to the node. If the {{values()}} set is not continuous, one may occupy the gap, it's not too hard to implement. Of course, this
[jira] [Created] (IGNITE-19254) Move ignite-ssh to extensions
Nikolay Izhikov created IGNITE-19254: Summary: Move ignite-ssh to extensions Key: IGNITE-19254 URL: https://issues.apache.org/jira/browse/IGNITE-19254 Project: Ignite Issue Type: Sub-task Reporter: Nikolay Izhikov -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-19133) Increase partitions count upper bound
[ https://issues.apache.org/jira/browse/IGNITE-19133?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ivan Bessonov updated IGNITE-19133: --- Description: h3. Problem Data partitioning is used to distribute data (hopefully) evenly across the cluster and to provide necessary operation parallelism for the end user. As a rule of thumb, one may consider allocating 256 partitions per Ignite node, in order to achieve that. This rule only scales up to a certain point. Imagine a cluster of 1000 nodes, with a table that has 3 replicas of each partition (ability to lose 1 backup). With current limit of 65500 partitions, the maximal number of partitions per node would be {{{}65500*3/1000 ~= 196{}}}. This is the limit of our scalability, according to aforementioned rule. To provide 256 partitions per node, the user would have to: * either increase the number of backups, which proportionally increases required storage space (affects cost), * or increase the total number of partitions up to about 85 thousands. This is not possible right now. h3. What's the reason of current limit Disclaimer: I'm not the one who designed it, so my thoughts may be speculative in some sense. Short answer is: we need a number of partitions to fit into 2 bytes. Long answer: in current implementation we have 1 to 1 correspondence between logical partition id and physical partition id. We use the same value both in affinity and in physical file name. This makes system simpler, and I believe that simplicity is the real explanation of the restriction. Why does it have to be 2 bytes, and not 3, for example. The key is the structure of page identifiers in data regions: {code:java} +---++-+-+ | rotation/item id (1 byte) | flags (1 byte) | partition (2 bytes) | index (4 bytes) | +---++-+-+{code} The idea was to fit it into 8 bytes. Good idea, in my opinion. Making it bigger doesn't feel right. h3. Proposed solution As mentioned, there are to components to the problem: # One to one correspondence between partition ids. # Hard limit in a single data region, caused by the page id layout. There's not much we can do with component #2, because the implications are unpredictable, and the amount of code we would need to fix is astonishing. h4. More reasonable restrictions This leads us to the following problem: every single Ignite node can't have more than 65500 partitions for a table (or distribution zone). So, imagine the situation: * user has a cluster with 3 nodes * user tries to create distribution zone with 3 nodes, 3 replicas for each partitions and 10 partitions While this is absurd, the configuration is still "valid", but it leads to 100k partitions per node, which is impossible. Such zone configurations must be banned. Such restriction doesn't seem unreasonable. If a user wants to start so many partitions for such a small cluster, they really don't understand what they're doing. This naturally gives us a minimal number of nodes per the number of partitions, as the following formula (assuming that you can't have 2 replicas of the same partition on the same Ignite node): {code:java} nodes >= min(replicas, ceil(partitions * replicas / 65500)) {code} This estimation is imprecise, because it assumes perfect distribution. In reality, rendezvous affinity is uneven, so the real value must be checked when user configures the number of nodes for specific distribution zone. h4. Ties to rebalance For this question I would probably need an assistance. While affinity reassignment, each node may store more partition then it's stated in every single distribution. What do I mean by this: * imagine node having partitions 1, 2, and 3 * after the reassignment, the node has partitions 3, 4 and 5 Each individual distribution states that node only has 3 partitions, while during the rebalance, it may store all 5: sending 1 and 2 to some node, and receiving 4 and 5 from some different node. Multiply that by a big factor, and it is possible to have situation, where local number of partitions exceeds 65500. The only way to beat it, in my opinion, is to lower the hard limit in affinity function to 32xxx per node, leaving a space for partitions in a MOVING state. h4. Mapping partition ids With that being said, all that's left is to map logical partition ids from the range 0..N (where N is unlimited) to physical ids from the range 0..65500. Such mapping is a local entity, encapsulated deep inside of the storage engine. Simplest way to do so is to have a HashMap \{ logical -> physical } and to increase physical partition id by 1 every time you insert a new value. If the {{values()}} set is not continuous, one may occupy the gap, it's not too hard to implement. Of course, this correspondence
[jira] [Updated] (IGNITE-18320) [IEP-94] Reimplement cache scan command to control.sh
[ https://issues.apache.org/jira/browse/IGNITE-18320?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-18320: --- Ignite Flags: Release Notes Required (was: Docs Required,Release Notes Required) > [IEP-94] Reimplement cache scan command to control.sh > - > > Key: IGNITE-18320 > URL: https://issues.apache.org/jira/browse/IGNITE-18320 > Project: Ignite > Issue Type: Improvement >Reporter: Nikolay Izhikov >Assignee: Aleksey Plekhanov >Priority: Blocker > Labels: IEP-94 > Fix For: 2.15 > > Time Spent: 20m > Remaining Estimate: 0h > > To decomission ignitevisorcmd.sh we need to move all useful commands to > control script. > > Cache scan command is used by users to view cache content so we must provide > it via control.sh -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-19253) [Missing Tests] check fails on windows agents
[ https://issues.apache.org/jira/browse/IGNITE-19253?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Anton Vinogradov updated IGNITE-19253: -- Fix Version/s: 2.15 > [Missing Tests] check fails on windows agents > - > > Key: IGNITE-19253 > URL: https://issues.apache.org/jira/browse/IGNITE-19253 > Project: Ignite > Issue Type: Bug >Reporter: Anton Vinogradov >Assignee: Anton Vinogradov >Priority: Major > Fix For: 2.15 > > > {noformat} > org.apache.ignite.tools.surefire.testsuites.CheckAllTestsInSuites > 12:53:08 check > 12:53:08 java.nio.file.InvalidPathException: Illegal char <:> at index > 2: /C:/BuildAgent/work/6429fa5c3148cb5c/modules/tools/target/classes/ > 12:53:08 java.nio.file.InvalidPathException: Illegal char <:> at index > 2: /C:/BuildAgent/work/6429fa5c3148cb5c/modules/tools/target/classes/ > at > org.apache.ignite.tools.surefire.testsuites.CheckAllTestsInSuites.check(CheckAllTestsInSuites.java:79) > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-19253) [Missing Tests] check fails on windows agents
Anton Vinogradov created IGNITE-19253: - Summary: [Missing Tests] check fails on windows agents Key: IGNITE-19253 URL: https://issues.apache.org/jira/browse/IGNITE-19253 Project: Ignite Issue Type: Bug Reporter: Anton Vinogradov Assignee: Anton Vinogradov {noformat} org.apache.ignite.tools.surefire.testsuites.CheckAllTestsInSuites 12:53:08 check 12:53:08 java.nio.file.InvalidPathException: Illegal char <:> at index 2: /C:/BuildAgent/work/6429fa5c3148cb5c/modules/tools/target/classes/ 12:53:08 java.nio.file.InvalidPathException: Illegal char <:> at index 2: /C:/BuildAgent/work/6429fa5c3148cb5c/modules/tools/target/classes/ at org.apache.ignite.tools.surefire.testsuites.CheckAllTestsInSuites.check(CheckAllTestsInSuites.java:79) {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-19248) Fix snapshot restore hanging if the prepare stage fails.
[ https://issues.apache.org/jira/browse/IGNITE-19248?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17709656#comment-17709656 ] Ignite TC Bot commented on IGNITE-19248: {panel:title=Branch: [pull/10629/head] Base: [master] : No blockers found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel} {panel:title=Branch: [pull/10629/head] Base: [master] : New Tests (4)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1} {color:#8b}Disk Page Compressions 1{color} [[tests 2|https://ci2.ignite.apache.org/viewLog.html?buildId=7126106]] * {color:#013220}IgnitePdsCompressionTestSuite: IncrementalSnapshotTest.testStagesFail[encryption=false, onlyPrimay=false] - PASSED{color} * {color:#013220}IgnitePdsCompressionTestSuite: IncrementalSnapshotTest.testStagesFail[encryption=false, onlyPrimay=true] - PASSED{color} {color:#8b}Snapshots{color} [[tests 2|https://ci2.ignite.apache.org/viewLog.html?buildId=7126992]] * {color:#013220}IgniteSnapshotTestSuite: IncrementalSnapshotTest.testStagesFail[encryption=false, onlyPrimay=false] - PASSED{color} * {color:#013220}IgniteSnapshotTestSuite: IncrementalSnapshotTest.testStagesFail[encryption=false, onlyPrimay=true] - PASSED{color} {panel} [TeamCity *-- Run :: All* Results|https://ci2.ignite.apache.org/viewLog.html?buildId=7126109buildTypeId=IgniteTests24Java8_RunAll] > Fix snapshot restore hanging if the prepare stage fails. > > > Key: IGNITE-19248 > URL: https://issues.apache.org/jira/browse/IGNITE-19248 > Project: Ignite > Issue Type: Bug >Reporter: Nikita Amelchev >Assignee: Nikita Amelchev >Priority: Major > Labels: ise > Fix For: 2.15 > > Time Spent: 10m > Remaining Estimate: 0h > > Snapshot restore hangs if the prepare stage fails. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-15040) Thin Client Compute: keepBinary flag is ignored when arg is an array
[ https://issues.apache.org/jira/browse/IGNITE-15040?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-15040: --- Fix Version/s: (was: 2.15) > Thin Client Compute: keepBinary flag is ignored when arg is an array > > > Key: IGNITE-15040 > URL: https://issues.apache.org/jira/browse/IGNITE-15040 > Project: Ignite > Issue Type: Bug > Components: thin client >Affects Versions: 2.9, 2.10, 2.9.1 >Reporter: Pavel Tupitsyn >Priority: Major > > {{ClientExecuteTaskRequest}} has {{arg instanceof BinaryObject}} check. When > arg is an array, elements won't be deserialized even when KEEP_BINARY flag is > not set. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-18766) Incorrect id check in ClusterGroupAdapter.forNodeId
[ https://issues.apache.org/jira/browse/IGNITE-18766?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Dmitry Pavlov updated IGNITE-18766: --- Labels: ise newbie (was: newbie) > Incorrect id check in ClusterGroupAdapter.forNodeId > --- > > Key: IGNITE-18766 > URL: https://issues.apache.org/jira/browse/IGNITE-18766 > Project: Ignite > Issue Type: Bug >Affects Versions: 2.14 >Reporter: Pavel Tupitsyn >Assignee: Denis Kuznetsov >Priority: Minor > Labels: ise, newbie > Fix For: 2.15 > > > ClusterGroup.forNodeId checks *id* in a loop instead of *id0*: > {code:java} > for (UUID id0 : ids) { > if (contains(id)) > nodeIds.add(id0); > } > {code} > https://github.com/apache/ignite/blob/3de1dc44f53ea510328badf6cb6b423fe6975bd8/modules/core/src/main/java/org/apache/ignite/internal/cluster/ClusterGroupAdapter.java#L461 > The following unit test demonstrates the problem: > {code:java} > @Test > public void testProjectionWithBadId() { > ClusterNode locNode = ignite.cluster().localNode(); > ClusterGroup prj = ignite.cluster().forNodeId(UUID.randomUUID(), > locNode.id()); > Collection nodes = prj.nodes(); > assertEquals(1, nodes.size()); > } > {code} > (add to GridProjectionForCachesSelfTest) -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Assigned] (IGNITE-18766) Incorrect id check in ClusterGroupAdapter.forNodeId
[ https://issues.apache.org/jira/browse/IGNITE-18766?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Denis Kuznetsov reassigned IGNITE-18766: Assignee: Denis Kuznetsov > Incorrect id check in ClusterGroupAdapter.forNodeId > --- > > Key: IGNITE-18766 > URL: https://issues.apache.org/jira/browse/IGNITE-18766 > Project: Ignite > Issue Type: Bug >Affects Versions: 2.14 >Reporter: Pavel Tupitsyn >Assignee: Denis Kuznetsov >Priority: Minor > Labels: newbie > Fix For: 2.15 > > > ClusterGroup.forNodeId checks *id* in a loop instead of *id0*: > {code:java} > for (UUID id0 : ids) { > if (contains(id)) > nodeIds.add(id0); > } > {code} > https://github.com/apache/ignite/blob/3de1dc44f53ea510328badf6cb6b423fe6975bd8/modules/core/src/main/java/org/apache/ignite/internal/cluster/ClusterGroupAdapter.java#L461 > The following unit test demonstrates the problem: > {code:java} > @Test > public void testProjectionWithBadId() { > ClusterNode locNode = ignite.cluster().localNode(); > ClusterGroup prj = ignite.cluster().forNodeId(UUID.randomUUID(), > locNode.id()); > Collection nodes = prj.nodes(); > assertEquals(1, nodes.size()); > } > {code} > (add to GridProjectionForCachesSelfTest) -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-19187) Sql. Handle StorageRebalanceException during rowsCount estimation
[ https://issues.apache.org/jira/browse/IGNITE-19187?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Pavel Pereslegin updated IGNITE-19187: -- Fix Version/s: 3.0.0-beta2 > Sql. Handle StorageRebalanceException during rowsCount estimation > - > > Key: IGNITE-19187 > URL: https://issues.apache.org/jira/browse/IGNITE-19187 > Project: Ignite > Issue Type: Bug > Components: sql >Reporter: Konstantin Orlov >Assignee: Pavel Pereslegin >Priority: Major > Labels: ignite-3 > Fix For: 3.0.0-beta2 > > > We need to handle StorageRebalanceException which may be thrown from > {{org.apache.ignite.internal.storage.MvPartitionStorage#rowsCount}} during > row count estimation > ({{org.apache.ignite.internal.sql.engine.schema.IgniteTableImpl.StatisticsImpl#getRowCount}}). > {code:java} > Caused by: org.apache.ignite.internal.storage.StorageRebalanceException: > IGN-STORAGE-4 TraceId:a943b5f5-8018-4c4b-9e66-cc5060796848 Storage in the > process of rebalancing: [table=TEST, partitionId=0] > at > app//org.apache.ignite.internal.storage.util.StorageUtils.throwExceptionDependingOnStorageState(StorageUtils.java:129) > at > app//org.apache.ignite.internal.storage.util.StorageUtils.throwExceptionIfStorageNotInRunnableState(StorageUtils.java:51) > at > app//org.apache.ignite.internal.storage.pagememory.mv.AbstractPageMemoryMvPartitionStorage.throwExceptionIfStorageNotInRunnableState(AbstractPageMemoryMvPartitionStorage.java:894) > at > app//org.apache.ignite.internal.storage.pagememory.mv.AbstractPageMemoryMvPartitionStorage.lambda$rowsCount$24(AbstractPageMemoryMvPartitionStorage.java:707) > at > app//org.apache.ignite.internal.storage.pagememory.mv.AbstractPageMemoryMvPartitionStorage.busy(AbstractPageMemoryMvPartitionStorage.java:785) > at > app//org.apache.ignite.internal.storage.pagememory.mv.AbstractPageMemoryMvPartitionStorage.rowsCount(AbstractPageMemoryMvPartitionStorage.java:706) > at > app//org.apache.ignite.internal.sql.engine.schema.IgniteTableImpl$StatisticsImpl.getRowCount(IgniteTableImpl.java:551) > at > app//org.apache.calcite.prepare.RelOptTableImpl.getRowCount(RelOptTableImpl.java:238) > at > app//org.apache.ignite.internal.sql.engine.rel.ProjectableFilterableTableScan.computeSelfCost(ProjectableFilterableTableScan.java:156) > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-17988) Wrong version of jackson-core dependency resolved in ml module
[ https://issues.apache.org/jira/browse/IGNITE-17988?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-17988: --- Ignite Flags: (was: Docs Required,Release Notes Required) > Wrong version of jackson-core dependency resolved in ml module > -- > > Key: IGNITE-17988 > URL: https://issues.apache.org/jira/browse/IGNITE-17988 > Project: Ignite > Issue Type: Bug > Components: build, ml >Affects Versions: 2.12, 2.13, 2.14 >Reporter: Vladimir Kornyshev >Assignee: Vladimir Kornyshev >Priority: Major > Labels: newbie > Fix For: 2.15 > > Time Spent: 10m > Remaining Estimate: 0h > > While building ml module resolved version of jackson-core is 2.7.4 instead of > necessary 2.12.7, because there are transitive dependency from > com.dropbox.core:dropbox-core-sdk. That leads to copying wrong artifact > jackson-core-2.7.4.jar to modules\ml\target\libs folder. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Resolved] (IGNITE-17988) Wrong version of jackson-core dependency resolved in ml module
[ https://issues.apache.org/jira/browse/IGNITE-17988?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov resolved IGNITE-17988. Resolution: Fixed > Wrong version of jackson-core dependency resolved in ml module > -- > > Key: IGNITE-17988 > URL: https://issues.apache.org/jira/browse/IGNITE-17988 > Project: Ignite > Issue Type: Bug > Components: build, ml >Affects Versions: 2.12, 2.13, 2.14 >Reporter: Vladimir Kornyshev >Assignee: Vladimir Kornyshev >Priority: Major > Labels: newbie > Fix For: 2.15 > > Time Spent: 10m > Remaining Estimate: 0h > > While building ml module resolved version of jackson-core is 2.7.4 instead of > necessary 2.12.7, because there are transitive dependency from > com.dropbox.core:dropbox-core-sdk. That leads to copying wrong artifact > jackson-core-2.7.4.jar to modules\ml\target\libs folder. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-17988) Wrong version of jackson-core dependency resolved in ml module
[ https://issues.apache.org/jira/browse/IGNITE-17988?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17709651#comment-17709651 ] Aleksey Plekhanov commented on IGNITE-17988: Looks like it has already been fixed by IGNITE-18108 > Wrong version of jackson-core dependency resolved in ml module > -- > > Key: IGNITE-17988 > URL: https://issues.apache.org/jira/browse/IGNITE-17988 > Project: Ignite > Issue Type: Bug > Components: build, ml >Affects Versions: 2.12, 2.13, 2.14 >Reporter: Vladimir Kornyshev >Assignee: Vladimir Kornyshev >Priority: Major > Labels: newbie > Fix For: 2.15 > > Time Spent: 10m > Remaining Estimate: 0h > > While building ml module resolved version of jackson-core is 2.7.4 instead of > necessary 2.12.7, because there are transitive dependency from > com.dropbox.core:dropbox-core-sdk. That leads to copying wrong artifact > jackson-core-2.7.4.jar to modules\ml\target\libs folder. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-19028) Implement safe-time propagation for meta-storage raft-group
[ https://issues.apache.org/jira/browse/IGNITE-19028?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17709650#comment-17709650 ] Kirill Tkalenko commented on IGNITE-19028: -- Looks good. > Implement safe-time propagation for meta-storage raft-group > --- > > Key: IGNITE-19028 > URL: https://issues.apache.org/jira/browse/IGNITE-19028 > Project: Ignite > Issue Type: Improvement >Reporter: Ivan Bessonov >Assignee: Semyon Danilov >Priority: Major > Labels: ignite-3 > Time Spent: 2.5h > Remaining Estimate: 0h > > For the future implementation of schema-synchronization, we need to have a > hybrid-timestamp, associated with the meta-storage. > Database schema changes are always associated with time, and proper place to > store them would be a meta-storage. > We don't have an "partition replica listener" that would have been a single > source of truth when it comes to new "write" commands. In case of > meta-storage, all nodes may create write commands. Assigning a time from the > _hlc_ wouldn't work - there's a chance of having out-of order events, which > is really, really bad. > In other words, timestamps should come in order. Does this mean that > meta-storage should also have its own replica listener? That's one > possibility. > Another possibility is to make leader into a timestamp-generator. This would > lead to changes in JRaft code, but still, this may be the right way to go. It > simply requires less changes to the code. We should just remember to adjust > the clock on leader's re-election, so that time would be monotonic. > By the way, if we go with the second option, it would also fit safe time > propagation in partitions. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Resolved] (IGNITE-17153) Java thin: ClientCache#query is lazy and does not match thick API behavior
[ https://issues.apache.org/jira/browse/IGNITE-17153?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] YuJue Li resolved IGNITE-17153. --- Resolution: Fixed The behavior of the thick client has been changed. > Java thin: ClientCache#query is lazy and does not match thick API behavior > -- > > Key: IGNITE-17153 > URL: https://issues.apache.org/jira/browse/IGNITE-17153 > Project: Ignite > Issue Type: Bug > Components: thin client >Affects Versions: 2.5 >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Minor > Fix For: 2.15 > > > *FieldsQueryCursor> query(SqlFieldsQuery qry)* method does not > execute the query if you don't iterate over the returned cursor. > This behavior differs from the thick API and can come as a surprise. > Either document it or change it to match the thick API. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-17153) Java thin: ClientCache#query is lazy and does not match thick API behavior
[ https://issues.apache.org/jira/browse/IGNITE-17153?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] YuJue Li updated IGNITE-17153: -- Fix Version/s: 2.15 (was: 2.16) > Java thin: ClientCache#query is lazy and does not match thick API behavior > -- > > Key: IGNITE-17153 > URL: https://issues.apache.org/jira/browse/IGNITE-17153 > Project: Ignite > Issue Type: Bug > Components: thin client >Affects Versions: 2.5 >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Minor > Fix For: 2.15 > > > *FieldsQueryCursor> query(SqlFieldsQuery qry)* method does not > execute the query if you don't iterate over the returned cursor. > This behavior differs from the thick API and can come as a surprise. > Either document it or change it to match the thick API. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-16619) IndexQuery should support limit
[ https://issues.apache.org/jira/browse/IGNITE-16619?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-16619: --- Fix Version/s: (was: 2.15) > IndexQuery should support limit > --- > > Key: IGNITE-16619 > URL: https://issues.apache.org/jira/browse/IGNITE-16619 > Project: Ignite > Issue Type: New Feature >Reporter: Maksim Timonin >Assignee: Maksim Timonin >Priority: Major > Labels: IEP-71 > > IndexQuery should provide functionality to limit result rows (by analogue > with TextQuery). -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-16452) IndexQuery can run on non-ready dynamically created index or rebuilding indexes
[ https://issues.apache.org/jira/browse/IGNITE-16452?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-16452: --- Fix Version/s: (was: 2.15) > IndexQuery can run on non-ready dynamically created index or rebuilding > indexes > --- > > Key: IGNITE-16452 > URL: https://issues.apache.org/jira/browse/IGNITE-16452 > Project: Ignite > Issue Type: Bug >Affects Versions: 2.12 >Reporter: Maksim Timonin >Assignee: Maksim Timonin >Priority: Major > Labels: IEP-49, IEP-71 > Time Spent: 10m > Remaining Estimate: 0h > > IndexProcessor register dynamically created index earlier than fill it with > data. > Then IndexQuery can reach the index before it actually ready. So we need to > restrict access for such indexes. > The same behavior is for rebuilding indexes. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-18875) Sql. Drop AbstractPlannerTest.TestTable.
[ https://issues.apache.org/jira/browse/IGNITE-18875?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17709646#comment-17709646 ] Evgeny Stanilovsky commented on IGNITE-18875: - ok, thanks i will check it. > Sql. Drop AbstractPlannerTest.TestTable. > > > Key: IGNITE-18875 > URL: https://issues.apache.org/jira/browse/IGNITE-18875 > Project: Ignite > Issue Type: Improvement > Components: sql >Reporter: Andrey Mashenkov >Assignee: Gael Yimen Yimga >Priority: Major > Labels: ignite-3, newbie, tech-debt-test > Fix For: 3.0.0-beta2 > > Attachments: Screen Shot 2023-04-03 at 1.04.39 AM.png > > Time Spent: 50m > Remaining Estimate: 0h > > Use test framework for schema configuration in tests. > Replace > {code:java} > org.apache.ignite.internal.sql.engine.planner.AbstractPlannerTest.TestTable > {code} > with > {code:java} > org.apache.ignite.internal.sql.engine.framework.TestTable > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-19238) ItDataTypesTest and ItCreateTableDdlTest are flaky
[ https://issues.apache.org/jira/browse/IGNITE-19238?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Alexander Lapin updated IGNITE-19238: - Description: h3. Description & Root cause 1. ItDataTypesTest is flaky because previous ItCreateTableDdlTest tests failed to stop replicas on node stop: !Снимок экрана от 2023-04-06 10-39-32.png! {code:java} java.lang.AssertionError: There are replicas alive [replicas=[b86c60a8-4ea3-4592-abef-6438cfc4cdb2_part_21, b86c60a8-4ea3-4592-abef-6438cfc4cdb2_part_6, b86c60a8-4ea3-4592-abef-6438cfc4cdb2_part_13, b86c60a8-4ea3-4592-abef-6438cfc4cdb2_part_8, b86c60a8-4ea3-4592-abef-6438cfc4cdb2_part_9, b86c60a8-4ea3-4592-abef-6438cfc4cdb2_part_11]] at org.apache.ignite.internal.replicator.ReplicaManager.stop(ReplicaManager.java:341) at org.apache.ignite.internal.app.LifecycleManager.lambda$stopAllComponents$1(LifecycleManager.java:133) at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133) at org.apache.ignite.internal.app.LifecycleManager.stopAllComponents(LifecycleManager.java:131) at org.apache.ignite.internal.app.LifecycleManager.stopNode(LifecycleManager.java:115){code} 2. The reason why we failed to stop replicas is the race between tablesToStopInCaseOfError cleanup and adding tables to tablesByIdVv. On TableManager stop, we stop and cleanup all table resources like replicas and raft nodes {code:java} public void stop() { ... Map tables = tablesByIdVv.latest(); // 1* cleanUpTablesResources(tables); cleanUpTablesResources(tablesToStopInCaseOfError); ... }{code} where tablesToStopInCaseOfError is a sort of pending tables list which one is cleared on cfg storage revision update. tablesByIdVv *listens same storage revision update event* in order to publish tables related to the given revision or in other words make such tables accessible from tablesByIdVv.latest(); that one that is used in order to retrieve tables for cleanup on components stop (see // 1* above) {code:java} public TableManager( ... tablesByIdVv = new IncrementalVersionedValue<>(registry, HashMap::new); registry.accept(token -> { tablesToStopInCaseOfError.clear(); return completedFuture(null); }); {code} However inside IncrementalVersionedValue we have async storageRevision update processing {code:java} updaterFuture = updaterFuture.whenComplete((v, t) -> versionedValue.complete(causalityToken, localUpdaterFuture)); {code} As a result it's possible that we will clear tablesToStopInCaseOfError before publishing same revision tables to tablesByIdVv, so that we will miss that cleared tables in tablesByIdVv.latest() which is used in TableManager#stop. h3. Implementation Notes 1. First of all I've renamed tablesToStopInCaseOfError to pending tables, because they aren't only ...InCaseOfError. 2. I've also reworked tablesToStopInCaseOfError cleanup by substituting tablesToStopInCaseOfError.clear on revision change with {code:java} tablesByIdVv.get(causalityToken).thenAccept(ignored -> inBusyLock(busyLock, ()-> { pendingTables.remove(tblId); })); {code} meaning that we 2.1. remove specific table by id instead of whole map clear. 2.2. do that removal on corresponding table publishing wihtin tablesByIdVv. 3. That means that at some point right after the publishing but before removal it's possible to have same table both within tablesByIdVv and pendingTables thus in order not to stop same table twice (which is safe by the way because of idempotentce) I've substituted {code:java} cleanUpTablesResources(tables); cleanUpTablesResources(tablesToStopInCaseOfError); {code} with {code:java} Map tablesToStop = Stream.concat(tablesByIdVv.latest().entrySet().stream(), pendingTables.entrySet().stream()). collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (v1, v2) -> v1)); cleanUpTablesResources(tablesToStop); {code} was: h3. Description & Root cause 1. ItDataTypesTest is flaky because previous ItCreateTableDdlTest tests failed to stop replicas on node stop: !Снимок экрана от 2023-04-06 10-39-32.png! {code:java} java.lang.AssertionError: There are replicas alive [replicas=[b86c60a8-4ea3-4592-abef-6438cfc4cdb2_part_21, b86c60a8-4ea3-4592-abef-6438cfc4cdb2_part_6, b86c60a8-4ea3-4592-abef-6438cfc4cdb2_part_13, b86c60a8-4ea3-4592-abef-6438cfc4cdb2_part_8, b86c60a8-4ea3-4592-abef-6438cfc4cdb2_part_9, b86c60a8-4ea3-4592-abef-6438cfc4cdb2_part_11]] at org.apache.ignite.internal.replicator.ReplicaManager.stop(ReplicaManager.java:341) at org.apache.ignite.internal.app.LifecycleManager.lambda$stopAllComponents$1(LifecycleManager.java:133) at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133) at org.apache.ignite.internal.app.LifecycleManager.stopAllComponents(LifecycleManager.java:131) at org.apache.ignite.internal.app.LifecycleManager.stopNode(LifecycleManager.java:115){code} 2. The
[jira] [Updated] (IGNITE-19017) IgniteMessaging.sendAsync is missing after withAsync deprecation
[ https://issues.apache.org/jira/browse/IGNITE-19017?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-19017: --- Fix Version/s: (was: 2.15) > IgniteMessaging.sendAsync is missing after withAsync deprecation > > > Key: IGNITE-19017 > URL: https://issues.apache.org/jira/browse/IGNITE-19017 > Project: Ignite > Issue Type: Bug > Components: messaging >Affects Versions: 2.0 >Reporter: Pavel Tupitsyn >Priority: Major > > As part of IGNITE-4475 , *IgniteMessaging.withAsync* was deprecated. However, > *sendAsync* methods were not added, even though underlying logic in > *IgniteMessagingImpl* supports that - we could send messages asynchronously > before via *withAsync*. > Add missing *sendAsync* methods. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-17153) Java thin: ClientCache#query is lazy and does not match thick API behavior
[ https://issues.apache.org/jira/browse/IGNITE-17153?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-17153: --- Fix Version/s: 2.16 (was: 2.15) > Java thin: ClientCache#query is lazy and does not match thick API behavior > -- > > Key: IGNITE-17153 > URL: https://issues.apache.org/jira/browse/IGNITE-17153 > Project: Ignite > Issue Type: Bug > Components: thin client >Affects Versions: 2.5 >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Minor > Fix For: 2.16 > > > *FieldsQueryCursor> query(SqlFieldsQuery qry)* method does not > execute the query if you don't iterate over the returned cursor. > This behavior differs from the thick API and can come as a surprise. > Either document it or change it to match the thick API. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-19238) ItDataTypesTest and ItCreateTableDdlTest are flaky
[ https://issues.apache.org/jira/browse/IGNITE-19238?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17709637#comment-17709637 ] Denis Chudov commented on IGNITE-19238: --- [~alapin] LGTM. > ItDataTypesTest and ItCreateTableDdlTest are flaky > -- > > Key: IGNITE-19238 > URL: https://issues.apache.org/jira/browse/IGNITE-19238 > Project: Ignite > Issue Type: Bug >Reporter: Alexander Lapin >Assignee: Alexander Lapin >Priority: Major > Labels: ignite-3 > Fix For: 3.0.0-beta2 > > Attachments: Снимок экрана от 2023-04-06 10-39-32.png > > Time Spent: 20m > Remaining Estimate: 0h > > h3. Description & Root cause > 1. ItDataTypesTest is flaky because previous ItCreateTableDdlTest tests > failed to stop replicas on node stop: > !Снимок экрана от 2023-04-06 10-39-32.png! > {code:java} > java.lang.AssertionError: There are replicas alive > [replicas=[b86c60a8-4ea3-4592-abef-6438cfc4cdb2_part_21, > b86c60a8-4ea3-4592-abef-6438cfc4cdb2_part_6, > b86c60a8-4ea3-4592-abef-6438cfc4cdb2_part_13, > b86c60a8-4ea3-4592-abef-6438cfc4cdb2_part_8, > b86c60a8-4ea3-4592-abef-6438cfc4cdb2_part_9, > b86c60a8-4ea3-4592-abef-6438cfc4cdb2_part_11]] > at > org.apache.ignite.internal.replicator.ReplicaManager.stop(ReplicaManager.java:341) > at > org.apache.ignite.internal.app.LifecycleManager.lambda$stopAllComponents$1(LifecycleManager.java:133) > at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133) > at > org.apache.ignite.internal.app.LifecycleManager.stopAllComponents(LifecycleManager.java:131) > at > org.apache.ignite.internal.app.LifecycleManager.stopNode(LifecycleManager.java:115){code} > 2. The reason why we failed to stop replicas is the race between > tablesToStopInCaseOfError cleanup and adding tables to tablesByIdVv. > On TableManager stop, we stop and cleanup all table resources like replicas > and raft nodes > {code:java} > public void stop() { > ... > Map tables = tablesByIdVv.latest(); // 1* > cleanUpTablesResources(tables); > cleanUpTablesResources(tablesToStopInCaseOfError); > ... > }{code} > where tablesToStopInCaseOfError is a sort of pending tables list which one is > cleared on cfg storage revision update. > tablesByIdVv *listens same storage revision update event* in order to publish > tables related to the given revision or in other words make such tables > accessible from tablesByIdVv.latest(); that one that is used in order to > retrieve tables for cleanup on components stop (see // 1* above) > {code:java} > public TableManager( > ... > tablesByIdVv = new IncrementalVersionedValue<>(registry, HashMap::new); > registry.accept(token -> { > tablesToStopInCaseOfError.clear(); > > return completedFuture(null); > }); > {code} > However inside IncrementalVersionedValue we have async storageRevision update > processing > {code:java} > updaterFuture = updaterFuture.whenComplete((v, t) -> > versionedValue.complete(causalityToken, localUpdaterFuture)); {code} > As a result it's possible that we will clear tablesToStopInCaseOfError before > publishing same revision tables to tablesByIdVv, so that we will miss that > cleared tables in tablesByIdVv.latest() which is used in TableManager#stop. > h3. Implementation Notes > 1. First of all I've renamed tablesToStopInCaseOfError to pending tables, > because they aren't only ...InCaseOfError. > 2. I've also reworked tablesToStopInCaseOfError cleanup by substituting > tablesToStopInCaseOfError.clear on revision change with > {code:java} > tablesByIdVv.get(causalityToken).thenAccept(ignored -> inBusyLock(busyLock, > ()-> { > pendingTables.remove(tblId); > })); {code} > meaning that we > 2.1. remove specific table by id instead of ready. > 2.2. do that removal on corresponding table publishing wihtin tablesByIdVv. > 3. That means that at some point right after the publishing but before > removal it's possible to have same table both within tablesByIdVv and > pendingTables thus in order not to stop same table twice (which is safe by > the way because of idempotentce) I've substituted > {code:java} > cleanUpTablesResources(tables); > cleanUpTablesResources(tablesToStopInCaseOfError); {code} > with > {code:java} > Map tablesToStop = > Stream.concat(tablesByIdVv.latest().entrySet().stream(), > pendingTables.entrySet().stream()). > collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (v1, > v2) -> v1)); > cleanUpTablesResources(tablesToStop); {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-17345) [IEP-35] Metric to track PA enabled request on ThinClient
[ https://issues.apache.org/jira/browse/IGNITE-17345?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Nikolay Izhikov updated IGNITE-17345: - Fix Version/s: 2.15 > [IEP-35] Metric to track PA enabled request on ThinClient > - > > Key: IGNITE-17345 > URL: https://issues.apache.org/jira/browse/IGNITE-17345 > Project: Ignite > Issue Type: Improvement >Reporter: Nikolay Izhikov >Assignee: Luchnikov Alexander >Priority: Major > Labels: IEP-35, ise > Fix For: 2.15 > > Time Spent: 1h 50m > Remaining Estimate: 0h > > The crucial point to understand ThinClient performance is to know - Partition > Awareness enabled or not. > For now, it's impossible to understand how many request goes to node that is > primary for key. > It seems useful metrics to analyze PA behavior - two counters to track amount > of requests for each server node > - one counter for keys current node is primary. > - another counter for keys which require extra network hop between server > nodes to serve the request. > For environment with optimal performance second counter should be close to > zero. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-19184) Add proper javadocs for the node's attributes feature
[ https://issues.apache.org/jira/browse/IGNITE-19184?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Mirza Aliev updated IGNITE-19184: - Description: We have several places where nodes attributes must be explained properly in the Public API, so we should add more details in that places, explaining zone filters, providing examples, etc. Seems like it is better to do this task closer to the end of the feature, when filtering will be implemented. was: We have several places where nodes attributes must be explained properly in the Public API, so we should add more details in that places, explaining zone filters, providing examples, etc. Seems like it is better to do closer to the end of feature, when filtering will be implemented. > Add proper javadocs for the node's attributes feature > -- > > Key: IGNITE-19184 > URL: https://issues.apache.org/jira/browse/IGNITE-19184 > Project: Ignite > Issue Type: Improvement >Reporter: Mirza Aliev >Priority: Major > Labels: ignite-3 > > We have several places where nodes attributes must be explained properly in > the Public API, > so we should add more details in that places, explaining zone filters, > providing examples, etc. > Seems like it is better to do this task closer to the end of the feature, > when filtering will be implemented. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-19237) Dependency copying should happed on package phase instead of test-compile
[ https://issues.apache.org/jira/browse/IGNITE-19237?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17709629#comment-17709629 ] Anton Vinogradov commented on IGNITE-19237: --- Merget to the master. [~timonin.maksim], thanks for the review! > Dependency copying should happed on package phase instead of test-compile > - > > Key: IGNITE-19237 > URL: https://issues.apache.org/jira/browse/IGNITE-19237 > Project: Ignite > Issue Type: Improvement >Reporter: Anton Vinogradov >Assignee: Anton Vinogradov >Priority: Major > Fix For: 2.15 > > Time Spent: 20m > Remaining Estimate: 0h > > According to the [plugin usage > examples|https://maven.apache.org/plugins/maven-dependency-plugin/usage.html] > the phase shoul be the `package`. > Lower phase may (will) cause sutuation when artifacts are not generated at > multi-level projects. > And you may gain the following: > {noformat} > Failed to execute goal > org.apache.maven.plugins:maven-dependency-plugin:3.1.1:copy-dependencies > (copy-libs) on project ignite-XXX-plugin: Artifact has not been packaged yet. > When used on reactor artifact, copy should be executed after packaging: see > MDEP-187. > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Comment Edited] (IGNITE-19237) Dependency copying should happed on package phase instead of test-compile
[ https://issues.apache.org/jira/browse/IGNITE-19237?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17709629#comment-17709629 ] Anton Vinogradov edited comment on IGNITE-19237 at 4/7/23 8:36 AM: --- Merged to the master. [~timonin.maksim], thanks for the review! was (Author: av): Merget to the master. [~timonin.maksim], thanks for the review! > Dependency copying should happed on package phase instead of test-compile > - > > Key: IGNITE-19237 > URL: https://issues.apache.org/jira/browse/IGNITE-19237 > Project: Ignite > Issue Type: Improvement >Reporter: Anton Vinogradov >Assignee: Anton Vinogradov >Priority: Major > Fix For: 2.15 > > Time Spent: 20m > Remaining Estimate: 0h > > According to the [plugin usage > examples|https://maven.apache.org/plugins/maven-dependency-plugin/usage.html] > the phase shoul be the `package`. > Lower phase may (will) cause sutuation when artifacts are not generated at > multi-level projects. > And you may gain the following: > {noformat} > Failed to execute goal > org.apache.maven.plugins:maven-dependency-plugin:3.1.1:copy-dependencies > (copy-libs) on project ignite-XXX-plugin: Artifact has not been packaged yet. > When used on reactor artifact, copy should be executed after packaging: see > MDEP-187. > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-16995) C++ Thin: Implement a RemoteFilter for ScanQuery
[ https://issues.apache.org/jira/browse/IGNITE-16995?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-16995: --- Fix Version/s: 2.16 (was: 2.15) > C++ Thin: Implement a RemoteFilter for ScanQuery > > > Key: IGNITE-16995 > URL: https://issues.apache.org/jira/browse/IGNITE-16995 > Project: Ignite > Issue Type: New Feature > Components: thin client >Affects Versions: 2.13 >Reporter: Igor Sapego >Assignee: Igor Sapego >Priority: Major > Fix For: 2.16 > > > Let's implement a RemoteFilter feature for C++ thin client. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-16996) Ignite C++: Implement a RemoteFilter for ScanQuery
[ https://issues.apache.org/jira/browse/IGNITE-16996?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-16996: --- Fix Version/s: 2.16 (was: 2.15) > Ignite C++: Implement a RemoteFilter for ScanQuery > -- > > Key: IGNITE-16996 > URL: https://issues.apache.org/jira/browse/IGNITE-16996 > Project: Ignite > Issue Type: New Feature > Components: platforms >Affects Versions: 2.13 >Reporter: Igor Sapego >Assignee: Igor Sapego >Priority: Major > Fix For: 2.16 > > > Let's implement a RemoteFilter feature for Ignite C++ (thick client). -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-18320) [IEP-94] Reimplement cache scan command to control.sh
[ https://issues.apache.org/jira/browse/IGNITE-18320?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17709621#comment-17709621 ] Ignite TC Bot commented on IGNITE-18320: {panel:title=Branch: [pull/10628/head] Base: [master] : No blockers found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel} {panel:title=Branch: [pull/10628/head] Base: [master] : New Tests (3)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1} {color:#8b}Control Utility 1{color} [[tests 2|https://ci2.ignite.apache.org/viewLog.html?buildId=7125895]] * {color:#013220}IgniteControlUtilityTestSuite: GridCommandHandlerClusterByClassWithSSLTest.testCacheScan - PASSED{color} * {color:#013220}IgniteControlUtilityTestSuite: GridCommandHandlerClusterByClassTest.testCacheScan - PASSED{color} {color:#8b}Control Utility (Zookeeper){color} [[tests 1|https://ci2.ignite.apache.org/viewLog.html?buildId=7125896]] * {color:#013220}ZookeeperIgniteControlUtilityTestSuite: GridCommandHandlerClusterByClassTest.testCacheScan - PASSED{color} {panel} [TeamCity *-- Run :: All* Results|https://ci2.ignite.apache.org/viewLog.html?buildId=7125966buildTypeId=IgniteTests24Java8_RunAll] > [IEP-94] Reimplement cache scan command to control.sh > - > > Key: IGNITE-18320 > URL: https://issues.apache.org/jira/browse/IGNITE-18320 > Project: Ignite > Issue Type: Improvement >Reporter: Nikolay Izhikov >Assignee: Aleksey Plekhanov >Priority: Blocker > Labels: IEP-94 > Fix For: 2.15 > > Time Spent: 10m > Remaining Estimate: 0h > > To decomission ignitevisorcmd.sh we need to move all useful commands to > control script. > > Cache scan command is used by users to view cache content so we must provide > it via control.sh -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Assigned] (IGNITE-14266) System views for page statistics must include the buckets sizes
[ https://issues.apache.org/jira/browse/IGNITE-14266?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov reassigned IGNITE-14266: -- Assignee: Aleksey Plekhanov > System views for page statistics must include the buckets sizes > --- > > Key: IGNITE-14266 > URL: https://issues.apache.org/jira/browse/IGNITE-14266 > Project: Ignite > Issue Type: Improvement >Reporter: Maxim Muzafarov >Assignee: Aleksey Plekhanov >Priority: Major > Fix For: 2.15 > > > Affected system views: CACHE_GROUP_PAGE_LISTS, DATA_REGION_PAGE_LISTS > The bucket index corresponds to the interval of free space on pages it > contains. We must add this info to the system views. > [1] > https://ignite.apache.org/docs/latest/monitoring-metrics/system-views#page_lists -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-18425) Add ability to flush cache entries to CDC
[ https://issues.apache.org/jira/browse/IGNITE-18425?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17709617#comment-17709617 ] Ignite TC Bot commented on IGNITE-18425: {panel:title=Branch: [pull/10524/head] Base: [master] : No blockers found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel} {panel:title=Branch: [pull/10524/head] Base: [master] : New Tests (9)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1} {color:#8b}Control Utility 2{color} [[tests 9|https://ci2.ignite.apache.org/viewLog.html?buildId=7126349]] * {color:#013220}IgniteControlUtilityTestSuite2: CdcCommandTest.testResendCancelOnNodeLeft - PASSED{color} * {color:#013220}IgniteControlUtilityTestSuite2: CdcCommandTest.testResendCacheData - PASSED{color} * {color:#013220}IgniteControlUtilityTestSuite2: CdcCommandTest.testResendCancelOnTopologyChangeBeforeStart - PASSED{color} * {color:#013220}IgniteControlUtilityTestSuite2: CdcCommandTest.testResendCancelOnTopologyChange - PASSED{color} * {color:#013220}IgniteControlUtilityTestSuite2: CdcCommandTest.testParseResend - PASSED{color} * {color:#013220}IgniteControlUtilityTestSuite2: CdcResendCommandTest.testResendCacheDataRestoreFromWal - PASSED{color} * {color:#013220}IgniteControlUtilityTestSuite2: CdcCommandTest.testResendCachesNotExist - PASSED{color} * {color:#013220}IgniteControlUtilityTestSuite2: CdcCommandTest.testResendCancelOnRebalanceInProgress - PASSED{color} * {color:#013220}IgniteControlUtilityTestSuite2: CdcCommandTest.testResendOnClientJoin - PASSED{color} {panel} [TeamCity *-- Run :: All* Results|https://ci2.ignite.apache.org/viewLog.html?buildId=7126353buildTypeId=IgniteTests24Java8_RunAll] > Add ability to flush cache entries to CDC > - > > Key: IGNITE-18425 > URL: https://issues.apache.org/jira/browse/IGNITE-18425 > Project: Ignite > Issue Type: New Feature >Reporter: Nikita Amelchev >Assignee: Nikita Amelchev >Priority: Major > Labels: IEP-59, ise > Fix For: 2.15 > > Time Spent: 3.5h > Remaining Estimate: 0h > > This feature is useful for pre-synchronizing clusters: > - adding a new inactive cluster, > - long unavailability of the cluster. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Resolved] (IGNITE-15761) [IEP-80] Removal of legacy JMX metrics beans
[ https://issues.apache.org/jira/browse/IGNITE-15761?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Nikolay Izhikov resolved IGNITE-15761. -- Resolution: Fixed > [IEP-80] Removal of legacy JMX metrics beans > > > Key: IGNITE-15761 > URL: https://issues.apache.org/jira/browse/IGNITE-15761 > Project: Ignite > Issue Type: Improvement >Reporter: Nikolay Izhikov >Priority: Major > Labels: IEP-80, ise > Fix For: 2.15 > > > New metric subsystem exists for a some time and highly adopted by the users. > Legacy JMX metrics beans are deprecated several releases. > Should be removed in 2.13 -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Assigned] (IGNITE-18991) Move stable/planned/pending assignments from table to distribution zone root keys
[ https://issues.apache.org/jira/browse/IGNITE-18991?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Vyacheslav Koptilin reassigned IGNITE-18991: Assignee: Kirill Gusakov > Move stable/planned/pending assignments from table to distribution zone root > keys > - > > Key: IGNITE-18991 > URL: https://issues.apache.org/jira/browse/IGNITE-18991 > Project: Ignite > Issue Type: Task >Reporter: Kirill Gusakov >Assignee: Kirill Gusakov >Priority: Major > Labels: ignite-3 > > Under the activities about moving distribution zone based data management we > need to: > * Remove assignments from TableConfiguration and use metastore based stable > assignments instead > * Replace metastore stable/planned/pending assignments per table by the same > per distribution zone with the correspondance keys roots zoneId.* > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Assigned] (IGNITE-18955) Add the ability to use filters when data nodes are calculated
[ https://issues.apache.org/jira/browse/IGNITE-18955?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Vyacheslav Koptilin reassigned IGNITE-18955: Assignee: Mirza Aliev > Add the ability to use filters when data nodes are calculated > - > > Key: IGNITE-18955 > URL: https://issues.apache.org/jira/browse/IGNITE-18955 > Project: Ignite > Issue Type: Improvement >Reporter: Mirza Aliev >Assignee: Mirza Aliev >Priority: Major > Labels: ignite-3 > > {*}Motivation{*}: > We need to be able to use filters when data nodes are recalculated > *Definition of done:* > * Filters are applied when data nodes are recalculated > *Implementation details:* > After the parsing phase, the expression can be converted to a condition for > the filter from the Java Stream API. This filtering can be performed on a set > of nodes’ attributes. This set could be retrieved from the CMG, we just need > consistentIds of nodes. > After that we need to use this filter when we write data nodes to metastore, > there are few places, where we do that > * {{DistributionZoneManager#saveDataNodesToMetaStorageOnScaleUp}} > * {{DistributionZoneManager#saveDataNodesToMetaStorageOnScaleDown}} > * {{DistributionZoneManager#saveDataNodesAndUpdateTriggerKeysInMetaStorage}} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-19167) Support @Secret annotation on the configuration storage layer
[ https://issues.apache.org/jira/browse/IGNITE-19167?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ivan Gagarkin updated IGNITE-19167: --- Description: Currently, Ignite stores sensitive configuration settings along with general settings. We need to separate them. Ignite should store sensitive information separately and securely. > Support @Secret annotation on the configuration storage layer > - > > Key: IGNITE-19167 > URL: https://issues.apache.org/jira/browse/IGNITE-19167 > Project: Ignite > Issue Type: Improvement >Reporter: Ivan Gagarkin >Priority: Critical > Labels: ignite-3 > > Currently, Ignite stores sensitive configuration settings along with general > settings. We need to separate them. > Ignite should store sensitive information separately and securely. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-18572) Add query thread pool metrics in the log file
[ https://issues.apache.org/jira/browse/IGNITE-18572?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-18572: --- Fix Version/s: 2.16 (was: 2.15) > Add query thread pool metrics in the log file > - > > Key: IGNITE-18572 > URL: https://issues.apache.org/jira/browse/IGNITE-18572 > Project: Ignite > Issue Type: Improvement > Components: general >Affects Versions: 2.14 >Reporter: YuJue Li >Assignee: YuJue Li >Priority: Minor > Fix For: 2.16 > > > Add query thread pool metrics in the log file. > The current metric output includes Public, System and Striped thread pool. It > is necessary to add the metric output of Query thread pool, -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Resolved] (IGNITE-17117) Analyze Table SQL Statement not working with Ignite 2.13.0
[ https://issues.apache.org/jira/browse/IGNITE-17117?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov resolved IGNITE-17117. Fix Version/s: 2.14 (was: 2.15) Resolution: Duplicate > Analyze Table SQL Statement not working with Ignite 2.13.0 > -- > > Key: IGNITE-17117 > URL: https://issues.apache.org/jira/browse/IGNITE-17117 > Project: Ignite > Issue Type: Bug >Affects Versions: 2.13 >Reporter: Sachin Janani >Priority: Critical > Fix For: 2.14 > > > Running ANALYZE table SQL statement is failing with following exception: > {code:java} > 0: jdbc:ignite:thin://127.0.0.1/> ANALYZE PRODUCT_TABLE; Error: Failed to > parse query. Syntax error in SQL statement "ANALYZE PRODUCT_TABLE[*]"; SQL > statement: ANALYZE PRODUCT_TABLE [42000-197] (state=42000,code=1001) > java.sql.SQLException: Failed to parse query. Syntax error in SQL statement > "ANALYZE PRODUCT_TABLE[*]"; SQL statement: ANALYZE PRODUCT_TABLE [42000-197] > at > org.apache.ignite.internal.jdbc.thin.JdbcThinConnection.sendRequest(JdbcThinConnection.java:1009) > at > org.apache.ignite.internal.jdbc.thin.JdbcThinStatement.execute0(JdbcThinStatement.java:234) > at > org.apache.ignite.internal.jdbc.thin.JdbcThinStatement.execute(JdbcThinStatement.java:560) > at sqlline.Commands.executeSingleQuery(Commands.java:1054) at > sqlline.Commands.execute(Commands.java:1003) at > sqlline.Commands.sql(Commands.java:967) at > sqlline.SqlLine.dispatch(SqlLine.java:734) at > sqlline.SqlLine.begin(SqlLine.java:541) at > sqlline.SqlLine.start(SqlLine.java:267) at > sqlline.SqlLine.main(SqlLine.java:206) 0: jdbc:ignite:thin://127.0.0.1/> > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-16981) Extensions must have a build assembly to prepare the Ignite distibution with required extensions
[ https://issues.apache.org/jira/browse/IGNITE-16981?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-16981: --- Fix Version/s: (was: 2.15) > Extensions must have a build assembly to prepare the Ignite distibution with > required extensions > > > Key: IGNITE-16981 > URL: https://issues.apache.org/jira/browse/IGNITE-16981 > Project: Ignite > Issue Type: Task > Components: extensions >Reporter: Maxim Muzafarov >Priority: Major > > We should provide an ability to build the Ignite binary distribution from the > command line with required extensions (like the > dependencies-apache-ignite-lgpl.xml assembly does). -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-15516) Add DistributedProcess chaining
[ https://issues.apache.org/jira/browse/IGNITE-15516?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-15516: --- Fix Version/s: (was: 2.15) > Add DistributedProcess chaining > --- > > Key: IGNITE-15516 > URL: https://issues.apache.org/jira/browse/IGNITE-15516 > Project: Ignite > Issue Type: Improvement >Reporter: Maxim Muzafarov >Assignee: Maxim Muzafarov >Priority: Major > Labels: ise > > The Ignite's {{DistributedProcess}} is a cluster-wide process that > accumulates single nodes results to finish itself. The process has of the > following phases: > - The initial request starts the process via discovery. > - The coordinator accumulates all single nodes results and finish process. > The finished message sends via discory to each node. > To run a distributed processes afther the desired distributed process is > finished you need to call 'start' of the next distributed process on > coordinator. This lead to the creation of boilerplate code each time you need > to run next. > It is necessary to configure such thing at the processes initialization. > {{prepareSomethingDistribProc.thenRun(rollbackDistribProc)}} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-16949) Update documantaion links for spring-data examples and code snippets
[ https://issues.apache.org/jira/browse/IGNITE-16949?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-16949: --- Component/s: documentation > Update documantaion links for spring-data examples and code snippets > > > Key: IGNITE-16949 > URL: https://issues.apache.org/jira/browse/IGNITE-16949 > Project: Ignite > Issue Type: Task > Components: documentation >Reporter: Maxim Muzafarov >Assignee: Maxim Muzafarov >Priority: Major > Fix For: 2.15 > > > Some of the examples of the spring-data code snippents and links to the > examples are out of date after the spring-data modules removal. > These documentation pages must be updated. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-15268) Maintenance mode log messages need to be more informative
[ https://issues.apache.org/jira/browse/IGNITE-15268?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-15268: --- Fix Version/s: (was: 2.15) > Maintenance mode log messages need to be more informative > - > > Key: IGNITE-15268 > URL: https://issues.apache.org/jira/browse/IGNITE-15268 > Project: Ignite > Issue Type: Improvement >Affects Versions: 2.10 >Reporter: Sergey Chugunov >Priority: Major > > When a node enters maintenance mode (for any reason), only basic information > is printed to the logs: > {code:java} > [INFO] Node requires maintenance, non-empty set of maintenance tasks is > found: [corrupted-cache-data-files-task] > {code} > It would be better for end-user to provide a link to some documentation about > maintenance mode or some help for the particular maintenance situation. > Right now users may be confused what to do next and how to make Ignite node > leave maintenance mode and restore normal operations. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-15318) Cache (Restarts) 1 still flaky
[ https://issues.apache.org/jira/browse/IGNITE-15318?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-15318: --- Fix Version/s: (was: 2.15) > Cache (Restarts) 1 still flaky > -- > > Key: IGNITE-15318 > URL: https://issues.apache.org/jira/browse/IGNITE-15318 > Project: Ignite > Issue Type: Bug >Affects Versions: 2.10 >Reporter: Alexey Scherbakov >Priority: Major > > This is a follow up ticket to [1] > There were various fixes implemented but it seems a root cause still not > determined, see TC history [2] > Most likely the issue is caused by buggy near tx protocol. > [1] https://issues.apache.org/jira/browse/IGNITE-13441 > [2] > [https://ci.ignite.apache.org/viewType.html?buildTypeId=IgniteTests24Java8_CacheRestarts1=buildTypeStatusDiv_IgniteTests24Java8=%3Cdefault%3E=true] -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-15342) Fix partition eviction process logging
[ https://issues.apache.org/jira/browse/IGNITE-15342?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-15342: --- Fix Version/s: (was: 2.15) > Fix partition eviction process logging > -- > > Key: IGNITE-15342 > URL: https://issues.apache.org/jira/browse/IGNITE-15342 > Project: Ignite > Issue Type: Task >Reporter: Maxim Muzafarov >Priority: Major > > There is unnecessary logging during the eviction process. > {code} > [2021-08-19 18:07:08,483][INFO > ][exchange-worker-#63%snapshot.IgniteClusterSnapshotRestoreSelfTest0%][PartitionsEvictManager] > Eviction in progress [groups=1, remainingPartsToEvict=0] > [2021-08-19 18:07:08,483][INFO > ][exchange-worker-#131%snapshot.IgniteClusterSnapshotRestoreSelfTest1%][PartitionsEvictManager] > Eviction in progress [groups=1, remainingPartsToEvict=0] > [2021-08-19 18:07:08,484][INFO > ][exchange-worker-#131%snapshot.IgniteClusterSnapshotRestoreSelfTest1%][PartitionsEvictManager] > Group eviction in progress [grpName=default, grpId=1544803905, > remainingPartsToEvict=1, partsEvictInProgress=0, totalParts=4] > [2021-08-19 18:07:08,484][INFO > ][exchange-worker-#63%snapshot.IgniteClusterSnapshotRestoreSelfTest0%][PartitionsEvictManager] > Group eviction in progress [grpName=shared, grpId=-903566235, > remainingPartsToEvict=1, partsEvictInProgress=0, totalParts=4] > [2021-08-19 18:07:08,485][INFO > ][exchange-worker-#63%snapshot.IgniteClusterSnapshotRestoreSelfTest0%][PartitionsEvictManager] > Partitions have been scheduled for eviction: [grpId=-903566235, > grpName=shared, clearing=[0]] > [2021-08-19 18:07:08,485][INFO > ][exchange-worker-#131%snapshot.IgniteClusterSnapshotRestoreSelfTest1%][PartitionsEvictManager] > Partitions have been scheduled for eviction: [grpId=1544803905, > grpName=default, eviction=[2]] > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-9386) control.sh --tx can produce confusing results when limit is set to small value
[ https://issues.apache.org/jira/browse/IGNITE-9386?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-9386: -- Fix Version/s: (was: 2.15) > control.sh --tx can produce confusing results when limit is set to small value > -- > > Key: IGNITE-9386 > URL: https://issues.apache.org/jira/browse/IGNITE-9386 > Project: Ignite > Issue Type: Improvement > Components: control.sh >Affects Versions: 2.10 >Reporter: Alexey Scherbakov >Assignee: Rodion Smolnikov >Priority: Major > Time Spent: 1h 50m > Remaining Estimate: 0h > > This is happening because currently the limit is applied to primary and > backup transactions, which breaks output post-filtering (removal of primary > and backup transactions from output if near is present). > Possible solution: apply limit only to near valid transactions. If some txs > have no near part (broken tx topology), they should be always visible in > output, probably with special "broken" marking. > Best way to achieve this - implement tx paging on client side (using > continuous mapping) -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-17835) partition lost check improvement
[ https://issues.apache.org/jira/browse/IGNITE-17835?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-17835: --- Fix Version/s: (was: 2.15) > partition lost check improvement > > > Key: IGNITE-17835 > URL: https://issues.apache.org/jira/browse/IGNITE-17835 > Project: Ignite > Issue Type: Improvement > Components: cache >Affects Versions: 2.13 >Reporter: YuJue Li >Priority: Major > > Start two nodes with native persistent enabled, and then activate it. > create a table with no backups, sql like follows: > {noformat} > CREATE TABLE City ( > ID INT, > Name VARCHAR, > CountryCode CHAR(3), > District VARCHAR, > Population INT, > PRIMARY KEY (ID, CountryCode) > ) WITH "template=partitioned, affinityKey=CountryCode, CACHE_NAME=City, > KEY_TYPE=demo.model.CityKey, VALUE_TYPE=demo.model.City"; > INSERT INTO City(ID, Name, CountryCode, District, Population) VALUES > (1,'Kabul','AFG','Kabol',178); > INSERT INTO City(ID, Name, CountryCode, District, Population) VALUES > (2,'Qandahar','AFG','Qandahar',237500); > {noformat} > then execute > {noformat} > SELECT COUNT FROM city; > {noformat} > The result is OK. > then kill one node and then execute > {noformat}SELECT COUNT(*) FROM city;{noformat} > The result is > {noformat}Failed to execute query because cache partition has been lostPart > [cacheName=City, part=0]{noformat} > This is expected behavior as well. > Next, start the node that was shut down before and execute the same request: > {noformat}SELECT COUNT(*) FROM city;{noformat} > The result is the following: > {noformat}Failed to execute query because cache partition has been lostPart > [cacheName=City, part=0]{noformat} > At this time, all partitions have been recovered, and all baseline nodes are > ONLINE. Execute reset_lost_partitions operation at this time seems redundant. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-17945) Change message in case watchdog thread observes freeze
[ https://issues.apache.org/jira/browse/IGNITE-17945?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-17945: --- Fix Version/s: (was: 2.15) > Change message in case watchdog thread observes freeze > -- > > Key: IGNITE-17945 > URL: https://issues.apache.org/jira/browse/IGNITE-17945 > Project: Ignite > Issue Type: Improvement >Reporter: Dmitry Pavlov >Priority: Minor > Labels: ise, newbie > Time Spent: 1h > Remaining Estimate: 0h > > In Long JVM pause detector we warn user that the thread wasn't alive for a > threshold > Possible too long JVM pause: 500+ milliseconds. > But it is often treated as a GC pause. > We can change that warning to > Possible too long JVM pause: 500+ milliseconds. (GC pause or hardware > temporary freeze) > To enlist possible reasons behind that behaviour -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-18038) Error warning:“Unordered map java.util.LinkedHashMap is used for putAll operation on cache”
[ https://issues.apache.org/jira/browse/IGNITE-18038?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-18038: --- Fix Version/s: (was: 2.15) > Error warning:“Unordered map java.util.LinkedHashMap is used for putAll > operation on cache” > --- > > Key: IGNITE-18038 > URL: https://issues.apache.org/jira/browse/IGNITE-18038 > Project: Ignite > Issue Type: Improvement > Components: cache >Affects Versions: 2.14 >Reporter: YuJue Li >Assignee: YuJue Li >Priority: Minor > Time Spent: 10m > Remaining Estimate: 0h > > LinkedHashMap is an ordered Map type. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-14532) Thin client: Unordered map used for putAll warning is unavoidable
[ https://issues.apache.org/jira/browse/IGNITE-14532?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-14532: --- Fix Version/s: (was: 2.15) > Thin client: Unordered map used for putAll warning is unavoidable > - > > Key: IGNITE-14532 > URL: https://issues.apache.org/jira/browse/IGNITE-14532 > Project: Ignite > Issue Type: New Feature > Components: thin client >Reporter: Pavel Tupitsyn >Assignee: Pavel Tupitsyn >Priority: Minor > > Thin client uses LinkedHashMap to preserve client-side entry order. Ignite > logs a warning and there is no way to fix it for the user: > {code} > Unordered map java.util.HashMap is used for putAll operation on cache exact. > This can lead to a distributed deadlock. Switch to a sorted map like TreeMap > instead. > {code} > We should suppress this warning for thin client operations, since it does not > make sense. Thin clients have different language-specific APIs, some of them > don't even use maps. The same applies to PlatformCache (thick C# & C++). > We should have an internal method that does not produce a warning, and, > ideally, does not require a Map. Using LinkedHashMap as an intermediate > collection produces unnecessary overhead and allocations, we could use an > array of key-value pairs instead. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-15765) [IEP-80] Removal of legacy SqlQuery support
[ https://issues.apache.org/jira/browse/IGNITE-15765?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-15765: --- Fix Version/s: (was: 2.15) > [IEP-80] Removal of legacy SqlQuery support > --- > > Key: IGNITE-15765 > URL: https://issues.apache.org/jira/browse/IGNITE-15765 > Project: Ignite > Issue Type: Improvement >Reporter: Nikolay Izhikov >Priority: Major > Labels: IEP-80 > > Legacy SqlQuery deprecated for a while and can be remove -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-15762) [IEP-80] Migrate Ignite.C++ to C++ 11
[ https://issues.apache.org/jira/browse/IGNITE-15762?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-15762: --- Fix Version/s: (was: 2.15) > [IEP-80] Migrate Ignite.C++ to C++ 11 > - > > Key: IGNITE-15762 > URL: https://issues.apache.org/jira/browse/IGNITE-15762 > Project: Ignite > Issue Type: Improvement > Components: platforms >Reporter: Ivan Daschinsky >Priority: Major > Labels: IEP-80 > > Since C++ 11 is widely adopted, we should move forward and make our C++ part > compatible with it. > # Remove {{auto_ptr}} and use {{unique_ptr}} > # Utilize move semantics. > # Get rid of custom implementation of atomics, mutex, condition variables and > so on. > Use standard ones. > # Change in tests BOOST implementations to standard library ones whenever it > is possible. > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-15761) [IEP-80] Removal of legacy JMX metrics beans
[ https://issues.apache.org/jira/browse/IGNITE-15761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17709608#comment-17709608 ] Aleksey Plekhanov commented on IGNITE-15761: [~nizhikov] all sub-tasks for this ticket are resolved. Can we mark this ticket as resolved too? > [IEP-80] Removal of legacy JMX metrics beans > > > Key: IGNITE-15761 > URL: https://issues.apache.org/jira/browse/IGNITE-15761 > Project: Ignite > Issue Type: Improvement >Reporter: Nikolay Izhikov >Priority: Major > Labels: IEP-80, ise > Fix For: 2.15 > > > New metric subsystem exists for a some time and highly adopted by the users. > Legacy JMX metrics beans are deprecated several releases. > Should be removed in 2.13 -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-15221) Investigate and fix flaky testClusterSnapshotWithRebalancing
[ https://issues.apache.org/jira/browse/IGNITE-15221?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-15221: --- Fix Version/s: 2.16 (was: 2.15) > Investigate and fix flaky testClusterSnapshotWithRebalancing > > > Key: IGNITE-15221 > URL: https://issues.apache.org/jira/browse/IGNITE-15221 > Project: Ignite > Issue Type: Task >Reporter: Maxim Muzafarov >Assignee: Maxim Muzafarov >Priority: Critical > Labels: iep-43 > Fix For: 2.16 > > > Test testClusterSnapshotWithRebalancing hangs during the snapshot creation. > The cause needs to be investigated and fixed. > [https://ci.ignite.apache.org/project.html?projectId=IgniteTests24Java8=-321293767845540479=%3Cdefault%3E=testDetails] -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-15760) [IEP-80] Removal of MVCC caches support
[ https://issues.apache.org/jira/browse/IGNITE-15760?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-15760: --- Fix Version/s: (was: 2.15) > [IEP-80] Removal of MVCC caches support > --- > > Key: IGNITE-15760 > URL: https://issues.apache.org/jira/browse/IGNITE-15760 > Project: Ignite > Issue Type: Improvement >Reporter: Nikolay Izhikov >Priority: Major > Labels: IEP-80 > > MVCC cachens has huge amount of known limitation and not intended to be used > in production environment. > Should be deprecated in 2.13 -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-12662) Get rid of CacheConfiguration#getRebalanceDelay and related functionality.
[ https://issues.apache.org/jira/browse/IGNITE-12662?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-12662: --- Fix Version/s: (was: 2.15) > Get rid of CacheConfiguration#getRebalanceDelay and related functionality. > -- > > Key: IGNITE-12662 > URL: https://issues.apache.org/jira/browse/IGNITE-12662 > Project: Ignite > Issue Type: Improvement >Reporter: Alexey Scherbakov >Assignee: Maxim Muzafarov >Priority: Major > Labels: IEP-80 > > We have for a long time this property to mitigate a case with premature > rebalancing on node restart. > Currently this is handled by baseline topology. > I suggest to deprecate and remove related functionality in next releases. > For example org.apache.ignite.IgniteCache#rebalance is no longer needed as > well. > [Dev list > discussion|http://apache-ignite-developers.2346864.n4.nabble.com/DISCUSSION-Deprecation-of-obsolete-rebalancing-functionality-td45824.html] > -- This message was sent by Atlassian Jira (v8.20.10#820010)