[jira] [Created] (IGNITE-14441) Query plan printed for long running query must use IGNITE_TO_STRING_INCLUDE_SENSITIVE policy

2021-03-30 Thread Taras Ledkov (Jira)
Taras Ledkov created IGNITE-14441:
-

 Summary: Query plan printed for long running query must use 
IGNITE_TO_STRING_INCLUDE_SENSITIVE policy
 Key: IGNITE-14441
 URL: https://issues.apache.org/jira/browse/IGNITE-14441
 Project: Ignite
  Issue Type: Bug
  Components: sql
Reporter: Taras Ledkov
Assignee: Taras Ledkov
 Fix For: 2.11


Query plan printed for long running query must use 
IGNITE_TO_STRING_INCLUDE_SENSITIVE policy.
Now query parameters may be printed in the query plan.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-14440) Run external tests in ducktape

2021-03-30 Thread Anton Vinogradov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-14440?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17311214#comment-17311214
 ] 

Anton Vinogradov commented on IGNITE-14440:
---

[~timonin.maksim],
{{# /opt/ignite-* - all distributives.}}
Can we just keep this as docker image content?

> Run external tests in ducktape
> --
>
> Key: IGNITE-14440
> URL: https://issues.apache.org/jira/browse/IGNITE-14440
> Project: Ignite
>  Issue Type: New Feature
>Reporter: Maksim Timonin
>Priority: Major
>  Labels: IEP-56
>
> Docker with ducktape should have following volumes:
>  # ignite-dev -> Ignite current branch
>  # ignite-lib -> python lib + java deps in modules/ducktests/tests/ignitetest
>  # ignite-tests -> python tests, default - modules/ducktests/ignitetest/tests
>  # ignite-specs -> specs for tests, structure of directories contain specs 
> (incl. jinja2 templates) should be redefined. Set default value for new 
> directory within ignitetest.
>  # /opt/ignite-* - all distributives.
> Mount with python libs (lib, tests, specs) must be installed in docker as 
> develop lib (see, python setup.py develop). Notes:
>  # Ordering of installing matters - lib, specs, tests
>  # ignitetest - Manifest.in should skip directories: ./tests, with specs.
> There should be an util that responsible for uploading ignite dists. Note: 
>  # Provide a migration mode for the util. Try copy distributives from 
> existing docker image to local fs to skip downloading them from Internet.
>  # Download new versions by running .sh command.
>  
> *Nice to have:* replace runtests.sh and ducker-ignite with:
>  # docker-compose.yml describes num of containers, mounts, ports, etc.
>  # entrypoint for docker is a ducktape command.
>  
>  
>  
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (IGNITE-14442) IgniteRunner fails with NPE after REST module was broken by incompatible changes.

2021-03-30 Thread Ivan Bessonov (Jira)
Ivan Bessonov created IGNITE-14442:
--

 Summary: IgniteRunner fails with NPE after REST module was broken 
by incompatible changes.
 Key: IGNITE-14442
 URL: https://issues.apache.org/jira/browse/IGNITE-14442
 Project: Ignite
  Issue Type: Sub-task
Reporter: Ivan Bessonov
Assignee: Ivan Bessonov






--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (IGNITE-14435) Refactor PdsConsistentIdProcessor for reusage

2021-03-30 Thread Nikolay Izhikov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-14435?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Nikolay Izhikov reassigned IGNITE-14435:


Assignee: Nikolay Izhikov

> Refactor PdsConsistentIdProcessor for reusage
> -
>
> Key: IGNITE-14435
> URL: https://issues.apache.org/jira/browse/IGNITE-14435
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Nikolay Izhikov
>Assignee: Nikolay Izhikov
>Priority: Major
>  Labels: IEP-59
>
> Logic to resolve PDS folders should be reused inside {{IgniteCDC}} to lock 
> specific Ignite node CDC folder. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Resolved] (IGNITE-14437) Adjust test params: exclude input net failures with disabled connRecovery

2021-03-30 Thread Anton Vinogradov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-14437?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Anton Vinogradov resolved IGNITE-14437.
---
Resolution: Fixed

> Adjust test params: exclude input net failures with disabled connRecovery
> -
>
> Key: IGNITE-14437
> URL: https://issues.apache.org/jira/browse/IGNITE-14437
> Project: Ignite
>  Issue Type: Sub-task
>Reporter: Vladimir Steshin
>Assignee: Vladimir Steshin
>Priority: Major
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> INPUT network failures are incosistent with disabled connection recovery in 
> the ducktests. Alive node can be thrown out the ring.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-14437) Adjust test params: exclude input net failures with disabled connRecovery

2021-03-30 Thread Anton Vinogradov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-14437?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17311239#comment-17311239
 ] 

Anton Vinogradov commented on IGNITE-14437:
---

Merged into ignite-ducktape.
Thanks for your contribution.

> Adjust test params: exclude input net failures with disabled connRecovery
> -
>
> Key: IGNITE-14437
> URL: https://issues.apache.org/jira/browse/IGNITE-14437
> Project: Ignite
>  Issue Type: Sub-task
>Reporter: Vladimir Steshin
>Assignee: Vladimir Steshin
>Priority: Major
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> INPUT network failures are incosistent with disabled connection recovery in 
> the ducktests. Alive node can be thrown out the ring.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (IGNITE-14441) Query plan printed for long running query must use IGNITE_TO_STRING_INCLUDE_SENSITIVE policy

2021-03-30 Thread Taras Ledkov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-14441?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Taras Ledkov updated IGNITE-14441:
--
Release Note:  Write sensitive SQL information (queries and plans) to log 
according with the IGNITE_TO_STRING_INCLUDE_SENSITIVE system property.   (was:  
Write sensitive SQL information (queries and plans) to log according with the 
IGNITE_SENSITIVE_DATA_LOGGING system property. )

> Query plan printed for long running query must use 
> IGNITE_TO_STRING_INCLUDE_SENSITIVE policy
> 
>
> Key: IGNITE-14441
> URL: https://issues.apache.org/jira/browse/IGNITE-14441
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Reporter: Taras Ledkov
>Assignee: Taras Ledkov
>Priority: Major
> Fix For: 2.11
>
>
> Query plan printed for long running query must use 
> IGNITE_TO_STRING_INCLUDE_SENSITIVE policy.
> Now query parameters may be printed in the query plan.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-2399) Add asynchronous acquire to IgniteSemaphore

2021-03-30 Thread Dmitry Pavlov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-2399?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17311290#comment-17311290
 ] 

Dmitry Pavlov commented on IGNITE-2399:
---

[~atri] [~vkulichenko], it seems that the test
https://ci.ignite.apache.org/test/-3059424454524523197?currentProjectId=IgniteTests24Java8&orderBy=buildStartDate&order=desc&branch=%3Cdefault%3E

is started to fail after this PR merge. Could you please check if it is related?

> Add asynchronous acquire to IgniteSemaphore
> ---
>
> Key: IGNITE-2399
> URL: https://issues.apache.org/jira/browse/IGNITE-2399
> Project: Ignite
>  Issue Type: Improvement
>  Components: data structures
>Reporter: Vladisav Jelisavcic
>Assignee: Atri Sharma
>Priority: Major
>  Time Spent: 3h
>  Remaining Estimate: 0h
>
> Usually a permit acquisition is followed by an action, followed by a release 
> of the permit. A simple enhancement to the existing Semaphore API can be made 
> that enables asynchronous acquire:
>  IgniteFuture acquireAndExecute(Callable action, int numPermits);
> The method would immediately return a future to be later completed by the 
> action's result. Permits are to be released after the future is completed.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-14385) Add checkpoit information to performance statistics.

2021-03-30 Thread Ignite TC Bot (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-14385?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17311293#comment-17311293
 ] 

Ignite TC Bot commented on IGNITE-14385:


