[jira] [Commented] (IGNITE-11676) Clean up custom event callbacks

2019-04-19 Thread Ryker Zhang (JIRA)


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

Ryker Zhang commented on IGNITE-11676:
--

Hi [~agoncharuk],

How about adding method to DiscoveryCustomMessage? Like
{code:java}
public boolean needIncMinorTopVer(GridDiscoveryManager mgr, 
AffinityTopologyVersion topVer, ClusterNode node);{code}
I found customMsgs could have several CustomEventListeners. If we add method to 
CustomEventListener, we may repeat version logic when add new 
CustomEventListener to same customMsg, and minorTopVer need increment once in 
the procedure. In addition, some customMsgs (like 
ChangeGlobalStateFinishMessage) don't have any CustomEventListener.
If we add method to DiscoveryCustomMessage and move logic to corresponding 
customMsg, GridDiscoveryMananger can use customMsg.needIncMinorTopVer() to 
determine whether increment minor topology version at line 671.
Am I missing something? Any suggestions?

> Clean up custom event callbacks
> ---
>
> Key: IGNITE-11676
> URL: https://issues.apache.org/jira/browse/IGNITE-11676
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexey Goncharuk
>Assignee: Ryker Zhang
>Priority: Major
>
> Currently, {{GridDiscoveryManager}} has several ways of notifying Ignite 
> components of discovery events:
>  * Line 668: a set of {{instanceof}} statements to invoke specific callbacks 
> for components (for example, {{ctx.state().onStateChangeMessage(...)}}, 
> {{ctx.cache().onCustomEvent(...)}}
>  * Later, on line 715: we call a somewhat generic custom event listeners
>  * Finally, on line 876, if the custom message was of a specific type, we 
> fire EVT_DISCOVERY_CUSTOM_EVT
> Overall, this is a huge abstraction leak, and all non-discovery specifics 
> should be eliminated from {{GridDiscoveryManager}}. I suggest the following:
> 1) Change {{CustomEventListener}} to have two methods: one of them should 
> return {{true}} or {{false}} to determine whether the minor topology version 
> should be incremented
> 2) Move all logic to corresponding components
> 3) Get rid of code on line 876, I see no need in this. Also, consider 
> removing {{EVT_DISCOVERY_CUSTOM_EVT}}, as this is private API and should now 
> be covered by the specific listener



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Assigned] (IGNITE-11676) Clean up custom event callbacks

2019-04-18 Thread Ryker Zhang (JIRA)


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

Ryker Zhang reassigned IGNITE-11676:


Assignee: Ryker Zhang

> Clean up custom event callbacks
> ---
>
> Key: IGNITE-11676
> URL: https://issues.apache.org/jira/browse/IGNITE-11676
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Alexey Goncharuk
>Assignee: Ryker Zhang
>Priority: Major
>
> Currently, {{GridDiscoveryManager}} has several ways of notifying Ignite 
> components of discovery events:
>  * Line 668: a set of {{instanceof}} statements to invoke specific callbacks 
> for components (for example, {{ctx.state().onStateChangeMessage(...)}}, 
> {{ctx.cache().onCustomEvent(...)}}
>  * Later, on line 715: we call a somewhat generic custom event listeners
>  * Finally, on line 876, if the custom message was of a specific type, we 
> fire EVT_DISCOVERY_CUSTOM_EVT
> Overall, this is a huge abstraction leak, and all non-discovery specifics 
> should be eliminated from {{GridDiscoveryManager}}. I suggest the following:
> 1) Change {{CustomEventListener}} to have two methods: one of them should 
> return {{true}} or {{false}} to determine whether the minor topology version 
> should be incremented
> 2) Move all logic to corresponding components
> 3) Get rid of code on line 876, I see no need in this. Also, consider 
> removing {{EVT_DISCOVERY_CUSTOM_EVT}}, as this is private API and should now 
> be covered by the specific listener



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-11488) GridServiceProcessorBatchDeploySelfTest test fails sporadically

2019-04-17 Thread Ryker Zhang (JIRA)


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

