Hi Asanka,

As we are updating and reading the TopologyProvider with two different
listeners, we can't guaranteed topology provider update occurs before we
reading the topology provider.IMO we can do it through one listener.

Thanks,
Gayan

On Thu, Jul 2, 2015 at 8:23 PM, Asanka Sanjaya Herath <angal...@gmail.com>
wrote:

> Hi,
>
> As Gayan suggested I added a delay before execute configure method as a
> temporary solution. But It seems like the issue has not solved completely
> yet.
>
> On Thu, Jul 2, 2015 at 6:46 PM, Asanka Sanjaya Herath <angal...@gmail.com>
> wrote:
>
>> Hi Gayan,
>>
>> Yes that is correct. All the other members are shown in topology but the
>> recent activated one is not showing. It seems like the issue is related to
>> member activated event.
>>
>> On Thu, Jul 2, 2015 at 3:24 PM, Gayan Gunarathne <gay...@wso2.com> wrote:
>>
>>>
>>>
>>> On Fri, Jun 26, 2015 at 12:58 AM, Asanka Sanjaya Herath <
>>> angal...@gmail.com> wrote:
>>>
>>>>
>>>> Hi All,
>>>>
>>>> As we discussed in the hangout I did some debugging on $subject.
>>>>
>>>> *Issue: When configure() method[1] executed, topology object does not
>>>> contain information about latest activated member*.
>>>>
>>>> When a member get activated [2], reloadConfiguration() method in
>>>> LoadBalancerExtension [3] class will be executed. But, at that time
>>>> topology object does not contain the information about the activated 
>>>> member.
>>>>
>>>> Once I debug the flow, I figured out that line 196 in
>>>> LoadBalancerExtension class
>>>> ​ ​
>>>> [4] get executed *before* line 118 in
>>>> LoadBalancerCommonTopologyEventReceive
>>>> ​r ciass​
>>>> ​ ​
>>>> [5]. Therefore addMember() method[6] will execute after
>>>> reloadConfiguration() method[3] executed. So member has not been added to
>>>> topology when configure() method get executed in
>>>> ​ LoadBalancer​
>>>> API
>>>> ​ [1]​
>>>> .
>>>>
>>>
>>> You mean that TopologyProvider is not updated with the new member
>>> details when you are configuring the load balancer with the Topology
>>> Provider?
>>>
>>>
>>>>
>>>> ​I think, If we can swap the execution of above two lines the problem
>>>> may be solved.
>>>> ​But I'm not sure how to do it
>>>> .
>>>> ​Any help is appreciated.
>>>>
>>>> ​[1]
>>>> https://github.com/apache/stratos/blob/master/components/org.apache.stratos.load.balancer.extension.api/src/main/java/org/apache/stratos/load/balancer/extension/api/LoadBalancer.java#L51
>>>>
>>>> [2].
>>>> https://github.com/apache/stratos/blob/master/components/org.apache.stratos.load.balancer.extension.api/src/main/java/org/apache/stratos/load/balancer/extension/api/LoadBalancerExtension.java#L194
>>>> ​
>>>>
>>>> ​[3].
>>>> https://github.com/apache/stratos/blob/master/components/org.apache.stratos.load.balancer.extension.api/src/main/java/org/apache/stratos/load/balancer/extension/api/LoadBalancerExtension.java#L197
>>>>
>>>>
>>>> [4].
>>>> https://github.com/apache/stratos/blob/master/components/org.apache.stratos.load.balancer.extension.api/src/main/java/org/apache/stratos/load/balancer/extension/api/LoadBalancerExtension.java#L196
>>>>
>>>> [5].
>>>> https://github.com/apache/stratos/blob/master/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java#L118
>>>>
>>>> [6].
>>>> https://github.com/apache/stratos/blob/master/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java#L136
>>>> --
>>>> Thanks,
>>>> Regards,
>>>> ASH
>>>>
>>>
>>>
>>>
>>> --
>>>
>>> Gayan Gunarathne
>>> Technical Lead, WSO2 Inc. (http://wso2.com)
>>> Committer & PMC Member, Apache Stratos
>>> email : gay...@wso2.com  | mobile : +94 766819985
>>>
>>>
>>>
>>
>>
>>
>> --
>> Thanks,
>> Regards,
>> ASH
>>
>
>
>
> --
> Thanks,
> Regards,
> ASH
>



-- 

Gayan Gunarathne
Technical Lead, WSO2 Inc. (http://wso2.com)
Committer & PMC Member, Apache Stratos
email : gay...@wso2.com  | mobile : +94 766819985

Reply via email to