Hi Michiel,

In JCA topology is handled by the messaging module, you could see how
topology is updated on Complete Topology event here:
https://github.com/apache/stratos/blob/master/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/CompleteTopologyMessageProcessor.java

In PCA, still topology is not properly updated after initializing it with
the Complete Topology event.


On Wed, Apr 22, 2015 at 7:28 PM, Michiel Blokzijl (mblokzij) <
mblok...@cisco.com> wrote:

> Hi Imesh,
>
> Ideally cartridge agent should only wait for Complete Topology event once
> in its lifecycle. If it is waiting more than once then there is an issue.
>
>
> That’s not the problem, it only waits once for the complete topology.
>
> To me it looks like the topology is never updated, or if it is, then it’s
> not clear to me how that’s happening? It looks like the Python cartridge
> agent for example does call an ‘update’ method:
>
> https://github.com/apache/stratos/blob/22fdf78be8a62312a65b23e017f0de20cfad82b2/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/agent.py#L250
>
> - I don’t see anything similar in the Java cartridge agent.
>
> Please could someone confirm whether this is the case, and perhaps explain
> how updating the topology is supposed to work in the Java cartridge agent?
>
> Best regards,
>
> Michiel
>
> On 20 Apr 2015, at 19:05, Imesh Gunaratne <im...@apache.org> wrote:
>
> Hi Michiel,
>
> It's a pleasure! My guess is that either cartridge agent has been
> restarted or there is a bug in its logic.
>
> Ideally cartridge agent should only wait for Complete Topology event once
> in its lifecycle. If it is waiting more than once then there is an issue.
>
> Thanks
>
> On Mon, Apr 20, 2015 at 11:06 PM, Michiel Blokzijl (mblokzij) <
> mblok...@cisco.com> wrote:
>
>> HI Imesh,
>>
>> Thanks for replying,
>>
>> This issue might occur if the cartridge agent start processing member
>> events before consuming Complete Topology event.
>>
>>
>> The issue happened way after that, I had Stratos running for a day or so,
>> and in the logs I saw some “waiting for complete topology event ..” but
>> they went away pretty quickly (way before this happened).
>>
>> Is this the code that’s supposed to do the updates?
>> https://github.com/apache/stratos/blob/4.0.0/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/extensions/DefaultExtensionHandler.java#L328
>>
>> Because I don’t see anything that actually updates anything (beyond
>> function-local variables like ‘env')..
>>
>> Michiel
>>
>> On 20 Apr 2015, at 18:13, Imesh Gunaratne <im...@apache.org> wrote:
>>
>> Hi Michiel,
>>
>> This issue might occur if the cartridge agent start processing member
>> events before consuming Complete Topology event.
>>
>> This is how the topology get initialized in any component that listen to
>> topology topic in message broker; First of all when the component starts up
>> it waits for the Complete Topology event to receive. This event is
>> periodically published by Cloud Controller with the entire topology of a
>> given moment of time.
>>
>> Once it is received the component would initialize the local topology and
>> start listening to other events. Since Complete Topology event has given
>> the latest state of the topology now the component can consume any other
>> event published afterwards.
>>
>> Thanks
>>
>>
>>
>> On Mon, Apr 20, 2015 at 7:44 PM, Michiel Blokzijl (mblokzij) <
>> mblok...@cisco.com> wrote:
>>
>>> Hi,
>>> I’m looking at an issue with Stratos 4.0.0 code, and I’m having an issue
>>> with the cartridge agent. It complains about the topology being
>>> inconsistent, triggered by this code [1].
>>>
>>> This causes the extension handler not to fire for cartridges going down.
>>>
>>> [2015-04-19 07:19:22,486]  INFO - [MemberTerminatedMessageProcessor]
>>> Member terminated: [service] XXX [cluster] XXX [member]
>>> XXX-0.dom2a4618d5-edd9-4a99-9d9c-918715c761bd
>>> [2015-04-19 07:19:22,486]  INFO - [DefaultExtensionHandler] Member
>>> terminated event received: [service] XXX [cluster] XX [member]
>>> XXX-0.dom2a4618d5-edd9-4a99-9d9c-918715c761bd
>>> [2015-04-19 07:19:22,486] ERROR - [ExtensionUtils] Member id not found
>>> in topology [member] XXXX.dom2a4618d5-edd9-4a99-9d9c-918715c761bd
>>> [2015-04-19 07:19:22,486] ERROR - [DefaultExtensionHandler] Topology is
>>> inconsistent...failed to execute member terminated event
>>>
>>> Any idea what’s going wrong here?
>>>
>>> I assume the topology isn’t being maintained correctly for some reason,
>>> but I haven’t quite figured out how/if the topology is being maintained at
>>> all. Looking at the complete topology event handler [2] for example, it
>>> doesn’t actually update the internally stored topology.. There’s nothing in
>>> the cartridge agent that calls the topology manager’s acquireWriteLock
>>> function..
>>>
>>> Best regards,
>>>
>>> Michiel
>>>
>>> [1]
>>> https://github.com/apache/stratos/blob/4.0.0/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/extensions/DefaultExtensionHandler.java#L374
>>>
>>> [2]
>>> https://github.com/apache/stratos/blob/4.0.0/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/extensions/DefaultExtensionHandler.java#L328
>>>
>>
>>
>>
>> --
>> Imesh Gunaratne
>>
>> Technical Lead, WSO2
>> Committer & PMC Member, Apache Stratos
>>
>>
>>
>
>
> --
> Imesh Gunaratne
>
> Technical Lead, WSO2
> Committer & PMC Member, Apache Stratos
>
>
>


-- 
Imesh Gunaratne

Technical Lead, WSO2
Committer & PMC Member, Apache Stratos

Reply via email to