Merged!

On Mon, Jun 22, 2015 at 6:24 PM, Pubudu Gunatilaka <pubu...@wso2.com> wrote:

> Hi Devs,
>
> According to the offline chat I had with Imesh, I increased the thread
> pool size to 15. It would be a more acceptable solution rather than having
> separate executor services for each test. Executor services has to maintain
> properly and it won't happen if we use separate executor services in each
> test.
>
> Please review and merge the pull request in [1].
>
> [1] - https://github.com/apache/stratos/pull/374
>
> Thank you!
>
> On Mon, Jun 22, 2015 at 10:31 AM, Pubudu Gunatilaka <pubu...@wso2.com>
> wrote:
>
>> Hi Imesh,
>>
>> I found the root cause for this issue.
>>
>> ExecutorService executorService = 
>> StratosThreadPool.getExecutorService("TEST_THREAD_POOL", 5);
>>
>> We are using StratosThreadPool utility class to create or get already
>> exist executor service. "TEST_THREAD_POOL" is the identifier or the key we
>> used in the implementation. In StratosThreadPool class, it has a static
>> concurrent hash map to hold the executor. Although we terminate event
>> receivers in tear down, it won't stop all the running threads. Due to that,
>> in the last test run it won't be able to receive the instance activated
>> event as there aren't any available threads in the thread pool.
>>
>> public static ExecutorService getExecutorService(String identifier, int 
>> threadPoolSize) {
>>     ExecutorService executorService = executorServiceMap.get(identifier);
>>     if (executorService == null) {
>>         synchronized (executorServiceMapLock) {
>>             if (executorService == null) {
>>                 executorService = 
>> Executors.newFixedThreadPool(threadPoolSize);
>>                 executorServiceMap.put(identifier, executorService);
>>                 log.info(String.format("Thread pool created: [type] Executor 
>> Service [id] %s [size] %d", identifier, threadPoolSize));
>>             }
>>         }
>>     }
>>     return executorService;
>> }
>>
>>
>> For this issue we can create a new thread pool as below. It will not
>> affect any tests we run.
>>
>> ExecutorService executorService = Executors.newFixedThreadPool(5);
>>
>> IMO this is okay as we try to run tests. Otherwise we will have to
>> increase the number of threads we use. But if we add more artifacts,
>> threads number will have to increase.
>>
>> WDYT?
>>
>>
>> On Mon, Jun 22, 2015 at 7:56 AM, Imesh Gunaratne <im...@apache.org>
>> wrote:
>>
>>> Yes I'm also seeing the same, we need to investigate this.
>>>
>>> Thanks
>>>
>>>
>>> On Sunday, June 21, 2015, Pubudu Gunatilaka <pubu...@wso2.com> wrote:
>>>
>>>> Hi Devs,
>>>>
>>>> I ran the live test in python cartridge agent(PCA) and it was failed.
>>>> There are 3 tests in the PCA and they run on based on the artifacts which
>>>> is taken from a public repo and a private repo. Each test uses defined
>>>> artifacts as parameters. When I ran all the 3 tests, which is the default
>>>> run it was failed. Then I tried running a single test which uses a public
>>>> repo and it was successful. Even running 2 tests was successful. But could
>>>> not run 3 tests successfully.
>>>>
>>>> After looking at logs, what I could understand is that in the last
>>>> test, it waits for the instance activated event. But cartridge agent has
>>>> already sent the instance activated event. So after the timeout, build get
>>>> failed.
>>>>
>>>> ExecutorService executorService = 
>>>> StratosThreadPool.getExecutorService("TEST_THREAD_POOL", 5);
>>>>
>>>>
>>>> Thread pool size we used in the PCA test is 5. I increased that number
>>>> more than 5 and ran all 3 tests. It was successful. In each and every test
>>>> case, a new Executor Service is getting created and have the same number of
>>>> thread pool size. But every time last test fails regardless of the test
>>>> order. Other thing is that when we are adding more artifact events as
>>>> parameters which is also increasing the number of tests, we have to
>>>> increase the thread pool size to run tests successfully.
>>>>
>>>> What could be the reason for this behavior?
>>>>
>>>> Thank you!
>>>> --
>>>>
>>>> *Pubudu Gunatilaka*
>>>> Software Engineer
>>>> WSO2, Inc.: http://wso2.com
>>>> lean.enterprise.middleware
>>>> mobile:  +94 77 4078049
>>>>
>>>
>>>
>>> --
>>> Imesh Gunaratne
>>>
>>> Senior Technical Lead, WSO2
>>> Committer & PMC Member, Apache Stratos
>>>
>>>
>>
>>
>> --
>>
>> *Pubudu Gunatilaka*
>> Software Engineer
>> WSO2, Inc.: http://wso2.com
>> lean.enterprise.middleware
>> mobile:  +94 77 4078049
>>
>
>
>
> --
>
> *Pubudu Gunatilaka*
> Software Engineer
> WSO2, Inc.: http://wso2.com
> lean.enterprise.middleware
> mobile:  +94 77 4078049
>



-- 
--
Lahiru Sandaruwan
Committer and PMC member, Apache Stratos,
Senior Software Engineer,
WSO2 Inc., http://wso2.com
lean.enterprise.middleware

phone: +94773325954
email: lahi...@wso2.com blog: http://lahiruwrites.blogspot.com/
linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146

Reply via email to