Hi Rajika and all,

This issue with adding a p2-repo getting stuck is reproduced in AS 5.0. The
issue is not there in kernel, esb-4.5.0 etc. Another thing to note is
although the ui thread gets stuck, if we restart AS after a sufficient time
for a repo-add or feature installation request, we can see the request has
been fulfilled from the feature manager BE after the restart.

This could be an issue with CallBackHandlers for feature manager requests.
But what I cannot understand is why is it only happening in AS, because
feature-manager component is common to all products.
Any ideas?

Thanks,
Dileepa

On Mon, Sep 10, 2012 at 9:06 PM, Chethiya Abeysinghe <cheth...@wso2.com>wrote:

> OK. Got it. We can reason out loading meta data of all the features to the
> memory for computing the dependency tree. But I don't think that needs
> feature artifacts to be loaded into memory too.
> I guess how it works is, first it hash all features in memory and then
> create dependency tree for the user selected features efficiently f
>
>> Yes Chethiya p2 computes the dependencies before installing features. It
>> is called a provisioning plan.
>>
>> But Rajika's concern is that it's taking a long time at repository adding
>> stage, which should not be performing any dependency computations. But I
>> suspect p2 might be loading all the features in the repo to memory at this
>> stage. Have to clarify with p2-dev.
>>
>> Thanks,
>> Dileepa
>>
>> On Mon, Sep 10, 2012 at 5:47 PM, Chethiya Abeysinghe 
>> <cheth...@wso2.com>wrote:
>>
>>> AFAIK, installing a p2 feature means not just copying set of files. It
>>> computes required dependency trees too. Looking at the content.xml I think
>>> it can take sometime for computation. But always better to check with
>>> p2-dev as there can be cases which can be configured to
>>> avoid unnecessary dependency checks.
>>>
>>>  - Chethiya
>>>
>>> On Mon, Sep 10, 2012 at 4:37 PM, Dileepa Jayakody <dile...@wso2.com>wrote:
>>>
>>>> Hi Rajika,
>>>>
>>>> Thanks for the pointers.
>>>> In the feature-manager we are using p2 sdk, calling the p2-api under
>>>> the hood.
>>>>
>>>> For eg: to add and load a repository following code is used by us.
>>>>
>>>> IMetadataRepositoryManager metadataRepositoryManager =
>>>> ServiceHolder.getMetadataRepositoryManager();
>>>> IArtifactRepositoryManager artifactRepositoryManager =
>>>> ServiceHolder.getArtifactRepositoryManager();
>>>>
>>>>             //adding metadata and artifact repositories
>>>>             metadataRepositoryManager.addRepository(location);
>>>>             artifactRepositoryManager.addRepository(location);
>>>>             //Loading the metadata repository
>>>>             metadataRepositoryManager.loadRepository(location, new
>>>> NullProgressMonitor());
>>>>             metadataRepositoryManager.setRepositoryProperty(location,
>>>> IRepository.PROP_NICKNAME, nickName);
>>>>
>>>>             //Loading the artifact repository
>>>>             artifactRepositoryManager.loadRepository(location, new
>>>> NullProgressMonitor());
>>>>             artifactRepositoryManager.setRepositoryProperty(location,
>>>> IRepository.PROP_NICKNAME, nickName);
>>>>
>>>> First we need to clarify how p2-works under the hood when loading a
>>>> repository from a given location.
>>>> Ideally it should just index the feature list by reading the the
>>>> repository's content.xml and artifacts.xml at this point without loading
>>>> all the features to the memory ( I believe this is what you are also
>>>> suggesting).
>>>> I will discuss this with p2-dev also and see how we can improve our
>>>> feature manager based on that.
>>>>
>>>> Thanks,
>>>> Dileepa
>>>>
>>>>
>>>> On Mon, Sep 10, 2012 at 4:12 PM, Rajika Kumarasiri <raj...@wso2.com>wrote:
>>>>
>>>>> I meant the consumer task should do the feature installation
>>>>> asynchronously.
>>>>>
>>>>> Rajika
>>>>>
>>>>>
>>>>> On Mon, Sep 10, 2012 at 3:54 PM, Rajika Kumarasiri <raj...@wso2.com>wrote:
>>>>>
>>>>>> If you have not done already, here how it should be done.
>>>>>>
>>>>>> There should be an instance of blocking queue instance which keeps
>>>>>> track of requested features to install. There should be a producer task
>>>>>> which drop next requested feature list to install into the blocking 
>>>>>> queue.
>>>>>> There should be a consumer task will remove items from the blocking 
>>>>>> queue.
>>>>>> For producing and consuming use
>>>>>> http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/BlockingQueue.html#put<http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/BlockingQueue.html#put%28E%29>
>>>>>>  and
>>>>>> http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/BlockingQueue.html#take()
>>>>>>  so
>>>>>> that your  consumer and producer task will not kill the CPU.
>>>>>>
>>>>>> Since Feature manager will not use frequently this model may not make
>>>>>> sense much, but I think it will be useful when our p2 feature repository
>>>>>> starts to grow.
>>>>>>
>>>>>> Hope this helps.
>>>>>>
>>>>>> Rajika
>>>>>>
>>>>>> On Mon, Sep 10, 2012 at 2:47 PM, Dileepa Jayakody 
>>>>>> <dile...@wso2.com>wrote:
>>>>>>
>>>>>>> Hi Rajika,
>>>>>>>
>>>>>>> Is the repository you are adding a local-repository or a remote
>>>>>>> repository?
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Dileepa
>>>>>>>
>>>>>>> On Mon, Sep 10, 2012 at 2:44 PM, Rajika Kumarasiri 
>>>>>>> <raj...@wso2.com>wrote:
>>>>>>>
>>>>>>>> I just tried to add the feature repository of 4.0.1 into a AS
>>>>>>>> (built from 4.0.1 branch) and it seems it just take too much time.
>>>>>>>>
>>>>>>>> I still can see the message "Adding repository.." and it just
>>>>>>>> there.
>>>>>>>>
>>>>>>>> This need to improve. We just need to load the list features (just
>>>>>>>> names) and install any selected features asynchronously.
>>>>>>>>
>>>>>>>> It seems this loads the whole features into memory.
>>>>>>>>
>>>>>>>> Rajika
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Dev mailing list
>>>>>>>> Dev@wso2.org
>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Dileepa Jayakody,
>>>>>>> Software Engineer, WSO2 Inc.
>>>>>>> Lean . Enterprise . Middleware
>>>>>>>
>>>>>>> Mobile : +94777-857616
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Dileepa Jayakody,
>>>> Software Engineer, WSO2 Inc.
>>>> Lean . Enterprise . Middleware
>>>>
>>>> Mobile : +94777-857616
>>>>
>>>>
>>>> _______________________________________________
>>>> Dev mailing list
>>>> Dev@wso2.org
>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>
>>>>
>>>
>>>
>>> --
>>> Chethiya Abeysinghe
>>> Software Engineer; WSO2, Inc.;  http://wso2.com/
>>> email: cheth...@wso2.com     phone: +94 777444891
>>> blog: chethiya3000.blogspot.com
>>>
>>>
>>>
>>
>>
>> --
>> Dileepa Jayakody,
>> Software Engineer, WSO2 Inc.
>> Lean . Enterprise . Middleware
>>
>> Mobile : +94777-857616
>>
>>


-- 
Dileepa Jayakody,
Software Engineer, WSO2 Inc.
Lean . Enterprise . Middleware

Mobile : +94777-857616
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to