Ryker Zhang commented on IGNITE-11488:
--

Thanks, I missed the "initCrdMux" field of ServiceDeploymentTask. I have 
updated the code.

> GridServiceProcessorBatchDeploySelfTest test fails sporadically
> ---
>
> Key: IGNITE-11488
> URL: https://issues.apache.org/jira/browse/IGNITE-11488
> Project: Ignite
>  Issue Type: Test
>  Components: managed services
>Reporter: Andrew Mashenkov
>Assignee: Ryker Zhang
>Priority: Major
>  Labels: MakeTeamcityGreenAgain, newbie
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> GridServiceProcessorBatchDeploySelfTest.testCancelAllTopologyChange test 
> fails on TC sporadically with ConcurrentModificationException.
> Let's add synchronization to certain toString method.
>  
> {noformat}
>  [super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet 
> [SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], 
> failureCtx=FailureContext [type=SYSTEM_WORKER_TERMINATION, err=class 
> o.a.i.IgniteException: null]]
> class org.apache.ignite.IgniteException: null
>   at 
> org.apache.ignite.internal.util.tostring.GridToStringBuilder.toStringImpl0(GridToStringBuilder.java:1081)
>   at 
> org.apache.ignite.internal.util.tostring.GridToStringBuilder.toStringImpl(GridToStringBuilder.java:993)
>   at 
> org.apache.ignite.internal.util.tostring.GridToStringBuilder.toString(GridToStringBuilder.java:703)
>   at 
> org.apache.ignite.internal.util.tostring.GridToStringBuilder.toString(GridToStringBuilder.java:662)
>   at 
> org.apache.ignite.internal.processors.service.ServiceDeploymentTask.toString(ServiceDeploymentTask.java:854)
>   at java.lang.String.valueOf(String.java:2994)
>   at java.lang.StringBuilder.append(StringBuilder.java:131)
>   at 
> org.apache.ignite.internal.processors.service.ServiceDeploymentManager$ServicesDeploymentWorker.body(ServiceDeploymentManager.java:502)
>   at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
>   at java.lang.Thread.run(Thread.java:748)
> Caused by: java.util.ConcurrentModificationException
>   at java.util.HashMap$HashIterator.nextNode(HashMap.java:1442)
>   at java.util.HashMap$EntryIterator.next(HashMap.java:1476)
>   at java.util.HashMap$EntryIterator.next(HashMap.java:1474)
>   at 
> org.apache.ignite.internal.util.tostring.GridToStringBuilder.addMap(GridToStringBuilder.java:923)
>   at 
> org.apache.ignite.internal.util.tostring.GridToStringBuilder.toString(GridToStringBuilder.java:846)
>   at 
> org.apache.ignite.internal.util.tostring.GridToStringBuilder.toStringImpl0(GridToStringBuilder.java:1065)
>   ... 9 more{noformat}
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-11488) GridServiceProcessorBatchDeploySelfTest test fails sporadically

2019-04-16 Thread Ryker Zhang (JIRA)


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

Ryker Zhang commented on IGNITE-11488:
--

Hi [~amashenkov],

Thanks for your reply. I split warning message into 2 parts and create a pull 
request. If there is time, please help me to check if the code is correct.