{panel:title=Branch: [pull/8928/head] Base: [master] : No blockers 
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
{panel:title=Branch: [pull/8928/head] Base: [master] : New Tests 
(1)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}
{color:#8b}Basic 3{color} [[tests 
1|https://ci.ignite.apache.org/viewLog.html?buildId=5939710]]
* {color:#013220}IgniteBasicWithPersistenceTestSuite: 
CheckpointTest.testCheckpoint - PASSED{color}

{panel}
[TeamCity *--> Run :: All* 
Results|https://ci.ignite.apache.org/viewLog.html?buildId=5940492&buildTypeId=IgniteTests24Java8_RunAll]

> Add checkpoit information to performance statistics.
> 
>
> Key: IGNITE-14385
> URL: https://issues.apache.org/jira/browse/IGNITE-14385
> Project: Ignite
>  Issue Type: Sub-task
>Reporter: Sergei Ryzhov
>Assignee: Sergei Ryzhov
>Priority: Minor
>  Labels: IEP-35
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Add start/end time and other parameters of checkpoint to performance 
> statistics.
> Add information about throttling if necessary



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Comment Edited] (IGNITE-14335) Merge APIs of IgniteAuthenticationProcessor and IgniteSecurity

2021-03-30 Thread Denis Garus (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-14335?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17311298#comment-17311298
 ] 

Denis Garus edited comment on IGNITE-14335 at 3/30/21, 9:05 AM:


[~PetrovMikhail] 
Suggested realization provides a security plugin when 
{{isAuthenticationEnabled}} is {{true}} and, in this way, makes 
{{IgniteSecurity}} enabled. But current implementation of 
{{IgniteAuthenticationProcessor}} (security plugin) does not allow: 
* apply a security policy, so authorization does not make sense
* authenticate clients, except SQL clients
* get the actual security context by a security subject id. 
Another hand, security-enabled mode adds to every communication message a 
security subject id, makes a security context switch, authorizes an operation, 
and so on that is a waste of resources.
Thus, let's implement a worthy default security plugin or choose another way to 
realize this task.


was (Author: garus.d.g):
[~PetrovMikhail] 
Suggested realization provides a security plugin when 
{{isAuthenticationEnabled}} is {{true}} and, in this way, makes 
{{IgniteSecurity}} enabled. But current implementation of 
{{IgniteAuthenticationProcessor}} (security plugin) does not allow: 
apply a security policy, so authorization does not make sense
authenticate clients, except SQL clients
get the actual security context by a security subject id. 
Another hand, security-enabled mode adds to every communication message a 
security subject id, makes a security context switch, authorizes an operation, 
and so on that is a waste of resources.
Thus, let's implement a worthy default security plugin or choose another way to 
realize this task.

> Merge APIs  of IgniteAuthenticationProcessor and IgniteSecurity 
> 
>
> Key: IGNITE-14335
> URL: https://issues.apache.org/jira/browse/IGNITE-14335
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Mikhail Petrov
>Assignee: Mikhail Petrov
>Priority: Major
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> It is proposed:
>  # Remove an IgniteAuthenticationProcessor that is now treated as an 
> independent processor.
>  #  Move the logic of IgniteAuthenticationProcessor into the implementation 
> of the security plugin that will be used if authentication is enabled via 
> configuration.
>  # Remove duplication of security checks and leave IgniteSecurity as a single 
> security API. As of now, authentication operations are not delegated to 
> IgniteAuthenticationProcessor if a security plugin is specified. So the 
> overall security behavior from the user side will remain intact.
>  # Remove the AuthorizationContext completely as IgniteSecurity provides an 
> API for storing and managing the security contexts.
>  # Extend GridSecurityPlugin interface with methods that provide the ability 
> to manage security users to support existing commands available for 
> authentication processor - alter/drop/create through SQL and REST.
> As a result, we will make the security-related code more consistent and 
> simpler.
> Proposed signatures of GridSecurityPlugin methods that provide the ability to 
> manage security users:
> {code:java}
> public void createUser(String login, UserOptions opts) throws 
> IgniteCheckedException {code}
> {code:java}
> public void alterUser(String login, UserOptions opts) throws 
> IgniteCheckedException{code}
> {code:java}
> public void dropUser(String login) throws IgniteCheckedException{code}
> The UserOptions class is a wrapper over EnumMap that maps option values ​​to 
> their aliases. This allows the class to be used for both create and alter 
> user operations and doesn't break backward compatibility in case new options 
> are declared.
> The proposed changes lead to the following compatibility issues:
> 1. When a user provides a security plugin and enables native authentication - 
> in this case, the user will face exceptions during the node start while now 
> node starts smoothly. This case makes a little sense because now 
> authentication operations are not delegated to IgniteAuthenticationProcessor 
> at all if a security plugin is specified.
> 2. The current implementation of IgniteAuthenticationProcessor can enable 
> authentication itself if the current node connects to the cluster with 
> authentication enabled - this functionality will not be supported. The user 
> can easily overcome this by explicitly enabling authentication in the 
> configuration on all nodes.3. The error message of some mutually exclusive 
> events can be changed.
> The remaining implementation of the IgniteAuthenticationProcessor and its 
> general behavior will remain intact. I also propose to keep the current 
> callbacks for the IgniteAuthenticationProcessor (e.g. 
> IgniteAuthent

[jira] [Commented] (IGNITE-14335) Merge APIs of IgniteAuthenticationProcessor and IgniteSecurity

2021-03-30 Thread Denis Garus (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-14335?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17311298#comment-17311298
 ] 

Denis Garus commented on IGNITE-14335:
--

[~PetrovMikhail] 
Suggested realization provides a security plugin when 
{{isAuthenticationEnabled}} is {{true}} and, in this way, makes 
{{IgniteSecurity}} enabled. But current implementation of 
{{IgniteAuthenticationProcessor}} (security plugin) does not allow: 
apply a security policy, so authorization does not make sense
authenticate clients, except SQL clients
get the actual security context by a security subject id. 
Another hand, security-enabled mode adds to every communication message a 
security subject id, makes a security context switch, authorizes an operation, 
and so on that is a waste of resources.
Thus, let's implement a worthy default security plugin or choose another way to 
realize this task.

> Merge APIs  of IgniteAuthenticationProcessor and IgniteSecurity 
> 
>
> Key: IGNITE-14335
> URL: https://issues.apache.org/jira/browse/IGNITE-14335
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Mikhail Petrov
>Assignee: Mikhail Petrov
>Priority: Major
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> It is proposed:
>  # Remove an IgniteAuthenticationProcessor that is now treated as an 
> independent processor.
>  #  Move the logic of IgniteAuthenticationProcessor into the implementation 
> of the security plugin that will be used if authentication is enabled via 
> configuration.
>  # Remove duplication of security checks and leave IgniteSecurity as a single 
> security API. As of now, authentication operations are not delegated to 
> IgniteAuthenticationProcessor if a security plugin is specified. So the 
> overall security behavior from the user side will remain intact.
>  # Remove the AuthorizationContext completely as IgniteSecurity provides an 
> API for storing and managing the security contexts.
>  # Extend GridSecurityPlugin interface with methods that provide the ability 
> to manage security users to support existing commands available for 
> authentication processor - alter/drop/create through SQL and REST.
> As a result, we will make the security-related code more consistent and 
> simpler.
> Proposed signatures of GridSecurityPlugin methods that provide the ability to 
> manage security users:
> {code:java}
> public void createUser(String login, UserOptions opts) throws 
> IgniteCheckedException {code}
> {code:java}
> public void alterUser(String login, UserOptions opts) throws 
> IgniteCheckedException{code}
> {code:java}
> public void dropUser(String login) throws IgniteCheckedException{code}
> The UserOptions class is a wrapper over EnumMap that maps option values ​​to 
> their aliases. This allows the class to be used for both create and alter 
> user operations and doesn't break backward compatibility in case new options 
> are declared.
> The proposed changes lead to the following compatibility issues:
> 1. When a user provides a security plugin and enables native authentication - 
> in this case, the user will face exceptions during the node start while now 
> node starts smoothly. This case makes a little sense because now 
> authentication operations are not delegated to IgniteAuthenticationProcessor 
> at all if a security plugin is specified.
> 2. The current implementation of IgniteAuthenticationProcessor can enable 
> authentication itself if the current node connects to the cluster with 
> authentication enabled - this functionality will not be supported. The user 
> can easily overcome this by explicitly enabling authentication in the 
> configuration on all nodes.3. The error message of some mutually exclusive 
> events can be changed.
> The remaining implementation of the IgniteAuthenticationProcessor and its 
> general behavior will remain intact. I also propose to keep the current 
> callbacks for the IgniteAuthenticationProcessor (e.g. 
> IgniteAuthenticationProcessor#cacheProcessorStarted) that are called from 
> other managers intact, just skip these calls if the 
> IgniteAuthenticationProcessor is not being used for security.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Comment Edited] (IGNITE-14335) Merge APIs of IgniteAuthenticationProcessor and IgniteSecurity

2021-03-30 Thread Denis Garus (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-14335?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17311298#comment-17311298
 ] 

Denis Garus edited comment on IGNITE-14335 at 3/30/21, 9:05 AM:


[~PetrovMikhail] 
Suggested realization provides a security plugin when 
{{isAuthenticationEnabled}} is {{true}} and, in this way, makes 
{{IgniteSecurity}} enabled. But current implementation of 
{{IgniteAuthenticationProcessor}} (security plugin) does not allow: 
* apply a security policy, so authorization does not make sense
* authenticate clients, except SQL clients
* get the actual security context by a security subject id. 

Another hand, security-enabled mode adds to every communication message a 
security subject id, makes a security context switch, authorizes an operation, 
and so on that is a waste of resources.
Thus, let's implement a worthy default security plugin or choose another way to 
realize this task.


was (Author: garus.d.g):
[~PetrovMikhail] 
Suggested realization provides a security plugin when 
{{isAuthenticationEnabled}} is {{true}} and, in this way, makes 
{{IgniteSecurity}} enabled. But current implementation of 
{{IgniteAuthenticationProcessor}} (security plugin) does not allow: 
* apply a security policy, so authorization does not make sense
* authenticate clients, except SQL clients
* get the actual security context by a security subject id. 
Another hand, security-enabled mode adds to every communication message a 
security subject id, makes a security context switch, authorizes an operation, 
and so on that is a waste of resources.
Thus, let's implement a worthy default security plugin or choose another way to 
realize this task.

> Merge APIs  of IgniteAuthenticationProcessor and IgniteSecurity 
> 
>
> Key: IGNITE-14335
> URL: https://issues.apache.org/jira/browse/IGNITE-14335
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Mikhail Petrov
>Assignee: Mikhail Petrov
>Priority: Major
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> It is proposed:
>  # Remove an IgniteAuthenticationProcessor that is now treated as an 
> independent processor.
>  #  Move the logic of IgniteAuthenticationProcessor into the implementation 
> of the security plugin that will be used if authentication is enabled via 
> configuration.
>  # Remove duplication of security checks and leave IgniteSecurity as a single 
> security API. As of now, authentication operations are not delegated to 
> IgniteAuthenticationProcessor if a security plugin is specified. So the 
> overall security behavior from the user side will remain intact.
>  # Remove the AuthorizationContext completely as IgniteSecurity provides an 
> API for storing and managing the security contexts.
>  # Extend GridSecurityPlugin interface with methods that provide the ability 
> to manage security users to support existing commands available for 
> authentication processor - alter/drop/create through SQL and REST.
> As a result, we will make the security-related code more consistent and 
> simpler.
> Proposed signatures of GridSecurityPlugin methods that provide the ability to 
> manage security users:
> {code:java}
> public void createUser(String login, UserOptions opts) throws 
> IgniteCheckedException {code}
> {code:java}
> public void alterUser(String login, UserOptions opts) throws 
> IgniteCheckedException{code}
> {code:java}
> public void dropUser(String login) throws IgniteCheckedException{code}
> The UserOptions class is a wrapper over EnumMap that maps option values ​​to 
> their aliases. This allows the class to be used for both create and alter 
> user operations and doesn't break backward compatibility in case new options 
> are declared.
> The proposed changes lead to the following compatibility issues:
> 1. When a user provides a security plugin and enables native authentication - 
> in this case, the user will face exceptions during the node start while now 
> node starts smoothly. This case makes a little sense because now 
> authentication operations are not delegated to IgniteAuthenticationProcessor 
> at all if a security plugin is specified.
> 2. The current implementation of IgniteAuthenticationProcessor can enable 
> authentication itself if the current node connects to the cluster with 
> authentication enabled - this functionality will not be supported. The user 
> can easily overcome this by explicitly enabling authentication in the 
> configuration on all nodes.3. The error message of some mutually exclusive 
> events can be changed.
> The remaining implementation of the IgniteAuthenticationProcessor and its 
> general behavior will remain intact. I also propose to keep the current 
> callbacks for the IgniteAuthenticationProcessor (e.g. 
> Ignite

[jira] [Commented] (IGNITE-14441) Query plan printed for long running query must use IGNITE_TO_STRING_INCLUDE_SENSITIVE policy

2021-03-30 Thread Nikolay Izhikov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-14441?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17311305#comment-17311305
 ] 

Nikolay Izhikov commented on IGNITE-14441:
--

Hello, [~tledkov-gridgain]

Can you, please, clarify, why you treat query plan as a sensitive info?

Also, please, take a look at the IGNITE-14221
Is this patch you are looking for?

> Query plan printed for long running query must use 
> IGNITE_TO_STRING_INCLUDE_SENSITIVE policy
> 
>
> Key: IGNITE-14441
> URL: https://issues.apache.org/jira/browse/IGNITE-14441
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Reporter: Taras Ledkov
>Assignee: Taras Ledkov
>Priority: Major
> Fix For: 2.11
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Query plan printed for long running query must use 
> IGNITE_TO_STRING_INCLUDE_SENSITIVE policy.
> Now query parameters may be printed in the query plan.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-14441) Query plan printed for long running query must use IGNITE_TO_STRING_INCLUDE_SENSITIVE policy

2021-03-30 Thread Nikolay Izhikov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-14441?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17311307#comment-17311307
 ] 

Nikolay Izhikov commented on IGNITE-14441:
--

I think we should hide only actual values of the query parameters in hiding 
sensitive mode.
The query plan itself is not sensitive info.

So I suggest reusing logic implemented in `IgniteH2Indexing#sqlWithoutConst` in 
`H2QueryInfo#printLogMessage`.

> Query plan printed for long running query must use 
> IGNITE_TO_STRING_INCLUDE_SENSITIVE policy
> 
>
> Key: IGNITE-14441
> URL: https://issues.apache.org/jira/browse/IGNITE-14441
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Reporter: Taras Ledkov
>Assignee: Taras Ledkov
>Priority: Major
> Fix For: 2.11
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Query plan printed for long running query must use 
> IGNITE_TO_STRING_INCLUDE_SENSITIVE policy.
> Now query parameters may be printed in the query plan.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-13769) Add examples of using thin client with Ignite Spring Data integration.

2021-03-30 Thread Mikhail Petrov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-13769?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17311318#comment-17311318
 ] 

Mikhail Petrov commented on IGNITE-13769:
-

[~NSAmelchev], Thanks a lot for the review.

>  Add examples of using thin client with Ignite Spring Data integration.
> ---
>
> Key: IGNITE-13769
> URL: https://issues.apache.org/jira/browse/IGNITE-13769
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Mikhail Petrov
>Assignee: Mikhail Petrov
>Priority: Major
>
> It's needed to add examples of using  thin client with the Ignite Spring Data 
> integration.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-14434) Add examples of using thin client with spring-tx-ext

2021-03-30 Thread Mikhail Petrov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-14434?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17311319#comment-17311319
 ] 

Mikhail Petrov commented on IGNITE-14434:
-

[~NSAmelchev], Thanks a lot for the review.

> Add examples of using thin client with spring-tx-ext
> 
>
> Key: IGNITE-14434
> URL: https://issues.apache.org/jira/browse/IGNITE-14434
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Mikhail Petrov
>Assignee: Mikhail Petrov
>Priority: Minor
>
> It's needed to add examples of thin client using with spring-tx-ext 
> integration.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-13405) [Pyignite] Invalid cache configuration parameters

2021-03-30 Thread Ivan Daschinskiy (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-13405?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17311326#comment-17311326
 ] 

Ivan Daschinskiy commented on IGNITE-13405:
---

[~iamnotaprogrammer] Ivan, there are some other issues with CacheConfiguration. 
I fixed all of them (and your also) and add additional tests.
Thanks for highlighting this! I realy appreciate your effort.

> [Pyignite] Invalid cache configuration parameters
> -
>
> Key: IGNITE-13405
> URL: https://issues.apache.org/jira/browse/IGNITE-13405
> Project: Ignite
>  Issue Type: Bug
>  Components: python
>Affects Versions: python-0.4.0
>Reporter: Ivan Smirnov
>Assignee: Ivan Daschinskiy
>Priority: Blocker
>  Labels: python
>   Original Estimate: 1h
>  Time Spent: 20m
>  Remaining Estimate: 40m
>
> Invalid argument for prop_partition_loss_policy in python thin client that 
> affects the cache creation 
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (IGNITE-14443) Calcite integration. SqlFirstLastValueAggFunction support

2021-03-30 Thread Pavel Vinokurov (Jira)
Pavel Vinokurov created IGNITE-14443:


 Summary: Calcite integration. SqlFirstLastValueAggFunction support
 Key: IGNITE-14443
 URL: https://issues.apache.org/jira/browse/IGNITE-14443
 Project: Ignite
  Issue Type: New Feature
  Components: sql
Affects Versions: 3.0.0-alpha1
Reporter: Pavel Vinokurov


We need to support aggregation functions, especially 
SqlFirstLastValueAggFunction that allows simplify and optimize the wide range 
of sql queries.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (IGNITE-14443) Calcite integration. SqlFirstLastValueAggFunction support

2021-03-30 Thread Pavel Vinokurov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-14443?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Vinokurov updated IGNITE-14443:
-
Priority: Major  (was: Minor)

