Great! :) .. Cheers, Anjana.
On Sat, Feb 28, 2015 at 10:00 PM, Shafreen Anfar <[email protected]> wrote: > Hi Anjana, > > Understood. It has to be per TaskManager. I tried out the fix and it works > as expected. Thank you very much for the prompt response. > > On Sat, Feb 28, 2015 at 2:52 PM, Anjana Fernando <[email protected]> wrote: > >> Hi Shafreen, >> >> Yeah, that's a bug! .. good catch. The issue is, as you said, we just >> having a singe TriggerListener for all the tenants/task-types, where we >> should actually be having a single TriggerListener for one TaskManager (per >> tenant/task-type). So the correct fix is registering a matcher in the >> current code, in the constructor to give the matcher. I've fixed this in >> GitHub now, with this commit [1]. Please check and verify. >> >> [1] >> https://github.com/wso2/carbon-commons/commit/5df4e830bb7d93d0a85085a5ff21e98d65b88283 >> >> Cheers, >> Anjana. >> >> On Sat, Feb 28, 2015 at 4:21 PM, Shafreen Anfar <[email protected]> >> wrote: >> >>> Hi Anjana, >>> >>> This [1] happens when we schedule tasks with different tenants. When I >>> dug deep I saw that tasks try to update its state to FINISH state using >>> TriggerListeners. I believe this is where the problem is. It seems the last >>> registered listener is getting notified for all the tasks. I think it is >>> because we are not using a matcher, the registered listener receives events >>> for all the triggers [2]. >>> >>> Therefore, I changed the code as in the attached diff and I could not >>> observe the issue any more. When I debugged I could see that all the task's >>> states are getting updated properly. Can you please help us on this matter ? >>> >>> [1] >>> >>> org.wso2.carbon.ntask.common.TaskException: The task 'super_tenent' does >>> not exist >>> at >>> org.wso2.carbon.ntask.core.impl.RegistryBasedTaskRepository.getTaskMetadataPropResource(RegistryBasedTaskRepository.java:310) >>> at >>> org.wso2.carbon.ntask.core.impl.RegistryBasedTaskRepository.setTaskMetadataProp(RegistryBasedTaskRepository.java:323) >>> at org.wso2.carbon.ntask.core.TaskUtils.setTaskState(TaskUtils.java:109) >>> at >>> org.wso2.carbon.ntask.core.TaskUtils.setTaskFinished(TaskUtils.java:146) >>> at >>> org.wso2.carbon.ntask.core.impl.AbstractQuartzTaskManager$TaskTriggerListener.triggerComplete(AbstractQuartzTaskManager.java:424) >>> at >>> org.quartz.core.QuartzScheduler.notifyTriggerListenersComplete(QuartzScheduler.java:1876) >>> at >>> org.quartz.core.JobRunShell.notifyTriggerListenersComplete(JobRunShell.java:377) >>> at org.quartz.core.JobRunShell.run(JobRunShell.java:254) >>> at >>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) >>> at java.util.concurrent.FutureTask.run(FutureTask.java:262) >>> at >>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) >>> at >>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) >>> at java.lang.Thread.run(Thread.java:745) >>> Caused by: >>> *org.wso2.carbon.registry.core.exceptions.ResourceNotFoundException*: >>> Resource does not exist at path >>> /_system/governance/repository/components/org.wso2.carbon.tasks/definitions/1/ESB_TASK/super_tenent >>> at >>> org.wso2.carbon.registry.core.jdbc.EmbeddedRegistry.get(EmbeddedRegistry.java:532) >>> at >>> org.wso2.carbon.registry.core.caching.CacheBackedRegistry.getGhostResourceFromCache(CacheBackedRegistry.java:194) >>> at >>> org.wso2.carbon.registry.core.caching.CacheBackedRegistry.get(CacheBackedRegistry.java:167) >>> at >>> org.wso2.carbon.registry.core.session.UserRegistry.getInternal(UserRegistry.java:613) >>> at >>> org.wso2.carbon.registry.core.session.UserRegistry.access$400(UserRegistry.java:60) >>> at >>> org.wso2.carbon.registry.core.session.UserRegistry$5.run(UserRegistry.java:596) >>> at >>> org.wso2.carbon.registry.core.session.UserRegistry$5.run(UserRegistry.java:593) >>> at java.security.AccessController.doPrivileged(Native Method) >>> at >>> org.wso2.carbon.registry.core.session.UserRegistry.get(UserRegistry.java:593) >>> at >>> org.wso2.carbon.ntask.core.impl.RegistryBasedTaskRepository.getTaskMetadataPropResource(RegistryBasedTaskRepository.java:306) >>> ... 12 more >>> >>> [2] >>> http://quartz-scheduler.org/api/2.2.0/org/quartz/ListenerManager.html#addTriggerListener(org.quartz.TriggerListener) >>> >>> -- >>> Regards, >>> *Shafreen* >>> Software Engineer >>> WSO2 Inc >>> Mobile : 077-556-395-1 >>> >> >> >> >> -- >> *Anjana Fernando* >> Senior Technical Lead >> WSO2 Inc. | http://wso2.com >> lean . enterprise . middleware >> > > > > -- > Regards, > *Shafreen* > Software Engineer > WSO2 Inc > Mobile : 077-556-395-1 > -- *Anjana Fernando* Senior Technical Lead WSO2 Inc. | http://wso2.com lean . enterprise . middleware
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
