[jira] [Updated] (IGNITE-18496) Handle documentation feedback

2023-04-07 Thread YuJue Li (Jira)


 [ 
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

2023-04-07 Thread YuJue Li (Jira)


 [ 
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

2023-04-07 Thread YuJue Li (Jira)
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

2023-04-07 Thread YuJue Li (Jira)
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.

2023-04-07 Thread Nikita Amelchev (Jira)


 [ 
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

2023-04-07 Thread Maxim Muzafarov (Jira)


[ 
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

2023-04-07 Thread Nikolay Izhikov (Jira)


 [ 
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

2023-04-07 Thread Nikolay Izhikov (Jira)


 [ 
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

2023-04-07 Thread Nikolay Izhikov (Jira)


 [ 
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

2023-04-07 Thread Ignite TC Bot (Jira)


[ 
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.

2023-04-07 Thread Nikita Amelchev (Jira)
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

2023-04-07 Thread Pavel Tupitsyn (Jira)
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

2023-04-07 Thread Pavel Tupitsyn (Jira)


 [ 
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

2023-04-07 Thread Pavel Tupitsyn (Jira)


 [ 
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

2023-04-07 Thread Pavel Tupitsyn (Jira)


 [ 
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

2023-04-07 Thread Pavel Tupitsyn (Jira)


[ 
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

2023-04-07 Thread Aleksandr Polovtcev (Jira)


 [ 
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

2023-04-07 Thread Aleksandr Polovtcev (Jira)


 [ 
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

2023-04-07 Thread Aleksandr Polovtcev (Jira)


 [ 
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

2023-04-07 Thread Aleksandr Polovtcev (Jira)


 [ 
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

2023-04-07 Thread Aleksandr Polovtcev (Jira)


 [ 
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

2023-04-07 Thread Pavel Tupitsyn (Jira)


 [ 
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

2023-04-07 Thread Pavel Tupitsyn (Jira)


 [ 
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

2023-04-07 Thread Aleksandr Polovtcev (Jira)


 [ 
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

2023-04-07 Thread Aleksandr Polovtcev (Jira)


 [ 
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.

2023-04-07 Thread Ignite TC Bot (Jira)


[ 
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

2023-04-07 Thread Aleksandr Polovtcev (Jira)


 [ 
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

2023-04-07 Thread Aleksandr Polovtcev (Jira)


 [ 
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

2023-04-07 Thread Aleksandr Polovtcev (Jira)


 [ 
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

2023-04-07 Thread Aleksey Plekhanov (Jira)


 [ 
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

2023-04-07 Thread Aleksey Plekhanov (Jira)


 [ 
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

2023-04-07 Thread Aleksandr Polovtcev (Jira)


 [ 
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

2023-04-07 Thread Aleksandr Polovtcev (Jira)


 [ 
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

2023-04-07 Thread Aleksandr Polovtcev (Jira)


 [ 
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

2023-04-07 Thread Aleksandr Polovtcev (Jira)
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

2023-04-07 Thread Anton Vinogradov (Jira)


[ 
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

2023-04-07 Thread Anton Vinogradov (Jira)


[ 
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

2023-04-07 Thread Anton Vinogradov (Jira)


[ 
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

2023-04-07 Thread Dmitry Pavlov (Jira)


 [ 
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

2023-04-07 Thread Kirill Tkalenko (Jira)


 [ 
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

2023-04-07 Thread Ivan Bessonov (Jira)


 [ 
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

2023-04-07 Thread Nikolay Izhikov (Jira)
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

2023-04-07 Thread Ivan Bessonov (Jira)


 [ 
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

2023-04-07 Thread Aleksey Plekhanov (Jira)


 [ 
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

2023-04-07 Thread Anton Vinogradov (Jira)


 [ 
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

2023-04-07 Thread Anton Vinogradov (Jira)
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.

2023-04-07 Thread Ignite TC Bot (Jira)


[ 
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

2023-04-07 Thread Aleksey Plekhanov (Jira)


 [ 
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

2023-04-07 Thread Dmitry Pavlov (Jira)


 [ 
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

2023-04-07 Thread Denis Kuznetsov (Jira)


 [ 
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

2023-04-07 Thread Pavel Pereslegin (Jira)


 [ 
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

2023-04-07 Thread Aleksey Plekhanov (Jira)


 [ 
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

2023-04-07 Thread Aleksey Plekhanov (Jira)


 [ 
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

2023-04-07 Thread Aleksey Plekhanov (Jira)


[ 
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

2023-04-07 Thread Kirill Tkalenko (Jira)


[ 
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

2023-04-07 Thread YuJue Li (Jira)


 [ 
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

2023-04-07 Thread YuJue Li (Jira)


 [ 
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

2023-04-07 Thread Aleksey Plekhanov (Jira)


 [ 
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

2023-04-07 Thread Aleksey Plekhanov (Jira)


 [ 
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.

2023-04-07 Thread Evgeny Stanilovsky (Jira)


[ 
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

2023-04-07 Thread Alexander Lapin (Jira)


 [ 
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

2023-04-07 Thread Aleksey Plekhanov (Jira)


 [ 
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

2023-04-07 Thread Aleksey Plekhanov (Jira)


 [ 
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

2023-04-07 Thread Denis Chudov (Jira)


[ 
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

2023-04-07 Thread Nikolay Izhikov (Jira)


 [ 
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

2023-04-07 Thread Mirza Aliev (Jira)


 [ 
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

2023-04-07 Thread Anton Vinogradov (Jira)


[ 
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

2023-04-07 Thread Anton Vinogradov (Jira)


[ 
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

2023-04-07 Thread Aleksey Plekhanov (Jira)


 [ 
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

2023-04-07 Thread Aleksey Plekhanov (Jira)


 [ 
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

2023-04-07 Thread Ignite TC Bot (Jira)


[ 
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

2023-04-07 Thread Aleksey Plekhanov (Jira)


 [ 
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

2023-04-07 Thread Ignite TC Bot (Jira)


[ 
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

2023-04-07 Thread Nikolay Izhikov (Jira)


 [ 
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

2023-04-07 Thread Vyacheslav Koptilin (Jira)


 [ 
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

2023-04-07 Thread Vyacheslav Koptilin (Jira)


 [ 
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

2023-04-07 Thread Ivan Gagarkin (Jira)


 [ 
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

2023-04-07 Thread Aleksey Plekhanov (Jira)


 [ 
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

2023-04-07 Thread Aleksey Plekhanov (Jira)


 [ 
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

2023-04-07 Thread Aleksey Plekhanov (Jira)


 [ 
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

2023-04-07 Thread Aleksey Plekhanov (Jira)


 [ 
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

2023-04-07 Thread Aleksey Plekhanov (Jira)


 [ 
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

2023-04-07 Thread Aleksey Plekhanov (Jira)


 [ 
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

2023-04-07 Thread Aleksey Plekhanov (Jira)


 [ 
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

2023-04-07 Thread Aleksey Plekhanov (Jira)


 [ 
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

2023-04-07 Thread Aleksey Plekhanov (Jira)


 [ 
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

2023-04-07 Thread Aleksey Plekhanov (Jira)


 [ 
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

2023-04-07 Thread Aleksey Plekhanov (Jira)


 [ 
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”

2023-04-07 Thread Aleksey Plekhanov (Jira)


 [ 
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

2023-04-07 Thread Aleksey Plekhanov (Jira)


 [ 
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

2023-04-07 Thread Aleksey Plekhanov (Jira)


 [ 
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

2023-04-07 Thread Aleksey Plekhanov (Jira)


 [ 
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

2023-04-07 Thread Aleksey Plekhanov (Jira)


[ 
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

2023-04-07 Thread Aleksey Plekhanov (Jira)


 [ 
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

2023-04-07 Thread Aleksey Plekhanov (Jira)


 [ 
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.

2023-04-07 Thread Aleksey Plekhanov (Jira)


 [ 
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)