> Calcite integration. SqlFirstLastValueAggFunction support
> -
>
> Key: IGNITE-14443
> URL: https://issues.apache.org/jira/browse/IGNITE-14443
> Project: Ignite
>  Issue Type: New Feature
>  Components: sql
>Affects Versions: 3.0.0-alpha1
>Reporter: Pavel Vinokurov
>Priority: Major
>
> We need to support aggregation functions, especially 
> SqlFirstLastValueAggFunction that allows simplify and optimize the wide range 
> of sql queries.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (IGNITE-13405) [Pyignite] Invalid cache configuration parameters

2021-03-30 Thread Ivan Daschinskiy (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-13405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ivan Daschinskiy updated IGNITE-13405:
--
Ignite Flags: Release Notes Required  (was: Docs Required,Release Notes 
Required)

> [Pyignite] Invalid cache configuration parameters
> -
>
> Key: IGNITE-13405
> URL: https://issues.apache.org/jira/browse/IGNITE-13405
> Project: Ignite
>  Issue Type: Bug
>  Components: python
>Affects Versions: python-0.4.0
>Reporter: Ivan Smirnov
>Assignee: Ivan Daschinskiy
>Priority: Blocker
>  Labels: python
> Fix For: python-0.4.0
>
>   Original Estimate: 1h
>  Time Spent: 0.5h
>  Remaining Estimate: 0.5h
>
> Invalid argument for prop_partition_loss_policy in python thin client that 
> affects the cache creation 
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (IGNITE-13405) [Pyignite] Invalid cache configuration parameters

2021-03-30 Thread Ivan Daschinskiy (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-13405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ivan Daschinskiy updated IGNITE-13405:
--
Fix Version/s: python-0.4.0

> [Pyignite] Invalid cache configuration parameters
> -
>
> Key: IGNITE-13405
> URL: https://issues.apache.org/jira/browse/IGNITE-13405
> Project: Ignite
>  Issue Type: Bug
>  Components: python
>Affects Versions: python-0.4.0
>Reporter: Ivan Smirnov
>Assignee: Ivan Daschinskiy
>Priority: Blocker
>  Labels: python
> Fix For: python-0.4.0
>
>   Original Estimate: 1h
>  Time Spent: 20m
>  Remaining Estimate: 40m
>
> Invalid argument for prop_partition_loss_policy in python thin client that 
> affects the cache creation 
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (IGNITE-14444) Move affinity calculation and storage to client

2021-03-30 Thread Ivan Daschinskiy (Jira)
Ivan Daschinskiy created IGNITE-1:
-

 Summary: Move affinity calculation and storage to client
 Key: IGNITE-1
 URL: https://issues.apache.org/jira/browse/IGNITE-1
 Project: Ignite
  Issue Type: Improvement
  Components: python
Reporter: Ivan Daschinskiy


In current implementation, affinity storage and affinity calculation are 
located in cache.
It is not optimal:
1. affinity is not shared between Cache instance with same name
2. affinity mapping requests per cache and add additional loads.
3. if we start implementing transactions or expiry  policy, this can be an 
issue.

I propose to move affinity storage to Client and AioClient.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (IGNITE-14444) Move affinity calculation and storage to client

2021-03-30 Thread Ivan Daschinskiy (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-1?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ivan Daschinskiy reassigned IGNITE-1:
-

Assignee: Ivan Daschinskiy

> Move affinity calculation and storage to client
> ---
>
> Key: IGNITE-1
> URL: https://issues.apache.org/jira/browse/IGNITE-1
> Project: Ignite
>  Issue Type: Improvement
>  Components: python
>Reporter: Ivan Daschinskiy
>Assignee: Ivan Daschinskiy
>Priority: Major
>  Labels: python
>
> In current implementation, affinity storage and affinity calculation are 
> located in cache.
> It is not optimal:
> 1. affinity is not shared between Cache instance with same name
> 2. affinity mapping requests per cache and add additional loads.
> 3. if we start implementing transactions or expiry  policy, this can be an 
> issue.
> I propose to move affinity storage to Client and AioClient.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (IGNITE-14444) Move affinity calculation and storage to client

2021-03-30 Thread Ivan Daschinskiy (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-1?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ivan Daschinskiy updated IGNITE-1:
--
Affects Version/s: python-0.4.0

> Move affinity calculation and storage to client
> ---
>
> Key: IGNITE-1
> URL: https://issues.apache.org/jira/browse/IGNITE-1
> Project: Ignite
>  Issue Type: Improvement
>  Components: python
>Affects Versions: python-0.4.0
>Reporter: Ivan Daschinskiy
>Assignee: Ivan Daschinskiy
>Priority: Major
>  Labels: python
>
> In current implementation, affinity storage and affinity calculation are 
> located in cache.
> It is not optimal:
> 1. affinity is not shared between Cache instance with same name
> 2. affinity mapping requests per cache and add additional loads.
> 3. if we start implementing transactions or expiry  policy, this can be an 
> issue.
> I propose to move affinity storage to Client and AioClient.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-14441) Query plan printed for long running query must use IGNITE_TO_STRING_INCLUDE_SENSITIVE policy

2021-03-30 Thread Taras Ledkov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-14441?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17311351#comment-17311351
 ] 

Taras Ledkov commented on IGNITE-14441:
---

[~nizhikov]
Please take a look on the usage of the {{S#includeSensitive}}. The class names 
and field names are hidden in log messages.
SQL queries and plans also contains names of the tables & fields and must be 
hidden in log messages.

I guess the behavior of hiding sensitive info must be consistent.

I don't see any reason to hide SQL constants at the system views because user 
may use parameters for sensitive info and access to system views must check 
security permission.

> Query plan printed for long running query must use 
> IGNITE_TO_STRING_INCLUDE_SENSITIVE policy
> 
>
> Key: IGNITE-14441
> URL: https://issues.apache.org/jira/browse/IGNITE-14441
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Reporter: Taras Ledkov
>Assignee: Taras Ledkov
>Priority: Major
> Fix For: 2.11
>
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> Query plan printed for long running query must use 
> IGNITE_TO_STRING_INCLUDE_SENSITIVE policy.
> Now query parameters may be printed in the query plan.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-14397) Document spring-transactions integration.

2021-03-30 Thread Mikhail Petrov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-14397?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17311363#comment-17311363
 ] 

Mikhail Petrov commented on IGNITE-14397:
-

[~nsafonov], could you please take a look?

> Document spring-transactions integration.
> -
>
> Key: IGNITE-14397
> URL: https://issues.apache.org/jira/browse/IGNITE-14397
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Mikhail Petrov
>Assignee: Mikhail Petrov
>Priority: Minor
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> It's needed to document Ignite Spring-Transactions integration.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-14417) Document performance-statistics-ext module

2021-03-30 Thread Amelchev Nikita (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-14417?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17311364#comment-17311364
 ] 

Amelchev Nikita commented on IGNITE-14417:
--

[~dmagda] [~nsafonov] [~PetrovMikhail], Hi. Could you take a look at PR, please?

> Document performance-statistics-ext module
> --
>
> Key: IGNITE-14417
> URL: https://issues.apache.org/jira/browse/IGNITE-14417
> Project: Ignite
>  Issue Type: Task
>  Components: documentation
>Affects Versions: 2.10
>Reporter: Amelchev Nikita
>Assignee: Amelchev Nikita
>Priority: Major
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> It's needed to document performance-statistics-ext module



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-14417) Document performance-statistics-ext module

2021-03-30 Thread Nikita Safonov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-14417?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17311380#comment-17311380
 ] 

Nikita Safonov commented on IGNITE-14417:
-

[~NSAmelchev] Sure!

> Document performance-statistics-ext module
> --
>
> Key: IGNITE-14417
> URL: https://issues.apache.org/jira/browse/IGNITE-14417
> Project: Ignite
>  Issue Type: Task
>  Components: documentation
>Affects Versions: 2.10
>Reporter: Amelchev Nikita
>Assignee: Amelchev Nikita
>Priority: Major
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> It's needed to document performance-statistics-ext module



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-14397) Document spring-transactions integration.

2021-03-30 Thread Nikita Safonov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-14397?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17311381#comment-17311381
 ] 

Nikita Safonov commented on IGNITE-14397:
-

[~PetrovMikhail] Sure!

> Document spring-transactions integration.
> -
>
> Key: IGNITE-14397
> URL: https://issues.apache.org/jira/browse/IGNITE-14397
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Mikhail Petrov
>Assignee: Mikhail Petrov
>Priority: Minor
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> It's needed to document Ignite Spring-Transactions integration.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (IGNITE-14331) Possible distributed race related to a data streamer flushing leading to a thread being stuck forever trying to close the streamer