> GridServiceProcessorBatchDeploySelfTest test fails sporadically
> ---
>
> Key: IGNITE-11488
> URL: https://issues.apache.org/jira/browse/IGNITE-11488
> Project: Ignite
>  Issue Type: Test
>  Components: managed services
>Reporter: Andrew Mashenkov
>Assignee: Ryker Zhang
>Priority: Major
>  Labels: MakeTeamcityGreenAgain, newbie
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> GridServiceProcessorBatchDeploySelfTest.testCancelAllTopologyChange test 
> fails on TC sporadically with ConcurrentModificationException.
> Let's add synchronization to certain toString method.
>  
> {noformat}
>  [super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet 
> [SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], 
> failureCtx=FailureContext [type=SYSTEM_WORKER_TERMINATION, err=class 
> o.a.i.IgniteException: null]]
> class org.apache.ignite.IgniteException: null
>   at 
> org.apache.ignite.internal.util.tostring.GridToStringBuilder.toStringImpl0(GridToStringBuilder.java:1081)
>   at 
> org.apache.ignite.internal.util.tostring.GridToStringBuilder.toStringImpl(GridToStringBuilder.java:993)
>   at 
> org.apache.ignite.internal.util.tostring.GridToStringBuilder.toString(GridToStringBuilder.java:703)
>   at 
> org.apache.ignite.internal.util.tostring.GridToStringBuilder.toString(GridToStringBuilder.java:662)
>   at 
> org.apache.ignite.internal.processors.service.ServiceDeploymentTask.toString(ServiceDeploymentTask.java:854)
>   at java.lang.String.valueOf(String.java:2994)
>   at java.lang.StringBuilder.append(StringBuilder.java:131)
>   at 
> org.apache.ignite.internal.processors.service.ServiceDeploymentManager$ServicesDeploymentWorker.body(ServiceDeploymentManager.java:502)
>   at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
>   at java.lang.Thread.run(Thread.java:748)
> Caused by: java.util.ConcurrentModificationException
>   at java.util.HashMap$HashIterator.nextNode(HashMap.java:1442)
>   at java.util.HashMap$EntryIterator.next(HashMap.java:1476)
>   at java.util.HashMap$EntryIterator.next(HashMap.java:1474)
>   at 
> org.apache.ignite.internal.util.tostring.GridToStringBuilder.addMap(GridToStringBuilder.java:923)
>   at 
> org.apache.ignite.internal.util.tostring.GridToStringBuilder.toString(GridToStringBuilder.java:846)
>   at 
> org.apache.ignite.internal.util.tostring.GridToStringBuilder.toStringImpl0(GridToStringBuilder.java:1065)
>   ... 9 more{noformat}
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-11488) GridServiceProcessorBatchDeploySelfTest test fails sporadically

2019-04-14 Thread Ryker Zhang (JIRA)


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

Ryker Zhang commented on IGNITE-11488:
--

Hi, [~amashenkov], I checked the code and found add synchronization to toString 
method may not solve this problem, because it's the param of toString method 
changed when the method traversing map inside. Add synchronization to toString 
method can't guarantee input param not change, so I think of a few ideas.
1. Just copy input param of ServiceDeploymentTask's toString method, it may 
affecting execution efficiency.
2. Make ServicesDeploymentWorker don't handle same task at same time.
Am I correct? Do you have any suggestions?

> GridServiceProcessorBatchDeploySelfTest test fails sporadically
> ---
>
> Key: IGNITE-11488
> URL: https://issues.apache.org/jira/browse/IGNITE-11488
> Project: Ignite
>  Issue Type: Test
>  Components: managed services
>Reporter: Andrew Mashenkov
>Assignee: Ryker Zhang
>Priority: Major
>  Labels: MakeTeamcityGreenAgain, newbie
>
> GridServiceProcessorBatchDeploySelfTest.testCancelAllTopologyChange test 
> fails on TC sporadically with ConcurrentModificationException.
> Let's add synchronization to certain toString method.
>  
> {noformat}
>  [super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet 
> [SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], 
> failureCtx=FailureContext [type=SYSTEM_WORKER_TERMINATION, err=class 
> o.a.i.IgniteException: null]]
> class org.apache.ignite.IgniteException: null
>   at 
> org.apache.ignite.internal.util.tostring.GridToStringBuilder.toStringImpl0(GridToStringBuilder.java:1081)
>   at 
> org.apache.ignite.internal.util.tostring.GridToStringBuilder.toStringImpl(GridToStringBuilder.java:993)
>   at 
> org.apache.ignite.internal.util.tostring.GridToStringBuilder.toString(GridToStringBuilder.java:703)
>   at 
> org.apache.ignite.internal.util.tostring.GridToStringBuilder.toString(GridToStringBuilder.java:662)
>   at 
> org.apache.ignite.internal.processors.service.ServiceDeploymentTask.toString(ServiceDeploymentTask.java:854)
>   at java.lang.String.valueOf(String.java:2994)
>   at java.lang.StringBuilder.append(StringBuilder.java:131)
>   at 
> org.apache.ignite.internal.processors.service.ServiceDeploymentManager$ServicesDeploymentWorker.body(ServiceDeploymentManager.java:502)
>   at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
>   at java.lang.Thread.run(Thread.java:748)
> Caused by: java.util.ConcurrentModificationException
>   at java.util.HashMap$HashIterator.nextNode(HashMap.java:1442)
>   at java.util.HashMap$EntryIterator.next(HashMap.java:1476)
>   at java.util.HashMap$EntryIterator.next(HashMap.java:1474)
>   at 
> org.apache.ignite.internal.util.tostring.GridToStringBuilder.addMap(GridToStringBuilder.java:923)
>   at 
> org.apache.ignite.internal.util.tostring.GridToStringBuilder.toString(GridToStringBuilder.java:846)
>   at 
> org.apache.ignite.internal.util.tostring.GridToStringBuilder.toStringImpl0(GridToStringBuilder.java:1065)
>   ... 9 more{noformat}
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Assigned] (IGNITE-11488) GridServiceProcessorBatchDeploySelfTest test fails sporadically