2021-03-30 Thread Vyacheslav Koptilin (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-14331?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vyacheslav Koptilin reassigned IGNITE-14331:


Assignee: Vyacheslav Koptilin

> Possible distributed race related to a data streamer flushing leading to a 
> thread being stuck forever trying to close the streamer
> --
>
> Key: IGNITE-14331
> URL: https://issues.apache.org/jira/browse/IGNITE-14331
> Project: Ignite
>  Issue Type: Bug
>  Components: streaming
>Affects Versions: 2.10
>Reporter: Vladimir Pligin
>Assignee: Vyacheslav Koptilin
>Priority: Major
>
> It seems that a streamer could stuck forever flushing internal buffers on a 
> client side.
> It will stay in a busy-loop forever hoping on remapping but it's possible 
> that it won't happen for example in case of long GC pauses on server(s) and 
> long timeouts.
> It that case a streamer would be trapped inside this 
> [loop|https://github.com/apache/ignite/blob/ignite-2.10/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerImpl.java#L1168].
> Stack trace snippet:
> {code:java}
> java.lang.Thread.State: RUNNABLE        at 
> org.apache.ignite.internal.processors.datastreamer.DataStreamerImpl$Buffer.flush(DataStreamerImpl.java:1706)
>         at 
> org.apache.ignite.internal.processors.datastreamer.DataStreamerImpl.doFlush(DataStreamerImpl.java:1170)
>         at 
> org.apache.ignite.internal.processors.datastreamer.DataStreamerImpl.closeEx(DataStreamerImpl.java:1365)
>         at 
> org.apache.ignite.internal.processors.datastreamer.DataStreamerImpl.closeEx(DataStreamerImpl.java:1323)
>         at 
> org.apache.ignite.internal.processors.datastreamer.DataStreamerImpl.close(DataStreamerImpl.java:1311)
>         at 
> org.apache.ignite.internal.processors.datastreamer.DataStreamerImpl.close(DataStreamerImpl.java:1415){code}
>  
> It becomes possible when a 
> IgniteSpiOperationTimeoutException
> is being thrown from 
> org.apache.ignite.internal.managers.communication.GridIoManager.sendToGridTopic()
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-14394) Baseline auto-adjustment does not happen when 2+ nodes join the cluster

2021-03-30 Thread Ignite TC Bot (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-14394?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17311410#comment-17311410
 ] 

Ignite TC Bot commented on IGNITE-14394:


{panel:title=Branch: [pull/8934/head] Base: [master] : No blockers 
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
{panel:title=Branch: [pull/8934/head] Base: [master] : New Tests 
(2)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}
{color:#8b}Basic 1{color} [[tests 
2|https://ci.ignite.apache.org/viewLog.html?buildId=5935653]]
* {color:#013220}IgniteBasicTestSuite: 
BaselineAutoAdjustInMemoryTest.testExchangeMerge - PASSED{color}
* {color:#013220}IgniteBasicTestSuite: BaselineAutoAdjustTest.testExchangeMerge 
- PASSED{color}

{panel}
[TeamCity *--> Run :: All* 
Results|https://ci.ignite.apache.org/viewLog.html?buildId=5935715&buildTypeId=IgniteTests24Java8_RunAll]

> Baseline auto-adjustment does not happen when 2+ nodes join the cluster
> ---
>
> Key: IGNITE-14394
> URL: https://issues.apache.org/jira/browse/IGNITE-14394
> Project: Ignite
>  Issue Type: Bug
>Reporter: Vyacheslav Koptilin
>Assignee: Vyacheslav Koptilin
>Priority: Major
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> In the case of baseline topology autoadjustment is enabled and a few server 
> nodes join the cluster the autoadjustment may not be triggered.
> Steps to reproduce:
> 1. start ignite cluster and enable baseline autoadjustment
> 2. start 2+ server nodes (in order to reproduce the issue, the corresponding 
> exchange should be merged)
> 3. wait for baseline autoadjustment 
> *RESOLUTION*
> The root cause of the issue relates to merging exchanges. Let's consider the 
> following scenario:
> 1. 2 new nodes join the cluster
> 2. the first step triggers a call 
> BaselineTopologyUpdater#triggerBaselineUpdate twice and creates the following 
> baseline data objects:
> data1 - target topology version - X   
> data2 - target topology version - X+1. This data object invalidates the 
> previous one (data1)
> 3. in the case the exchanges are merged and the first data (data1) 
> binds/listens to real {{GridDhtPartitionsExchangeFuture}} instead of 
> affinityReadyFuture, see 
> {{GridCachePartitionExchangeManager#affinityReadyFuture}} (data2 listens to 
> affinityReadyFuture(X+1)), the implementation schedules data2 in the first 
> place, and after that, it replaces data2 with data1 which is already 
> invalidated at this point.
> The fix is quite obvious - we should not schedule baseline data instances 
> that are related to "invalidated" target topology.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-14394) Baseline auto-adjustment does not happen when 2+ nodes join the cluster

2021-03-30 Thread Vyacheslav Koptilin (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-14394?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17311414#comment-17311414
 ] 

Vyacheslav Koptilin commented on IGNITE-14394:
--

Hello [~maliev],

Could you please take a look?

> Baseline auto-adjustment does not happen when 2+ nodes join the cluster
> ---
>
> Key: IGNITE-14394
> URL: https://issues.apache.org/jira/browse/IGNITE-14394
> Project: Ignite
>  Issue Type: Bug
>Reporter: Vyacheslav Koptilin
>Assignee: Vyacheslav Koptilin
>Priority: Major
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> In the case of baseline topology autoadjustment is enabled and a few server 
> nodes join the cluster the autoadjustment may not be triggered.
> Steps to reproduce:
> 1. start ignite cluster and enable baseline autoadjustment
> 2. start 2+ server nodes (in order to reproduce the issue, the corresponding 
> exchange should be merged)
> 3. wait for baseline autoadjustment 
> *RESOLUTION*
> The root cause of the issue relates to merging exchanges. Let's consider the 
> following scenario:
> 1. 2 new nodes join the cluster
> 2. the first step triggers a call 
> BaselineTopologyUpdater#triggerBaselineUpdate twice and creates the following 
> baseline data objects:
> data1 - target topology version - X   
> data2 - target topology version - X+1. This data object invalidates the 
> previous one (data1)
> 3. in the case the exchanges are merged and the first data (data1) 
> binds/listens to real {{GridDhtPartitionsExchangeFuture}} instead of 
> affinityReadyFuture, see 
> {{GridCachePartitionExchangeManager#affinityReadyFuture}} (data2 listens to 
> affinityReadyFuture(X+1)), the implementation schedules data2 in the first 
> place, and after that, it replaces data2 with data1 which is already 
> invalidated at this point.
> The fix is quite obvious - we should not schedule baseline data instances 
> that are related to "invalidated" target topology.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (IGNITE-14394) Baseline auto-adjustment does not happen when 2+ nodes join the cluster

2021-03-30 Thread Vyacheslav Koptilin (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-14394?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vyacheslav Koptilin updated IGNITE-14394:
-
Reviewer: Mirza Aliev

> Baseline auto-adjustment does not happen when 2+ nodes join the cluster
> ---
>
> Key: IGNITE-14394
> URL: https://issues.apache.org/jira/browse/IGNITE-14394
> Project: Ignite
>  Issue Type: Bug
>Reporter: Vyacheslav Koptilin
>Assignee: Vyacheslav Koptilin
>Priority: Major
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> In the case of baseline topology autoadjustment is enabled and a few server 
> nodes join the cluster the autoadjustment may not be triggered.
> Steps to reproduce:
> 1. start ignite cluster and enable baseline autoadjustment
> 2. start 2+ server nodes (in order to reproduce the issue, the corresponding 
> exchange should be merged)
> 3. wait for baseline autoadjustment 
> *RESOLUTION*
> The root cause of the issue relates to merging exchanges. Let's consider the 
> following scenario:
> 1. 2 new nodes join the cluster
> 2. the first step triggers a call 
> BaselineTopologyUpdater#triggerBaselineUpdate twice and creates the following 
> baseline data objects:
> data1 - target topology version - X   
> data2 - target topology version - X+1. This data object invalidates the 
> previous one (data1)
> 3. in the case the exchanges are merged and the first data (data1) 
> binds/listens to real {{GridDhtPartitionsExchangeFuture}} instead of 
> affinityReadyFuture, see 
> {{GridCachePartitionExchangeManager#affinityReadyFuture}} (data2 listens to 
> affinityReadyFuture(X+1)), the implementation schedules data2 in the first 
> place, and after that, it replaces data2 with data1 which is already 
> invalidated at this point.
> The fix is quite obvious - we should not schedule baseline data instances 
> that are related to "invalidated" target topology.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-14394) Baseline auto-adjustment does not happen when 2+ nodes join the cluster

2021-03-30 Thread Mirza Aliev (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-14394?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17311427#comment-17311427
 ] 

Mirza Aliev commented on IGNITE-14394:
--

Hi [~slava.koptilin], changes look good to me, please proceed with merging. 

> Baseline auto-adjustment does not happen when 2+ nodes join the cluster
> ---
>
> Key: IGNITE-14394
> URL: https://issues.apache.org/jira/browse/IGNITE-14394
> Project: Ignite
>  Issue Type: Bug
>Reporter: Vyacheslav Koptilin
>Assignee: Vyacheslav Koptilin
>Priority: Major
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> In the case of baseline topology autoadjustment is enabled and a few server 
> nodes join the cluster the autoadjustment may not be triggered.
> Steps to reproduce:
> 1. start ignite cluster and enable baseline autoadjustment
> 2. start 2+ server nodes (in order to reproduce the issue, the corresponding 
> exchange should be merged)
> 3. wait for baseline autoadjustment 
> *RESOLUTION*
> The root cause of the issue relates to merging exchanges. Let's consider the 
> following scenario:
> 1. 2 new nodes join the cluster
> 2. the first step triggers a call 
> BaselineTopologyUpdater#triggerBaselineUpdate twice and creates the following 
> baseline data objects:
> data1 - target topology version - X   
> data2 - target topology version - X+1. This data object invalidates the 
> previous one (data1)
> 3. in the case the exchanges are merged and the first data (data1) 
> binds/listens to real {{GridDhtPartitionsExchangeFuture}} instead of 
> affinityReadyFuture, see 
> {{GridCachePartitionExchangeManager#affinityReadyFuture}} (data2 listens to 
> affinityReadyFuture(X+1)), the implementation schedules data2 in the first 
> place, and after that, it replaces data2 with data1 which is already 
> invalidated at this point.
> The fix is quite obvious - we should not schedule baseline data instances 
> that are related to "invalidated" target topology.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (IGNITE-14445) "Remote node does not observe current" after failure by not receiving metrics from client

2021-03-30 Thread Ilya Kasnacheev (Jira)
Ilya Kasnacheev created IGNITE-14445:


 Summary: "Remote node does not observe current" after failure by 
not receiving metrics from client
 Key: IGNITE-14445
 URL: https://issues.apache.org/jira/browse/IGNITE-14445
 Project: Ignite
  Issue Type: Bug
Affects Versions: 2.9.1
Reporter: Ilya Kasnacheev


A server node might fail a client node due to pauses in the network connection:

[15:07:16,330][WARNING][tcp-disco-msg-worker-[11cf0c06 10.212.120.71:57500 
crd]-#2%hh_DynamicGrid_v2%][TcpDiscoverySpi] Failing client node due to not 
receiving metrics updates from client node within 
'IgniteConfiguration.clientFailureDetectionTimeout' (consider increasing 
configuration property) [timeout=12, node=TcpDiscoveryNode 
[id=9dbcfb86-a60e-4382-904f-57bffbe18c5c,consistentId=73B5811B-9644-48FD-A533-B4609FDAD591,
 addrs=ArrayList [10.212.120.190], sockAddrs=HashSet 
[VWNV02AX07080.HH.com/10.212.120.190:0], discPort=0, order=488, intOrder=248, 
lastExchangeTime=1612397142960, loc=false, ver=2.8.1#20200521-sha1:86422096, 
isClient=true]]

Then, the client node will never understand that it is dropped by cluster and 
will be endlessly trying to connect. I'm not sure what does discovery do on the 
client node:
{code}

[15:07:42,689][SEVERE][Thread-219][TcpCommunicationSpi] Failed to send message 
to remote node [node=TcpDiscoveryNode [id=83fd7c70-839d-46ca-969f-bbb9661d6ab2, 
consistentId=127.1.1.1:57500, addrs=ArrayList [127.1.1.1], sockAddrs=HashSet 
[test.com/127.1.1.1:57500], discPort=57500, order=1, intOrder=1, 
lastExchangeTime=1612397256785, loc=false, ver=2.8.1#20200521-sha1:86422096, 
isClient=false], msg=GridIoMessage [plc=2, topic=TOPIC_CACHE, topicOrd=8, 
ordered=false, timeout=0, skipOnTimeout=false, 
msg=GridNearAtomicFullUpdateRequest [keys=ArrayList [UserKeyCacheObjectImpl 
[part=292, val=TestModel:TEST|bbf4da4d-c3d7-4b46-98b6-0de70c30f668, 
hasValBytes=true]], conflictTtls=null, conflictExpireTimes=null, 
expiryPlc=org.apache.ignite.internal.processors.platform.cache.expiry.PlatformExpiryPolicy@3fb1b76e,
 initSize=1, filter=null, parent=GridNearAtomicAbstractUpdateRequest [res=null, 
flags=keepBinary
class org.apache.ignite.internal.cluster.ClusterTopologyCheckedException: 
Remote node does not observe current node in topology : 
83fd7c70-839d-46ca-969f-bbb9661d6ab2
at 
org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.createNioSession(TcpCommunicationSpi.java:3622)
at 
org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.createTcpClient(TcpCommunicationSpi.java:3458)
at 
org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.createCommunicationClient(TcpCommunicationSpi.java:3198)
at 
org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.reserveClient(TcpCommunicationSpi.java:3078)
at 
org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.sendMessage0(TcpCommunicationSpi.java:2918)
at 
org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.sendMessage(TcpCommunicationSpi.java:2877)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.send(GridIoManager.java:2035)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.sendToGridTopic(GridIoManager.java:2132)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.send(GridCacheIoManager.java:1257)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.send(GridCacheIoManager.java:1296)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateFuture.sendSingleRequest(GridNearAtomicAbstractUpdateFuture.java:312)
{code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (IGNITE-14445) "Remote node does not observe current" after failure by not receiving metrics from client

2021-03-30 Thread Ilya Kasnacheev (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-14445?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ilya Kasnacheev updated IGNITE-14445:
-
Attachment: ignite-server-impl.patch

> "Remote node does not observe current" after failure by not receiving metrics 
> from client
> -
>
> Key: IGNITE-14445
> URL: https://issues.apache.org/jira/browse/IGNITE-14445
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.9.1
>Reporter: Ilya Kasnacheev
>Priority: Major
> Attachments: ignite-server-impl.patch
>
>
> A server node might fail a client node due to pauses in the network 
> connection:
> [15:07:16,330][WARNING][tcp-disco-msg-worker-[11cf0c06 10.212.120.71:57500 
> crd]-#2%hh_DynamicGrid_v2%][TcpDiscoverySpi] Failing client node due to not 
> receiving metrics updates from client node within 
> 'IgniteConfiguration.clientFailureDetectionTimeout' (consider increasing 
> configuration property) [timeout=12, node=TcpDiscoveryNode 
> [id=9dbcfb86-a60e-4382-904f-57bffbe18c5c,consistentId=73B5811B-9644-48FD-A533-B4609FDAD591,
>  addrs=ArrayList [10.212.120.190], sockAddrs=HashSet 
> [VWNV02AX07080.HH.com/10.212.120.190:0], discPort=0, order=488, intOrder=248, 
> lastExchangeTime=1612397142960, loc=false, ver=2.8.1#20200521-sha1:86422096, 
> isClient=true]]
> Then, the client node will never understand that it is dropped by cluster and 
> will be endlessly trying to connect. I'm not sure what does discovery do on 
> the client node:
> {code}
> [15:07:42,689][SEVERE][Thread-219][TcpCommunicationSpi] Failed to send 
> message to remote node [node=TcpDiscoveryNode 
> [id=83fd7c70-839d-46ca-969f-bbb9661d6ab2, consistentId=127.1.1.1:57500, 
> addrs=ArrayList [127.1.1.1], sockAddrs=HashSet [test.com/127.1.1.1:57500], 
> discPort=57500, order=1, intOrder=1, lastExchangeTime=1612397256785, 
> loc=false, ver=2.8.1#20200521-sha1:86422096, isClient=false], 
> msg=GridIoMessage [plc=2, topic=TOPIC_CACHE, topicOrd=8, ordered=false, 
> timeout=0, skipOnTimeout=false, msg=GridNearAtomicFullUpdateRequest 
> [keys=ArrayList [UserKeyCacheObjectImpl [part=292, 
> val=TestModel:TEST|bbf4da4d-c3d7-4b46-98b6-0de70c30f668, hasValBytes=true]], 
> conflictTtls=null, conflictExpireTimes=null, 
> expiryPlc=org.apache.ignite.internal.processors.platform.cache.expiry.PlatformExpiryPolicy@3fb1b76e,
>  initSize=1, filter=null, parent=GridNearAtomicAbstractUpdateRequest 
> [res=null, flags=keepBinary
> class org.apache.ignite.internal.cluster.ClusterTopologyCheckedException: 
> Remote node does not observe current node in topology : 
> 83fd7c70-839d-46ca-969f-bbb9661d6ab2
> at 
> org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.createNioSession(TcpCommunicationSpi.java:3622)
> at 
> org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.createTcpClient(TcpCommunicationSpi.java:3458)
> at 
> org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.createCommunicationClient(TcpCommunicationSpi.java:3198)
> at 
> org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.reserveClient(TcpCommunicationSpi.java:3078)
> at 
> org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.sendMessage0(TcpCommunicationSpi.java:2918)
> at 
> org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.sendMessage(TcpCommunicationSpi.java:2877)
> at 
> org.apache.ignite.internal.managers.communication.GridIoManager.send(GridIoManager.java:2035)
> at 
> org.apache.ignite.internal.managers.communication.GridIoManager.sendToGridTopic(GridIoManager.java:2132)
> at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.send(GridCacheIoManager.java:1257)
> at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.send(GridCacheIoManager.java:1296)
> at 
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateFuture.sendSingleRequest(GridNearAtomicAbstractUpdateFuture.java:312)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-14445) "Remote node does not observe current" after failure by not receiving metrics from client

2021-03-30 Thread Ilya Kasnacheev (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-14445?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17311465#comment-17311465
 ] 

Ilya Kasnacheev commented on IGNITE-14445:
--

I have created a reproducer for this behavior which will simulate client 
segmentation due to metrics update. Apply the patch (attached) and run some 
client-using test, such as:

mvn surefire:test -DIGNITE_STOP_NODE=100 
-Dtest=IgniteCacheManyClientsTest\#testManyClientsClientDiscovery -pl 
:ignite-core

You can use different values with IGNITE_STOP_NODE, such as 0, 20, 50, 100 - to 
segment a client node on various stages of life cycle.

> "Remote node does not observe current" after failure by not receiving metrics 
> from client
> -
>
> Key: IGNITE-14445
> URL: https://issues.apache.org/jira/browse/IGNITE-14445
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.9.1
>Reporter: Ilya Kasnacheev
>Priority: Major
> Attachments: ignite-server-impl.patch
>
>
> A server node might fail a client node due to pauses in the network 
> connection:
> [15:07:16,330][WARNING][tcp-disco-msg-worker-[11cf0c06 10.212.120.71:57500 
> crd]-#2%hh_DynamicGrid_v2%][TcpDiscoverySpi] Failing client node due to not 
> receiving metrics updates from client node within 
> 'IgniteConfiguration.clientFailureDetectionTimeout' (consider increasing 
> configuration property) [timeout=12, node=TcpDiscoveryNode 
> [id=9dbcfb86-a60e-4382-904f-57bffbe18c5c,consistentId=73B5811B-9644-48FD-A533-B4609FDAD591,
>  addrs=ArrayList [10.212.120.190], sockAddrs=HashSet 
> [VWNV02AX07080.HH.com/10.212.120.190:0], discPort=0, order=488, intOrder=248, 
> lastExchangeTime=1612397142960, loc=false, ver=2.8.1#20200521-sha1:86422096, 
> isClient=true]]
> Then, the client node will never understand that it is dropped by cluster and 
> will be endlessly trying to connect. I'm not sure what does discovery do on 
> the client node:
> {code}
> [15:07:42,689][SEVERE][Thread-219][TcpCommunicationSpi] Failed to send 
> message to remote node [node=TcpDiscoveryNode 
> [id=83fd7c70-839d-46ca-969f-bbb9661d6ab2, consistentId=127.1.1.1:57500, 
> addrs=ArrayList [127.1.1.1], sockAddrs=HashSet [test.com/127.1.1.1:57500], 
> discPort=57500, order=1, intOrder=1, lastExchangeTime=1612397256785, 
> loc=false, ver=2.8.1#20200521-sha1:86422096, isClient=false], 
> msg=GridIoMessage [plc=2, topic=TOPIC_CACHE, topicOrd=8, ordered=false, 
> timeout=0, skipOnTimeout=false, msg=GridNearAtomicFullUpdateRequest 
> [keys=ArrayList [UserKeyCacheObjectImpl [part=292, 
> val=TestModel:TEST|bbf4da4d-c3d7-4b46-98b6-0de70c30f668, hasValBytes=true]], 
> conflictTtls=null, conflictExpireTimes=null, 
> expiryPlc=org.apache.ignite.internal.processors.platform.cache.expiry.PlatformExpiryPolicy@3fb1b76e,
>  initSize=1, filter=null, parent=GridNearAtomicAbstractUpdateRequest 
> [res=null, flags=keepBinary
> class org.apache.ignite.internal.cluster.ClusterTopologyCheckedException: 
> Remote node does not observe current node in topology : 
> 83fd7c70-839d-46ca-969f-bbb9661d6ab2
> at 
> org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.createNioSession(TcpCommunicationSpi.java:3622)
> at 
> org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.createTcpClient(TcpCommunicationSpi.java:3458)
> at 
> org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.createCommunicationClient(TcpCommunicationSpi.java:3198)
> at 
> org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.reserveClient(TcpCommunicationSpi.java:3078)
> at 
> org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.sendMessage0(TcpCommunicationSpi.java:2918)
> at 
> org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.sendMessage(TcpCommunicationSpi.java:2877)
> at 
> org.apache.ignite.internal.managers.communication.GridIoManager.send(GridIoManager.java:2035)
> at 
> org.apache.ignite.internal.managers.communication.GridIoManager.sendToGridTopic(GridIoManager.java:2132)
> at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.send(GridCacheIoManager.java:1257)
> at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.send(GridCacheIoManager.java:1296)
> at 
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateFuture.sendSingleRequest(GridNearAtomicAbstractUpdateFuture.java:312)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-14445) "Remote node does not observe current" after failure by not receiving metrics from client

2021-03-30 Thread Ilya Kasnacheev (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-14445?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17311467#comment-17311467
 ] 

Ilya Kasnacheev commented on IGNITE-14445:
--

It will also show different errors, such as assertion error in client:

{code}
[2021-03-30 
13:46:05,338][ERROR][tcp-client-disco-msg-worker-#216%distributed.IgniteCacheManyClientsTest8%-#2083%distributed.IgniteCacheManyClientsTest8%][IgniteTestResources]
 Critical system error detected. Will be handled accordingly to configured 
handler [hnd=NoOpFailureHandler [super=AbstractFailureHandler 
[ignoredFailureTypes=UnmodifiableSet [SYSTEM_WORKER_BLOCKED, 
SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], failureCtx=FailureContext 
[type=CRITICAL_ERROR, err=java.lang.AssertionError: lastVer=4, newVer=6, 
locNode=TcpDiscoveryNode [id=009a68fa-161f-4eef-b7ed-bfb115d8, 
consistentId=009a68fa-161f-4eef-b7ed-bfb115d8, addrs=ArrayList [127.0.0.1], 
sockAddrs=HashSet [/127.0.0.1:0], discPort=0, order=0, intOrder=0, 
lastExchangeTime=1617101161213, loc=true, ver=2.9.1#20210115-sha1:de970af4, 
isClient=true], msg=TcpDiscoveryNodeAddFinishedMessage 
[nodeId=c4c43b12-3293-4fbd-948d-acd211b4, super=TcpDiscoveryAbstractMessage 
[sndNodeId=e278b5eb-2faf-4602-844f-d7046720, 
id=b0a5db28871-e278b5eb-2faf-4602-844f-d7046720, 
verifierNodeId=e278b5eb-2faf-4602-844f-d7046720, topVer=6, pendingIdx=0, 
failedNodes=null, isClient=false
java.lang.AssertionError: lastVer=4, newVer=6, locNode=TcpDiscoveryNode 
[id=009a68fa-161f-4eef-b7ed-bfb115d8, 
consistentId=009a68fa-161f-4eef-b7ed-bfb115d8, addrs=ArrayList [127.0.0.1], 
sockAddrs=HashSet [/127.0.0.1:0], discPort=0, order=0, intOrder=0, 
lastExchangeTime=1617101161213, loc=true, ver=2.9.1#20210115-sha1:de970af4, 
isClient=true], msg=TcpDiscoveryNodeAddFinishedMessage 
[nodeId=c4c43b12-3293-4fbd-948d-acd211b4, super=TcpDiscoveryAbstractMessage 
[sndNodeId=e278b5eb-2faf-4602-844f-d7046720, 
id=b0a5db28871-e278b5eb-2faf-4602-844f-d7046720, 
verifierNodeId=e278b5eb-2faf-4602-844f-d7046720, topVer=6, pendingIdx=0, 
failedNodes=null, isClient=false]]
at 
org.apache.ignite.spi.discovery.tcp.ClientImpl.updateTopologyHistory(ClientImpl.java:912)
at 
org.apache.ignite.spi.discovery.tcp.ClientImpl.access$3700(ClientImpl.java:146)
at 
org.apache.ignite.spi.discovery.tcp.ClientImpl$MessageWorker.processNodeAddFinishedMessage(ClientImpl.java:2366)
at 
org.apache.ignite.spi.discovery.tcp.ClientImpl$MessageWorker.processDiscoveryMessage(ClientImpl.java:2149)
at 
org.apache.ignite.spi.discovery.tcp.ClientImpl$MessageWorker.body(ClientImpl.java:1988)
at 
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
at 
org.apache.ignite.spi.discovery.tcp.ClientImpl$1.body(ClientImpl.java:307)
at org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:58)
{code}

Or, more important, NPE in server node:
{code}
[2021-03-30 
14:07:05,133][ERROR][sys-#161%distributed.IgniteCacheManyClientsTest2%][IgniteTestResources]
 Critical system error detected. Will be handled accordingly to configured 
handler [hnd=NoOpFailureHandler [super=AbstractFailureHandler 
[ignoredFailureTypes=UnmodifiableSet [SYSTEM_WORKER_BLOCKED, 
SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], failureCtx=FailureContext 
[type=CRITICAL_ERROR, err=class o.a.i.IgniteCheckedException: null]]
class org.apache.ignite.IgniteCheckedException: null
at 
org.apache.ignite.internal.util.IgniteUtils.cast(IgniteUtils.java:7563)
at 
org.apache.ignite.internal.processors.closure.GridClosureProcessor$1.body(GridClosureProcessor.java:837)
at 
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException
at 
org.apache.ignite.internal.IgniteFeatures.nodeSupports(IgniteFeatures.java:160)
at 
org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager$TxRecoveryInitRunnable.isMvccRecoveryMessageRequired(IgniteTxManager.java:3335)
at 
org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager$TxRecoveryInitRunnable.run(IgniteTxManager.java:3246)
at 
org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:7117)
at 
org.apache.ignite.internal.processors.closure.GridClosureProcessor$1.body(GridClosureProcessor.java:827)
... 4 more
{code}

Maybe we should make a crazy monkey test out of it.

> "Remote node does not observe current" after failure by not receiving metrics 
> from client
> -
>
>   

[jira] [Updated] (IGNITE-14445) "Remote node does not observe current" after failure by not receiving metrics from client

2021-03-30 Thread Ilya Kasnacheev (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-14445?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ilya Kasnacheev updated IGNITE-14445:
-
Attachment: simulated-log.txt.gz

> "Remote node does not observe current" after failure by not receiving metrics 
> from client
> -
>
> Key: IGNITE-14445
> URL: https://issues.apache.org/jira/browse/IGNITE-14445
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.9.1
>Reporter: Ilya Kasnacheev
>Priority: Major
> Attachments: ignite-server-impl.patch, simulated-log.txt.gz
>
>
> A server node might fail a client node due to pauses in the network 
> connection:
> [15:07:16,330][WARNING][tcp-disco-msg-worker-[11cf0c06 10.212.120.71:57500 
> crd]-#2%hh_DynamicGrid_v2%][TcpDiscoverySpi] Failing client node due to not 
> receiving metrics updates from client node within 
> 'IgniteConfiguration.clientFailureDetectionTimeout' (consider increasing 
> configuration property) [timeout=12, node=TcpDiscoveryNode 
> [id=9dbcfb86-a60e-4382-904f-57bffbe18c5c,consistentId=73B5811B-9644-48FD-A533-B4609FDAD591,
>  addrs=ArrayList [10.212.120.190], sockAddrs=HashSet 
> [VWNV02AX07080.HH.com/10.212.120.190:0], discPort=0, order=488, intOrder=248, 
> lastExchangeTime=1612397142960, loc=false, ver=2.8.1#20200521-sha1:86422096, 
> isClient=true]]
> Then, the client node will never understand that it is dropped by cluster and 
> will be endlessly trying to connect. I'm not sure what does discovery do on 
> the client node:
> {code}
> [15:07:42,689][SEVERE][Thread-219][TcpCommunicationSpi] Failed to send 
> message to remote node [node=TcpDiscoveryNode 
> [id=83fd7c70-839d-46ca-969f-bbb9661d6ab2, consistentId=127.1.1.1:57500, 
> addrs=ArrayList [127.1.1.1], sockAddrs=HashSet [test.com/127.1.1.1:57500], 
> discPort=57500, order=1, intOrder=1, lastExchangeTime=1612397256785, 
> loc=false, ver=2.8.1#20200521-sha1:86422096, isClient=false], 
> msg=GridIoMessage [plc=2, topic=TOPIC_CACHE, topicOrd=8, ordered=false, 
> timeout=0, skipOnTimeout=false, msg=GridNearAtomicFullUpdateRequest 
> [keys=ArrayList [UserKeyCacheObjectImpl [part=292, 
> val=TestModel:TEST|bbf4da4d-c3d7-4b46-98b6-0de70c30f668, hasValBytes=true]], 
> conflictTtls=null, conflictExpireTimes=null, 
> expiryPlc=org.apache.ignite.internal.processors.platform.cache.expiry.PlatformExpiryPolicy@3fb1b76e,
>  initSize=1, filter=null, parent=GridNearAtomicAbstractUpdateRequest 
> [res=null, flags=keepBinary
> class org.apache.ignite.internal.cluster.ClusterTopologyCheckedException: 
> Remote node does not observe current node in topology : 
> 83fd7c70-839d-46ca-969f-bbb9661d6ab2
> at 
> org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.createNioSession(TcpCommunicationSpi.java:3622)
> at 
> org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.createTcpClient(TcpCommunicationSpi.java:3458)
> at 
> org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.createCommunicationClient(TcpCommunicationSpi.java:3198)
> at 
> org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.reserveClient(TcpCommunicationSpi.java:3078)
> at 
> org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.sendMessage0(TcpCommunicationSpi.java:2918)
> at 
> org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.sendMessage(TcpCommunicationSpi.java:2877)
> at 
> org.apache.ignite.internal.managers.communication.GridIoManager.send(GridIoManager.java:2035)
> at 
> org.apache.ignite.internal.managers.communication.GridIoManager.sendToGridTopic(GridIoManager.java:2132)
> at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.send(GridCacheIoManager.java:1257)
> at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.send(GridCacheIoManager.java:1296)
> at 
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateFuture.sendSingleRequest(GridNearAtomicAbstractUpdateFuture.java:312)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (IGNITE-14445) "Remote node does not observe current" after failure by not receiving metrics from client

2021-03-30 Thread Ilya Kasnacheev (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-14445?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ilya Kasnacheev updated IGNITE-14445:
-
Affects Version/s: 2.8.1

> "Remote node does not observe current" after failure by not receiving metrics 
> from client
> -
>
> Key: IGNITE-14445
> URL: https://issues.apache.org/jira/browse/IGNITE-14445
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.8.1, 2.9.1
>Reporter: Ilya Kasnacheev
>Priority: Major
> Attachments: ignite-server-impl.patch, simulated-log.txt.gz
>
>
> A server node might fail a client node due to pauses in the network 
> connection:
> [15:07:16,330][WARNING][tcp-disco-msg-worker-[11cf0c06 10.212.120.71:57500 
> crd]-#2%hh_DynamicGrid_v2%][TcpDiscoverySpi] Failing client node due to not 
> receiving metrics updates from client node within 
> 'IgniteConfiguration.clientFailureDetectionTimeout' (consider increasing 
> configuration property) [timeout=12, node=TcpDiscoveryNode 
> [id=9dbcfb86-a60e-4382-904f-57bffbe18c5c,consistentId=73B5811B-9644-48FD-A533-B4609FDAD591,
>  addrs=ArrayList [10.212.120.190], sockAddrs=HashSet 
> [VWNV02AX07080.HH.com/10.212.120.190:0], discPort=0, order=488, intOrder=248, 
> lastExchangeTime=1612397142960, loc=false, ver=2.8.1#20200521-sha1:86422096, 
> isClient=true]]
> Then, the client node will never understand that it is dropped by cluster and 
> will be endlessly trying to connect. I'm not sure what does discovery do on 
> the client node:
> {code}
> [15:07:42,689][SEVERE][Thread-219][TcpCommunicationSpi] Failed to send 
> message to remote node [node=TcpDiscoveryNode 
> [id=83fd7c70-839d-46ca-969f-bbb9661d6ab2, consistentId=127.1.1.1:57500, 
> addrs=ArrayList [127.1.1.1], sockAddrs=HashSet [test.com/127.1.1.1:57500], 
> discPort=57500, order=1, intOrder=1, lastExchangeTime=1612397256785, 
> loc=false, ver=2.8.1#20200521-sha1:86422096, isClient=false], 
> msg=GridIoMessage [plc=2, topic=TOPIC_CACHE, topicOrd=8, ordered=false, 
> timeout=0, skipOnTimeout=false, msg=GridNearAtomicFullUpdateRequest 
> [keys=ArrayList [UserKeyCacheObjectImpl [part=292, 
> val=TestModel:TEST|bbf4da4d-c3d7-4b46-98b6-0de70c30f668, hasValBytes=true]], 
> conflictTtls=null, conflictExpireTimes=null, 
> expiryPlc=org.apache.ignite.internal.processors.platform.cache.expiry.PlatformExpiryPolicy@3fb1b76e,
>  initSize=1, filter=null, parent=GridNearAtomicAbstractUpdateRequest 
> [res=null, flags=keepBinary
> class org.apache.ignite.internal.cluster.ClusterTopologyCheckedException: 
> Remote node does not observe current node in topology : 
> 83fd7c70-839d-46ca-969f-bbb9661d6ab2
> at 
> org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.createNioSession(TcpCommunicationSpi.java:3622)
> at 
> org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.createTcpClient(TcpCommunicationSpi.java:3458)
> at 
> org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.createCommunicationClient(TcpCommunicationSpi.java:3198)
> at 
> org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.reserveClient(TcpCommunicationSpi.java:3078)
> at 
> org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.sendMessage0(TcpCommunicationSpi.java:2918)
> at 
> org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.sendMessage(TcpCommunicationSpi.java:2877)
> at 
> org.apache.ignite.internal.managers.communication.GridIoManager.send(GridIoManager.java:2035)
> at 
> org.apache.ignite.internal.managers.communication.GridIoManager.sendToGridTopic(GridIoManager.java:2132)
> at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.send(GridCacheIoManager.java:1257)
> at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.send(GridCacheIoManager.java:1296)
> at 
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateFuture.sendSingleRequest(GridNearAtomicAbstractUpdateFuture.java:312)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (IGNITE-14347) Fix Node failure on Receiving Data of Unknown class via Distributed Metastorage

2021-03-30 Thread Ivan Bessonov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-14347?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ivan Bessonov reassigned IGNITE-14347:
--

Assignee: Atri Sharma

> Fix Node failure on Receiving Data of Unknown class via Distributed 
> Metastorage
> ---
>
> Key: IGNITE-14347
> URL: https://issues.apache.org/jira/browse/IGNITE-14347
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Atri Sharma
>Assignee: Atri Sharma
>Priority: Major
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> When a node sees an object of a class that is missing on this node's 
> classpath, it fails with the following exception:
> {noformat}
> [16:46:47,134][SEVERE][disco-notifier-worker-#41][] Critical system error 
> detected. Will be handled accordingly to configured handler 
> [hnd=StopNodeOrHaltFailureHandler [tryStop=false, timeout=0, 
> super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet 
> [SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], 
> failureCtx=FailureContext [type=CRITICAL_ERROR, err=class 
> o.a.i.IgniteCheckedException: Failed to find class with given class loader 
> for unmarshalling (make sure same versions of all classes are available on 
> all nodes or enable peer-class-loading) 
> [clsLdr=sun.misc.Launcher$AppClassLoader@764c12b6, 
> cls=example.ClientNode$BamboozleClass]]]
> class org.apache.ignite.IgniteCheckedException: Failed to find class with 
> given class loader for unmarshalling (make sure same versions of all classes 
> are available on all nodes or enable peer-class-loading) 
> [clsLdr=sun.misc.Launcher$AppClassLoader@764c12b6, 
> cls=example.ClientNode$BamboozleClass]
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:128)
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:138)
>   at 
> org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:80)
>   at 
> org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageUtil.unmarshal(DistributedMetaStorageUtil.java:61)
>   at 
> org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageImpl.completeWrite(DistributedMetaStorageImpl.java:1161)
>   at 
> org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageImpl.onUpdateMessage(DistributedMetaStorageImpl.java:1089)
>   at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.onDiscovery0(GridDiscoveryManager.java:650)
>   at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.lambda$onDiscovery$0(GridDiscoveryManager.java:521)
>   at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body0(GridDiscoveryManager.java:2718)
>   at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body(GridDiscoveryManager.java:2756)
>   at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:119)
>   at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.ClassNotFoundException: example.ClientNode$BamboozleClass
>   at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
>   at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
>   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
>   at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
>   at java.lang.Class.forName0(Native Method)
>   at java.lang.Class.forName(Class.java:348)
>   at 
> org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:9061)
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshallerObjectInputStream.resolveClass(JdkMarshallerObjectInputStream.java:58)
>   at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1925)
>   at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1808)
>   at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2099)
>   at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1625)
>   at java.io.ObjectInputStream.readObject(ObjectInputStream.java:465)
>   at java.io.ObjectInputStream.readObject(ObjectInputStream.java:423)
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:123)
>   ... 11 more{noformat}
> The result is that one node can write an object of some custom class to the 
> metastorage and make all other nodes fail.
> The following reproducer can be used:
> {code:java}
> public class ClientNode {
> public static void main(String[] args) throws IgniteCheckedException {
> IgniteConfiguration igniteCfg = 
> nodeConfiguration().setClien

[jira] [Created] (IGNITE-14446) Implement simple version of watching mechanism

2021-03-30 Thread Kirill Gusakov (Jira)
Kirill Gusakov created IGNITE-14446:
---

 Summary: Implement simple version of watching mechanism
 Key: IGNITE-14446
 URL: https://issues.apache.org/jira/browse/IGNITE-14446
 Project: Ignite
  Issue Type: Sub-task
Reporter: Kirill Gusakov
Assignee: Kirill Gusakov






--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-14417) Document performance-statistics-ext module

2021-03-30 Thread Ignite TC Bot (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-14417?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17311533#comment-17311533
 ] 

Ignite TC Bot commented on IGNITE-14417:


{panel:title=Branch: [pull/8940/head] Base: [master] : No blockers 
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
{panel:title=Branch: [pull/8940/head] Base: [master] : No new tests 
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1}{panel}
[TeamCity *--> Run :: All* 
Results|https://ci.ignite.apache.org/viewLog.html?buildId=5940988&buildTypeId=IgniteTests24Java8_RunAll]

> Document performance-statistics-ext module
> --
>
> Key: IGNITE-14417
> URL: https://issues.apache.org/jira/browse/IGNITE-14417
> Project: Ignite
>  Issue Type: Task
>  Components: documentation
>Affects Versions: 2.10
>Reporter: Amelchev Nikita
>Assignee: Amelchev Nikita
>Priority: Major
>  Time Spent: 3h 50m
>  Remaining Estimate: 0h
>
> It's needed to document performance-statistics-ext module



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-14433) Update README file for the performance statistics extension

2021-03-30 Thread Amelchev Nikita (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-14433?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17311534#comment-17311534
 ] 

Amelchev Nikita commented on IGNITE-14433:
--

[~PetrovMikhail], thanks for the review.

Merged to the master.

> Update README file for the performance statistics extension
> ---
>
> Key: IGNITE-14433
> URL: https://issues.apache.org/jira/browse/IGNITE-14433
> Project: Ignite
>  Issue Type: Task
>Reporter: Amelchev Nikita
>Assignee: Amelchev Nikita
>Priority: Major
>
> Document the {{print-statistics.sh}} script.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-14417) Document performance-statistics-ext module

2021-03-30 Thread Amelchev Nikita (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-14417?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17311536#comment-17311536
 ] 

Amelchev Nikita commented on IGNITE-14417:
--

[~nsafonov], [~PetrovMikhail], thanks for the review.

Merged to the master.

> Document performance-statistics-ext module
> --
>
> Key: IGNITE-14417
> URL: https://issues.apache.org/jira/browse/IGNITE-14417
> Project: Ignite
>  Issue Type: Task
>  Components: documentation
>Affects Versions: 2.10
>Reporter: Amelchev Nikita
>Assignee: Amelchev Nikita
>Priority: Major
>  Time Spent: 4h
>  Remaining Estimate: 0h
>
> It's needed to document performance-statistics-ext module



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (IGNITE-14417) Document performance-statistics-ext module

2021-03-30 Thread Amelchev Nikita (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-14417?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Amelchev Nikita updated IGNITE-14417:
-
Fix Version/s: 2.10

> Document performance-statistics-ext module
> --
>
> Key: IGNITE-14417
> URL: https://issues.apache.org/jira/browse/IGNITE-14417
> Project: Ignite
>  Issue Type: Task
>  Components: documentation
>Affects Versions: 2.10
>Reporter: Amelchev Nikita
>Assignee: Amelchev Nikita
>Priority: Major
> Fix For: 2.10
>
>  Time Spent: 4h
>  Remaining Estimate: 0h
>
> It's needed to document performance-statistics-ext module



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (IGNITE-14446) Implement DMS manager with watch registry

2021-03-30 Thread Kirill Gusakov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-14446?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kirill Gusakov updated IGNITE-14446:

Summary: Implement DMS manager with watch registry  (was: Implement simple 
version of watching mechanism)

> Implement DMS manager with watch registry
> -
>
> Key: IGNITE-14446
> URL: https://issues.apache.org/jira/browse/IGNITE-14446
> Project: Ignite
>  Issue Type: Sub-task
>Reporter: Kirill Gusakov
>Assignee: Kirill Gusakov
>Priority: Major
>




--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-14444) Move affinity calculation and storage to client

2021-03-30 Thread Ivan Daschinskiy (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-1?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17311680#comment-17311680
 ] 

Ivan Daschinskiy commented on IGNITE-1:
---

[~isapego] Hi, patch is ready for review

> Move affinity calculation and storage to client
> ---
>
> Key: IGNITE-1
> URL: https://issues.apache.org/jira/browse/IGNITE-1
> Project: Ignite
>  Issue Type: Improvement
>  Components: python
>Affects Versions: python-0.4.0
>Reporter: Ivan Daschinskiy
>Assignee: Ivan Daschinskiy
>Priority: Major
>  Labels: python
> Fix For: python-0.4.0
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> In current implementation, affinity storage and affinity calculation are 
> located in cache.
> It is not optimal:
> 1. affinity is not shared between Cache instance with same name
> 2. affinity mapping requests per cache and add additional loads.
> 3. if we start implementing transactions or expiry  policy, this can be an 
> issue.
> I propose to move affinity storage to Client and AioClient.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-14347) Fix Node failure on Receiving Data of Unknown class via Distributed Metastorage

2021-03-30 Thread Atri Sharma (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-14347?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17312062#comment-17312062
 ] 

Atri Sharma commented on IGNITE-14347:
--

[~sdanilov] Can we merge this, please?

> Fix Node failure on Receiving Data of Unknown class via Distributed 
> Metastorage
> ---
>
> Key: IGNITE-14347
> URL: https://issues.apache.org/jira/browse/IGNITE-14347
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Atri Sharma
>Assignee: Atri Sharma
>Priority: Major
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> When a node sees an object of a class that is missing on this node's 
> classpath, it fails with the following exception:
> {noformat}
> [16:46:47,134][SEVERE][disco-notifier-worker-#41][] Critical system error 
> detected. Will be handled accordingly to configured handler 
> [hnd=StopNodeOrHaltFailureHandler [tryStop=false, timeout=0, 
> super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet 
> [SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], 
> failureCtx=FailureContext [type=CRITICAL_ERROR, err=class 
> o.a.i.IgniteCheckedException: Failed to find class with given class loader 
> for unmarshalling (make sure same versions of all classes are available on 
> all nodes or enable peer-class-loading) 
> [clsLdr=sun.misc.Launcher$AppClassLoader@764c12b6, 
> cls=example.ClientNode$BamboozleClass]]]
> class org.apache.ignite.IgniteCheckedException: Failed to find class with 
> given class loader for unmarshalling (make sure same versions of all classes 
> are available on all nodes or enable peer-class-loading) 
> [clsLdr=sun.misc.Launcher$AppClassLoader@764c12b6, 
> cls=example.ClientNode$BamboozleClass]
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:128)
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:138)
>   at 
> org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:80)
>   at 
> org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageUtil.unmarshal(DistributedMetaStorageUtil.java:61)
>   at 
> org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageImpl.completeWrite(DistributedMetaStorageImpl.java:1161)
>   at 
> org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageImpl.onUpdateMessage(DistributedMetaStorageImpl.java:1089)
>   at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.onDiscovery0(GridDiscoveryManager.java:650)
>   at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.lambda$onDiscovery$0(GridDiscoveryManager.java:521)
>   at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body0(GridDiscoveryManager.java:2718)
>   at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body(GridDiscoveryManager.java:2756)
>   at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:119)
>   at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.ClassNotFoundException: example.ClientNode$BamboozleClass
>   at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
>   at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
>   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
>   at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
>   at java.lang.Class.forName0(Native Method)
>   at java.lang.Class.forName(Class.java:348)
>   at 
> org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:9061)
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshallerObjectInputStream.resolveClass(JdkMarshallerObjectInputStream.java:58)
>   at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1925)
>   at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1808)
>   at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2099)
>   at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1625)
>   at java.io.ObjectInputStream.readObject(ObjectInputStream.java:465)
>   at java.io.ObjectInputStream.readObject(ObjectInputStream.java:423)
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:123)
>   ... 11 more{noformat}
> The result is that one node can write an object of some custom class to the 
> metastorage and make all other nodes fail.
> The following reproducer can be used:
> {code:java}
> public class ClientNode {
> public static void main(String[] args) throws IgniteCheckedException {
> Ign

[jira] [Commented] (IGNITE-14346) Implement Azure Blob Storage Based IP Finder

2021-03-30 Thread Atri Sharma (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-14346?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17312070#comment-17312070
 ] 

Atri Sharma commented on IGNITE-14346:
--

[~ilyak] Updated. I also started an Ignite node after building a release with 
the Azure module included.

 

I did {{mvn clean install -DskipTests}} and then {{mvn initialize -Prelease and 
then started the node.}}

> Implement Azure Blob Storage Based IP Finder
> 
>
> Key: IGNITE-14346
> URL: https://issues.apache.org/jira/browse/IGNITE-14346
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Atri Sharma
>Assignee: Atri Sharma
>Priority: Major
>  Labels: ReviewNeeded
> Attachments: Screenshot 2021-03-23 at 8.42.31 PM.png, Screenshot 
> 2021-03-23 at 8.43.31 PM.png, Screenshot 2021-03-23 at 8.44.11 PM.png, 
> Screenshot 2021-03-23 at 8.45.05 PM.png
>
>  Time Spent: 1h 40m
>  Remaining Estimate: 0h
>




--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-14346) Implement Azure Blob Storage Based IP Finder

2021-03-30 Thread Atri Sharma (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-14346?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17312071#comment-17312071
 ] 

Atri Sharma commented on IGNITE-14346:
--

[~ilyak] Tried with a build after including the Azure directory and the Ignite 
node started up fine (after the latest iteration).


Please see and let me know.

> Implement Azure Blob Storage Based IP Finder
> 
>
> Key: IGNITE-14346
> URL: https://issues.apache.org/jira/browse/IGNITE-14346
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Atri Sharma
>Assignee: Atri Sharma
>Priority: Major
>  Labels: ReviewNeeded
> Attachments: Screenshot 2021-03-23 at 8.42.31 PM.png, Screenshot 
> 2021-03-23 at 8.43.31 PM.png, Screenshot 2021-03-23 at 8.44.11 PM.png, 
> Screenshot 2021-03-23 at 8.45.05 PM.png
>
>  Time Spent: 1h 40m
>  Remaining Estimate: 0h
>




--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Resolved] (IGNITE-14383) No need to update metastorage if cache statistics disabled.

2021-03-30 Thread Stanilovsky Evgeny (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-14383?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stanilovsky Evgeny resolved IGNITE-14383.
-
Resolution: Not A Problem

> No need to update metastorage if cache statistics disabled.
> ---
>
> Key: IGNITE-14383
> URL: https://issues.apache.org/jira/browse/IGNITE-14383
> Project: Ignite
>  Issue Type: Improvement
>  Components: cache
>Affects Versions: 2.10
>Reporter: Stanilovsky Evgeny
>Assignee: Stanilovsky Evgeny
>Priority: Major
>  Time Spent: 1h 50m
>  Remaining Estimate: 0h
>
> Id cache statistics disabled there is no need to update metastorage and send 
> numerous DistributedMetaStorageUpdateMessage as a result.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (IGNITE-14447) Invalid meta page can be used after index re-creation

2021-03-30 Thread Ivan Bessonov (Jira)
Ivan Bessonov created IGNITE-14447:
--

 Summary: Invalid meta page can be used after index re-creation
 Key: IGNITE-14447
 URL: https://issues.apache.org/jira/browse/IGNITE-14447
 Project: Ignite
  Issue Type: Bug
Reporter: Ivan Bessonov
Assignee: Ivan Bessonov
 Fix For: 2.11


Consider the following scenario:
 * A user creates index "A"

 * Ignite allocates page 0x1234 as the index meta page and writes it to the 
index roots tree

 * Index is populated, query entity is written on disk

 * Checkpoint is triggered and the index pages (including root) are written to 
disk

 * User drops the index

 * The tree is deallocated, the meta page is removed from the roots tree, query 
entity without the index is written to disk. No logical record is written for 
the roots tree.

 * Node crashes without checkpoint being marked

 * Node restarts. Since the query entity does not contain the index "A", the 
index tree is not created

 * User deletes some entries, then attempts to create the index "A" again

 * Since the node did not trigger checkpoint before the crash and no logical 
record was written, the root tree contains obsolete tree with links pointing to 
non-existing data (namely, index "A" still refers to page 0x1234)

 * Depending on allocation pattern and enabled assertions flag, the node will 
either fail with an assertion, or will crash the JVM

Fundamentally, the issue is caused by inconsistency between index roots tree 
and query entity. Ideally, we should move cache configuration to page memory 
subsystem, but this may be a big change.

We should check whether writing a logical record on index drop that will run 
the index cleanup on recovery mitigates the issue (in other words, the index 
cleanup persistent task should be triggered even if no checkpoint was marked 
after query entity is persisted).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-14347) Fix Node failure on Receiving Data of Unknown class via Distributed Metastorage

2021-03-30 Thread Ivan Bessonov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-14347?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17312116#comment-17312116
 ] 

Ivan Bessonov commented on IGNITE-14347:


[~atri] I'll merge it, thank you for the contribution!

> Fix Node failure on Receiving Data of Unknown class via Distributed 
> Metastorage
> ---
>
> Key: IGNITE-14347
> URL: https://issues.apache.org/jira/browse/IGNITE-14347
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Atri Sharma
>Assignee: Atri Sharma
>Priority: Major
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> When a node sees an object of a class that is missing on this node's 
> classpath, it fails with the following exception:
> {noformat}
> [16:46:47,134][SEVERE][disco-notifier-worker-#41][] Critical system error 
> detected. Will be handled accordingly to configured handler 
> [hnd=StopNodeOrHaltFailureHandler [tryStop=false, timeout=0, 
> super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet 
> [SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], 
> failureCtx=FailureContext [type=CRITICAL_ERROR, err=class 
> o.a.i.IgniteCheckedException: Failed to find class with given class loader 
> for unmarshalling (make sure same versions of all classes are available on 
> all nodes or enable peer-class-loading) 
> [clsLdr=sun.misc.Launcher$AppClassLoader@764c12b6, 
> cls=example.ClientNode$BamboozleClass]]]
> class org.apache.ignite.IgniteCheckedException: Failed to find class with 
> given class loader for unmarshalling (make sure same versions of all classes 
> are available on all nodes or enable peer-class-loading) 
> [clsLdr=sun.misc.Launcher$AppClassLoader@764c12b6, 
> cls=example.ClientNode$BamboozleClass]
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:128)
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:138)
>   at 
> org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:80)
>   at 
> org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageUtil.unmarshal(DistributedMetaStorageUtil.java:61)
>   at 
> org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageImpl.completeWrite(DistributedMetaStorageImpl.java:1161)
>   at 
> org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageImpl.onUpdateMessage(DistributedMetaStorageImpl.java:1089)
>   at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.onDiscovery0(GridDiscoveryManager.java:650)
>   at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.lambda$onDiscovery$0(GridDiscoveryManager.java:521)
>   at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body0(GridDiscoveryManager.java:2718)
>   at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body(GridDiscoveryManager.java:2756)
>   at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:119)
>   at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.ClassNotFoundException: example.ClientNode$BamboozleClass
>   at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
>   at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
>   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
>   at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
>   at java.lang.Class.forName0(Native Method)
>   at java.lang.Class.forName(Class.java:348)
>   at 
> org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:9061)
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshallerObjectInputStream.resolveClass(JdkMarshallerObjectInputStream.java:58)
>   at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1925)
>   at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1808)
>   at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2099)
>   at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1625)
>   at java.io.ObjectInputStream.readObject(ObjectInputStream.java:465)
>   at java.io.ObjectInputStream.readObject(ObjectInputStream.java:423)
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:123)
>   ... 11 more{noformat}
> The result is that one node can write an object of some custom class to the 
> metastorage and make all other nodes fail.
> The following reproducer can be used:
> {code:java}
> public class ClientNode {
> public static void main(String[] args) throws IgniteCheckedExcep

[jira] [Updated] (IGNITE-14347) Fix Node failure on Receiving Data of Unknown class via Distributed Metastorage

2021-03-30 Thread Ivan Bessonov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-14347?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ivan Bessonov updated IGNITE-14347:
---
Ignite Flags:   (was: Docs Required,Release Notes Required)

> Fix Node failure on Receiving Data of Unknown class via Distributed 
> Metastorage
> ---
>
> Key: IGNITE-14347
> URL: https://issues.apache.org/jira/browse/IGNITE-14347
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Atri Sharma
>Assignee: Atri Sharma
>Priority: Major
> Fix For: 2.11
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> When a node sees an object of a class that is missing on this node's 
> classpath, it fails with the following exception:
> {noformat}
> [16:46:47,134][SEVERE][disco-notifier-worker-#41][] Critical system error 
> detected. Will be handled accordingly to configured handler 
> [hnd=StopNodeOrHaltFailureHandler [tryStop=false, timeout=0, 
> super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet 
> [SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], 
> failureCtx=FailureContext [type=CRITICAL_ERROR, err=class 
> o.a.i.IgniteCheckedException: Failed to find class with given class loader 
> for unmarshalling (make sure same versions of all classes are available on 
> all nodes or enable peer-class-loading) 
> [clsLdr=sun.misc.Launcher$AppClassLoader@764c12b6, 
> cls=example.ClientNode$BamboozleClass]]]
> class org.apache.ignite.IgniteCheckedException: Failed to find class with 
> given class loader for unmarshalling (make sure same versions of all classes 
> are available on all nodes or enable peer-class-loading) 
> [clsLdr=sun.misc.Launcher$AppClassLoader@764c12b6, 
> cls=example.ClientNode$BamboozleClass]
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:128)
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:138)
>   at 
> org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:80)
>   at 
> org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageUtil.unmarshal(DistributedMetaStorageUtil.java:61)
>   at 
> org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageImpl.completeWrite(DistributedMetaStorageImpl.java:1161)
>   at 
> org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageImpl.onUpdateMessage(DistributedMetaStorageImpl.java:1089)
>   at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.onDiscovery0(GridDiscoveryManager.java:650)
>   at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.lambda$onDiscovery$0(GridDiscoveryManager.java:521)
>   at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body0(GridDiscoveryManager.java:2718)
>   at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body(GridDiscoveryManager.java:2756)
>   at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:119)
>   at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.ClassNotFoundException: example.ClientNode$BamboozleClass
>   at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
>   at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
>   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
>   at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
>   at java.lang.Class.forName0(Native Method)
>   at java.lang.Class.forName(Class.java:348)
>   at 
> org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:9061)
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshallerObjectInputStream.resolveClass(JdkMarshallerObjectInputStream.java:58)
>   at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1925)
>   at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1808)
>   at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2099)
>   at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1625)
>   at java.io.ObjectInputStream.readObject(ObjectInputStream.java:465)
>   at java.io.ObjectInputStream.readObject(ObjectInputStream.java:423)
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:123)
>   ... 11 more{noformat}
> The result is that one node can write an object of some custom class to the 
> metastorage and make all other nodes fail.
> The following reproducer can be used:
> {code:java}
> public class ClientNode {
> public static void main(String[] args) throws IgniteCheckedException {
> I

[jira] [Commented] (IGNITE-14347) Fix Node failure on Receiving Data of Unknown class via Distributed Metastorage

2021-03-30 Thread Ivan Bessonov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-14347?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17312119#comment-17312119
 ] 

Ivan Bessonov commented on IGNITE-14347:


[~atri] by the way, I see that you completely copied 
https://issues.apache.org/jira/browse/IGNITE-13642 instead of assigning it to 
yourself, what was your motivation?

> Fix Node failure on Receiving Data of Unknown class via Distributed 
> Metastorage
> ---
>
> Key: IGNITE-14347
> URL: https://issues.apache.org/jira/browse/IGNITE-14347
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Atri Sharma
>Assignee: Atri Sharma
>Priority: Major
> Fix For: 2.11
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> When a node sees an object of a class that is missing on this node's 
> classpath, it fails with the following exception:
> {noformat}
> [16:46:47,134][SEVERE][disco-notifier-worker-#41][] Critical system error 
> detected. Will be handled accordingly to configured handler 
> [hnd=StopNodeOrHaltFailureHandler [tryStop=false, timeout=0, 
> super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet 
> [SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], 
> failureCtx=FailureContext [type=CRITICAL_ERROR, err=class 
> o.a.i.IgniteCheckedException: Failed to find class with given class loader 
> for unmarshalling (make sure same versions of all classes are available on 
> all nodes or enable peer-class-loading) 
> [clsLdr=sun.misc.Launcher$AppClassLoader@764c12b6, 
> cls=example.ClientNode$BamboozleClass]]]
> class org.apache.ignite.IgniteCheckedException: Failed to find class with 
> given class loader for unmarshalling (make sure same versions of all classes 
> are available on all nodes or enable peer-class-loading) 
> [clsLdr=sun.misc.Launcher$AppClassLoader@764c12b6, 
> cls=example.ClientNode$BamboozleClass]
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:128)
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:138)
>   at 
> org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:80)
>   at 
> org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageUtil.unmarshal(DistributedMetaStorageUtil.java:61)
>   at 
> org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageImpl.completeWrite(DistributedMetaStorageImpl.java:1161)
>   at 
> org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageImpl.onUpdateMessage(DistributedMetaStorageImpl.java:1089)
>   at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.onDiscovery0(GridDiscoveryManager.java:650)
>   at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.lambda$onDiscovery$0(GridDiscoveryManager.java:521)
>   at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body0(GridDiscoveryManager.java:2718)
>   at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body(GridDiscoveryManager.java:2756)
>   at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:119)
>   at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.ClassNotFoundException: example.ClientNode$BamboozleClass
>   at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
>   at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
>   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
>   at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
>   at java.lang.Class.forName0(Native Method)
>   at java.lang.Class.forName(Class.java:348)
>   at 
> org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:9061)
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshallerObjectInputStream.resolveClass(JdkMarshallerObjectInputStream.java:58)
>   at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1925)
>   at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1808)
>   at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2099)
>   at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1625)
>   at java.io.ObjectInputStream.readObject(ObjectInputStream.java:465)
>   at java.io.ObjectInputStream.readObject(ObjectInputStream.java:423)
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:123)
>   ... 11 more{noformat}
> The result is that one node can write an object of some custom class to the 
> metastorage and make all other nodes fail.
> The f

[jira] [Resolved] (IGNITE-13642) Nodes fail when they meet objects of unknown type in metastorage

2021-03-30 Thread Ivan Bessonov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-13642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ivan Bessonov resolved IGNITE-13642.

Resolution: Duplicate

> Nodes fail when they meet objects of unknown type in metastorage
> 
>
> Key: IGNITE-13642
> URL: https://issues.apache.org/jira/browse/IGNITE-13642
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.9
>Reporter: Denis Mekhanikov
>Priority: Blocker
>  Labels: 2.9.1-rc
>
> When a node sees an object of a class that is missing on this node's 
> classpath, it fails with the following exception:
> {noformat}
> [16:46:47,134][SEVERE][disco-notifier-worker-#41][] Critical system error 
> detected. Will be handled accordingly to configured handler 
> [hnd=StopNodeOrHaltFailureHandler [tryStop=false, timeout=0, 
> super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet 
> [SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], 
> failureCtx=FailureContext [type=CRITICAL_ERROR, err=class 
> o.a.i.IgniteCheckedException: Failed to find class with given class loader 
> for unmarshalling (make sure same versions of all classes are available on 
> all nodes or enable peer-class-loading) 
> [clsLdr=sun.misc.Launcher$AppClassLoader@764c12b6, 
> cls=example.ClientNode$BamboozleClass]]]
> class org.apache.ignite.IgniteCheckedException: Failed to find class with 
> given class loader for unmarshalling (make sure same versions of all classes 
> are available on all nodes or enable peer-class-loading) 
> [clsLdr=sun.misc.Launcher$AppClassLoader@764c12b6, 
> cls=example.ClientNode$BamboozleClass]
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:128)
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:138)
>   at 
> org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:80)
>   at 
> org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageUtil.unmarshal(DistributedMetaStorageUtil.java:61)
>   at 
> org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageImpl.completeWrite(DistributedMetaStorageImpl.java:1161)
>   at 
> org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageImpl.onUpdateMessage(DistributedMetaStorageImpl.java:1089)
>   at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.onDiscovery0(GridDiscoveryManager.java:650)
>   at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.lambda$onDiscovery$0(GridDiscoveryManager.java:521)
>   at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body0(GridDiscoveryManager.java:2718)
>   at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body(GridDiscoveryManager.java:2756)
>   at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:119)
>   at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.ClassNotFoundException: example.ClientNode$BamboozleClass
>   at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
>   at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
>   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
>   at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
>   at java.lang.Class.forName0(Native Method)
>   at java.lang.Class.forName(Class.java:348)
>   at 
> org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:9061)
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshallerObjectInputStream.resolveClass(JdkMarshallerObjectInputStream.java:58)
>   at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1925)
>   at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1808)
>   at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2099)
>   at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1625)
>   at java.io.ObjectInputStream.readObject(ObjectInputStream.java:465)
>   at java.io.ObjectInputStream.readObject(ObjectInputStream.java:423)
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:123)
>   ... 11 more{noformat}
> The result is that one node can write an object of some custom class to the 
> metastorage and make all other nodes fail.
> The following reproducer can be used:
> {code:java}
> public class ClientNode {
> public static void main(String[] args) throws IgniteCheckedException {
> IgniteConfiguration igniteCfg = 
> nodeConfiguration().setClientMode(true);
> IgniteKernal ignite = (IgniteKernal) Ignition

[jira] [Updated] (IGNITE-14347) Fix Node failure on Receiving Data of Unknown class via Distributed Metastorage

2021-03-30 Thread Ivan Bessonov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-14347?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ivan Bessonov updated IGNITE-14347:
---
Issue Type: Bug  (was: Improvement)

> Fix Node failure on Receiving Data of Unknown class via Distributed 
> Metastorage
> ---
>
> Key: IGNITE-14347
> URL: https://issues.apache.org/jira/browse/IGNITE-14347
> Project: Ignite
>  Issue Type: Bug
>Reporter: Atri Sharma
>Assignee: Atri Sharma
>Priority: Major
> Fix For: 2.11
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> When a node sees an object of a class that is missing on this node's 
> classpath, it fails with the following exception:
> {noformat}
> [16:46:47,134][SEVERE][disco-notifier-worker-#41][] Critical system error 
> detected. Will be handled accordingly to configured handler 
> [hnd=StopNodeOrHaltFailureHandler [tryStop=false, timeout=0, 
> super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet 
> [SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], 
> failureCtx=FailureContext [type=CRITICAL_ERROR, err=class 
> o.a.i.IgniteCheckedException: Failed to find class with given class loader 
> for unmarshalling (make sure same versions of all classes are available on 
> all nodes or enable peer-class-loading) 
> [clsLdr=sun.misc.Launcher$AppClassLoader@764c12b6, 
> cls=example.ClientNode$BamboozleClass]]]
> class org.apache.ignite.IgniteCheckedException: Failed to find class with 
> given class loader for unmarshalling (make sure same versions of all classes 
> are available on all nodes or enable peer-class-loading) 
> [clsLdr=sun.misc.Launcher$AppClassLoader@764c12b6, 
> cls=example.ClientNode$BamboozleClass]
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:128)
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:138)
>   at 
> org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:80)
>   at 
> org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageUtil.unmarshal(DistributedMetaStorageUtil.java:61)
>   at 
> org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageImpl.completeWrite(DistributedMetaStorageImpl.java:1161)
>   at 
> org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageImpl.onUpdateMessage(DistributedMetaStorageImpl.java:1089)
>   at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.onDiscovery0(GridDiscoveryManager.java:650)
>   at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.lambda$onDiscovery$0(GridDiscoveryManager.java:521)
>   at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body0(GridDiscoveryManager.java:2718)
>   at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body(GridDiscoveryManager.java:2756)
>   at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:119)
>   at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.ClassNotFoundException: example.ClientNode$BamboozleClass
>   at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
>   at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
>   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
>   at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
>   at java.lang.Class.forName0(Native Method)
>   at java.lang.Class.forName(Class.java:348)
>   at 
> org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:9061)
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshallerObjectInputStream.resolveClass(JdkMarshallerObjectInputStream.java:58)
>   at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1925)
>   at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1808)
>   at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2099)
>   at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1625)
>   at java.io.ObjectInputStream.readObject(ObjectInputStream.java:465)
>   at java.io.ObjectInputStream.readObject(ObjectInputStream.java:423)
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:123)
>   ... 11 more{noformat}
> The result is that one node can write an object of some custom class to the 
> metastorage and make all other nodes fail.
> The following reproducer can be used:
> {code:java}
> public class ClientNode {
> public static void main(String[] args) throws IgniteCheckedException {
> IgniteConfiguration igniteCfg =