2019-04-11 Thread Ryker Zhang (JIRA)


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

Ryker Zhang reassigned IGNITE-11488:


Assignee: Ryker Zhang

> GridServiceProcessorBatchDeploySelfTest test fails sporadically
> ---
>
> Key: IGNITE-11488
> URL: https://issues.apache.org/jira/browse/IGNITE-11488
> Project: Ignite
>  Issue Type: Test
>  Components: managed services
>Reporter: Andrew Mashenkov
>Assignee: Ryker Zhang
>Priority: Major
>  Labels: MakeTeamcityGreenAgain, newbie
>
> GridServiceProcessorBatchDeploySelfTest.testCancelAllTopologyChange test 
> fails on TC sporadically with ConcurrentModificationException.
> Let's add synchronization to certain toString method.
>  
> {noformat}
>  [super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet 
> [SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], 
> failureCtx=FailureContext [type=SYSTEM_WORKER_TERMINATION, err=class 
> o.a.i.IgniteException: null]]
> class org.apache.ignite.IgniteException: null
>   at 
> org.apache.ignite.internal.util.tostring.GridToStringBuilder.toStringImpl0(GridToStringBuilder.java:1081)
>   at 
> org.apache.ignite.internal.util.tostring.GridToStringBuilder.toStringImpl(GridToStringBuilder.java:993)
>   at 
> org.apache.ignite.internal.util.tostring.GridToStringBuilder.toString(GridToStringBuilder.java:703)
>   at 
> org.apache.ignite.internal.util.tostring.GridToStringBuilder.toString(GridToStringBuilder.java:662)
>   at 
> org.apache.ignite.internal.processors.service.ServiceDeploymentTask.toString(ServiceDeploymentTask.java:854)
>   at java.lang.String.valueOf(String.java:2994)
>   at java.lang.StringBuilder.append(StringBuilder.java:131)
>   at 
> org.apache.ignite.internal.processors.service.ServiceDeploymentManager$ServicesDeploymentWorker.body(ServiceDeploymentManager.java:502)
>   at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
>   at java.lang.Thread.run(Thread.java:748)
> Caused by: java.util.ConcurrentModificationException
>   at java.util.HashMap$HashIterator.nextNode(HashMap.java:1442)
>   at java.util.HashMap$EntryIterator.next(HashMap.java:1476)
>   at java.util.HashMap$EntryIterator.next(HashMap.java:1474)
>   at 
> org.apache.ignite.internal.util.tostring.GridToStringBuilder.addMap(GridToStringBuilder.java:923)
>   at 
> org.apache.ignite.internal.util.tostring.GridToStringBuilder.toString(GridToStringBuilder.java:846)
>   at 
> org.apache.ignite.internal.util.tostring.GridToStringBuilder.toStringImpl0(GridToStringBuilder.java:1065)
>   ... 9 more{noformat}
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)