Bug 983107

Summary: Deployment unit is not present in the business central on the second node of cluster
Product: [Retired] JBoss BPMS Platform 6 Reporter: Ivo Bek <ibek>
Component: Business CentralAssignee: Maciej Swiderski <mswiders>
Status: CLOSED CURRENTRELEASE QA Contact: Ivo Bek <ibek>
Severity: urgent Docs Contact:
Priority: urgent    
Version: 6.0.0CC: rsynek
Target Milestone: DR6Keywords: TestBlocker
Target Release: 6.0.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-08-06 20:08:13 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
server log node 1
none
server log node 2 none

Description Ivo Bek 2013-07-10 14:03:31 UTC
Description of problem:

According to http://mswiderski.blogspot.com.br/2013/06/clustering-in-jbpm-v6.html I setup the cluster. But not just on single EAP because of BZ 977264.

Probably it's not required but I cloned my own repository. This change was visible in business central on node1 and node2. 

>>>>> here starts the problem <<<<<<

I built and deployed the project. It appeared in business central just on node1. When I try to check the deployment in node2, nothing is there nor any process definitions.

I also checked the git repositories, maintained by zookeeper and in the both repositories for node1 and node2 are the deployment files, so this is well synchronized. Then, problem is somewhere in business central.

Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 1 Maciej Swiderski 2013-07-11 09:15:10 UTC
what version of jbpm do you use for the clustering setup?

Comment 2 Ivo Bek 2013-07-11 10:11:05 UTC
Hi Maciej,

I used the older JBoss BPMS DR5 for the cluster. So, it's Beta3.

Comment 3 Maciej Swiderski 2013-07-11 10:21:21 UTC
Ivo, thanks for quick reply. That explains why it does not work, the monitoring capabilities in the cluster where added in beta4 so you would need to upgrade the application to be able to see that working properly.

Comment 4 Ivo Bek 2013-07-11 10:57:26 UTC
Oh that's great, I will try it with the new business central from DR6, based on jbpm beta5, and I'll let you know then whether it works.

Comment 5 Ivo Bek 2013-07-11 13:44:36 UTC
In JBoss 6.0.0.DR6 it doesn't work either. On the second node, it throws the exception below. FYI, I use the default kbase and session.

[Server:server-two] 15:40:34,335 WARN  [org.drools.persistence.SingleSessionCommandService] (pool-15-thread-1) Could not commit session: org.drools.persistence.SessionNotFoundException: Could not find session data for id 1
[Server:server-two] 	at org.drools.persistence.SingleSessionCommandService.initExistingKnowledgeSession(SingleSessionCommandService.java:242) [drools-persistence-jpa-6.0.0.Beta5.jar:6.0.0.Beta5]
[Server:server-two] 	at org.drools.persistence.SingleSessionCommandService.<init>(SingleSessionCommandService.java:198) [drools-persistence-jpa-6.0.0.Beta5.jar:6.0.0.Beta5]
[Server:server-two] 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [rt.jar:1.6.0_26]
[Server:server-two] 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) [rt.jar:1.6.0_26]
[Server:server-two] 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) [rt.jar:1.6.0_26]
[Server:server-two] 	at java.lang.reflect.Constructor.newInstance(Constructor.java:513) [rt.jar:1.6.0_26]
[Server:server-two] 	at org.drools.persistence.jpa.KnowledgeStoreServiceImpl.buildCommandService(KnowledgeStoreServiceImpl.java:101) [drools-persistence-jpa-6.0.0.Beta5.jar:6.0.0.Beta5]
[Server:server-two] 	at org.drools.persistence.jpa.KnowledgeStoreServiceImpl.loadKieSession(KnowledgeStoreServiceImpl.java:84) [drools-persistence-jpa-6.0.0.Beta5.jar:6.0.0.Beta5]
[Server:server-two] 	at org.drools.persistence.jpa.KnowledgeStoreServiceImpl.loadKieSession(KnowledgeStoreServiceImpl.java:36) [drools-persistence-jpa-6.0.0.Beta5.jar:6.0.0.Beta5]
[Server:server-two] 	at org.kie.internal.persistence.jpa.JPAKnowledgeService.loadStatefulKnowledgeSession(JPAKnowledgeService.java:130) [kie-internal-6.0.0.Beta5.jar:6.0.0.Beta5]
[Server:server-two] 	at org.jbpm.runtime.manager.impl.factory.JPASessionFactory.findKieSessionById(JPASessionFactory.java:49) [jbpm-runtime-manager-6.0.0.Beta5.jar:6.0.0.Beta5]
[Server:server-two] 	at org.jbpm.runtime.manager.impl.SingletonRuntimeManager.init(SingletonRuntimeManager.java:83) [jbpm-runtime-manager-6.0.0.Beta5.jar:6.0.0.Beta5]
[Server:server-two] 	at org.jbpm.runtime.manager.impl.RuntimeManagerFactoryImpl.newSingletonRuntimeManager(RuntimeManagerFactoryImpl.java:70) [jbpm-runtime-manager-6.0.0.Beta5.jar:6.0.0.Beta5]
[Server:server-two] 	at org.jbpm.runtime.manager.impl.RuntimeManagerFactoryImpl$Proxy$_$$_WeldClientProxy.newSingletonRuntimeManager(RuntimeManagerFactoryImpl$Proxy$_$$_WeldClientProxy.java) [jbpm-runtime-manager-6.0.0.Beta5.jar:6.0.0.Beta5]
[Server:server-two] 	at org.jbpm.kie.services.impl.AbstractDeploymentService.commonDeploy(AbstractDeploymentService.java:65) [jbpm-kie-services-6.0.0.Beta5.jar:6.0.0.Beta5]
[Server:server-two] 	at org.jbpm.kie.services.impl.KModuleDeploymentService.deploy(KModuleDeploymentService.java:145) [jbpm-kie-services-6.0.0.Beta5.jar:6.0.0.Beta5]
[Server:server-two] 	at org.jbpm.kie.services.impl.KModuleDeploymentService$Proxy$_$$_WeldClientProxy.deploy(KModuleDeploymentService$Proxy$_$$_WeldClientProxy.java) [jbpm-kie-services-6.0.0.Beta5.jar:6.0.0.Beta5]
[Server:server-two] 	at org.jbpm.console.ng.bd.backend.server.DeploymentManagerEntryPointImpl.deploy(DeploymentManagerEntryPointImpl.java:93) [jbpm-console-ng-business-domain-backend-6.0.0.Beta5.jar:6.0.0.Beta5]
[Server:server-two] 	at org.jbpm.console.ng.bd.backend.server.DeploymentManagerEntryPointImpl.deployOnEvent(DeploymentManagerEntryPointImpl.java:222) [jbpm-console-ng-business-domain-backend-6.0.0.Beta5.jar:6.0.0.Beta5]
[Server:server-two] 	at org.jbpm.console.ng.bd.backend.server.DeploymentManagerEntryPointImpl$Proxy$_$$_WeldClientProxy.deployOnEvent(DeploymentManagerEntryPointImpl$Proxy$_$$_WeldClientProxy.java) [jbpm-console-ng-business-domain-backend-6.0.0.Beta5.jar:6.0.0.Beta5]
[Server:server-two] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.6.0_26]
[Server:server-two] 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [rt.jar:1.6.0_26]
[Server:server-two] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_26]
[Server:server-two] 	at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_26]
[Server:server-two] 	at org.jboss.weld.util.reflection.SecureReflections$13.work(SecureReflections.java:267) [weld-core-1.1.13.Final-redhat-1.jar:1.1.13.Final-redhat-1]
[Server:server-two] 	at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:52) [weld-core-1.1.13.Final-redhat-1.jar:1.1.13.Final-redhat-1]
[Server:server-two] 	at org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInvocation(SecureReflectionAccess.java:137) [weld-core-1.1.13.Final-redhat-1.jar:1.1.13.Final-redhat-1]
[Server:server-two] 	at org.jboss.weld.util.reflection.SecureReflections.invoke(SecureReflections.java:263) [weld-core-1.1.13.Final-redhat-1.jar:1.1.13.Final-redhat-1]
[Server:server-two] 	at org.jboss.weld.introspector.jlr.WeldMethodImpl.invokeOnInstance(WeldMethodImpl.java:170) [weld-core-1.1.13.Final-redhat-1.jar:1.1.13.Final-redhat-1]
[Server:server-two] 	at org.jboss.weld.introspector.ForwardingWeldMethod.invokeOnInstance(ForwardingWeldMethod.java:51) [weld-core-1.1.13.Final-redhat-1.jar:1.1.13.Final-redhat-1]
[Server:server-two] 	at org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:154) [weld-core-1.1.13.Final-redhat-1.jar:1.1.13.Final-redhat-1]
[Server:server-two] 	at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:245) [weld-core-1.1.13.Final-redhat-1.jar:1.1.13.Final-redhat-1]
[Server:server-two] 	at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:233) [weld-core-1.1.13.Final-redhat-1.jar:1.1.13.Final-redhat-1]
[Server:server-two] 	at org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:213) [weld-core-1.1.13.Final-redhat-1.jar:1.1.13.Final-redhat-1]
[Server:server-two] 	at org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:117) [weld-core-1.1.13.Final-redhat-1.jar:1.1.13.Final-redhat-1]
[Server:server-two] 	at org.jboss.weld.event.TransactionalObserverNotifier.notifyObserver(TransactionalObserverNotifier.java:44) [weld-core-1.1.13.Final-redhat-1.jar:1.1.13.Final-redhat-1]
[Server:server-two] 	at org.jboss.weld.event.ObserverNotifier.notifyObservers(ObserverNotifier.java:85) [weld-core-1.1.13.Final-redhat-1.jar:1.1.13.Final-redhat-1]
[Server:server-two] 	at org.jboss.weld.event.ObserverNotifier.fireEvent(ObserverNotifier.java:80) [weld-core-1.1.13.Final-redhat-1.jar:1.1.13.Final-redhat-1]
[Server:server-two] 	at org.jboss.weld.event.EventImpl.fire(EventImpl.java:68) [weld-core-1.1.13.Final-redhat-1.jar:1.1.13.Final-redhat-1]
[Server:server-two] 	at org.uberfire.backend.server.deployment.DeploymentConfigServiceImpl.updateRegisteredDeployments(DeploymentConfigServiceImpl.java:99) [uberfire-backend-server-0.2.0-20130704.131700-146.jar:0.2.0-SNAPSHOT]
[Server:server-two] 	at org.uberfire.backend.server.deployment.DeploymentConfigServiceImpl$Proxy$_$$_WeldClientProxy.updateRegisteredDeployments(DeploymentConfigServiceImpl$Proxy$_$$_WeldClientProxy.java) [uberfire-backend-server-0.2.0-20130704.131700-146.jar:0.2.0-SNAPSHOT]
[Server:server-two] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.6.0_26]
[Server:server-two] 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [rt.jar:1.6.0_26]
[Server:server-two] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_26]
[Server:server-two] 	at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_26]
[Server:server-two] 	at org.jboss.weld.util.reflection.SecureReflections$13.work(SecureReflections.java:267) [weld-core-1.1.13.Final-redhat-1.jar:1.1.13.Final-redhat-1]
[Server:server-two] 	at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:52) [weld-core-1.1.13.Final-redhat-1.jar:1.1.13.Final-redhat-1]
[Server:server-two] 	at org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInvocation(SecureReflectionAccess.java:137) [weld-core-1.1.13.Final-redhat-1.jar:1.1.13.Final-redhat-1]
[Server:server-two] 	at org.jboss.weld.util.reflection.SecureReflections.invoke(SecureReflections.java:263) [weld-core-1.1.13.Final-redhat-1.jar:1.1.13.Final-redhat-1]
[Server:server-two] 	at org.jboss.weld.introspector.jlr.WeldMethodImpl.invokeOnInstance(WeldMethodImpl.java:170) [weld-core-1.1.13.Final-redhat-1.jar:1.1.13.Final-redhat-1]
[Server:server-two] 	at org.jboss.weld.introspector.ForwardingWeldMethod.invokeOnInstance(ForwardingWeldMethod.java:51) [weld-core-1.1.13.Final-redhat-1.jar:1.1.13.Final-redhat-1]
[Server:server-two] 	at org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:154) [weld-core-1.1.13.Final-redhat-1.jar:1.1.13.Final-redhat-1]
[Server:server-two] 	at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:245) [weld-core-1.1.13.Final-redhat-1.jar:1.1.13.Final-redhat-1]
[Server:server-two] 	at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:233) [weld-core-1.1.13.Final-redhat-1.jar:1.1.13.Final-redhat-1]
[Server:server-two] 	at org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:213) [weld-core-1.1.13.Final-redhat-1.jar:1.1.13.Final-redhat-1]
[Server:server-two] 	at org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:117) [weld-core-1.1.13.Final-redhat-1.jar:1.1.13.Final-redhat-1]
[Server:server-two] 	at org.jboss.weld.event.TransactionalObserverNotifier.notifyObserver(TransactionalObserverNotifier.java:44) [weld-core-1.1.13.Final-redhat-1.jar:1.1.13.Final-redhat-1]
[Server:server-two] 	at org.jboss.weld.event.ObserverNotifier.notifyObservers(ObserverNotifier.java:85) [weld-core-1.1.13.Final-redhat-1.jar:1.1.13.Final-redhat-1]
[Server:server-two] 	at org.jboss.weld.event.ObserverNotifier.fireEvent(ObserverNotifier.java:80) [weld-core-1.1.13.Final-redhat-1.jar:1.1.13.Final-redhat-1]
[Server:server-two] 	at org.jboss.weld.event.EventImpl.fire(EventImpl.java:68) [weld-core-1.1.13.Final-redhat-1.jar:1.1.13.Final-redhat-1]
[Server:server-two] 	at org.uberfire.backend.server.config.ConfigurationServiceImpl$CheckConfigurationUpdates.run(ConfigurationServiceImpl.java:214) [uberfire-backend-server-0.2.0-20130704.131700-146.jar:0.2.0-SNAPSHOT]
[Server:server-two] 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_26]
[Server:server-two] 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_26]
[Server:server-two] 	at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_26]

Comment 6 Maciej Swiderski 2013-07-11 13:48:04 UTC
please remove any *.ser files from JBOSS_HOME/standalone/data as it looks like you have cleaned up data base so session that was previously created does not exists in db any more but it's remembered in as serialized file. Then rerun the test.

Comment 7 Radovan Synek 2013-07-16 14:54:39 UTC
(In reply to Maciej Swiderski from comment #6)

Hi Maciej,
I have tried with DR6 build too and there is no sign of stacktrace stated in comment 5. However I can still see the deployment only on the node where the project was built. After starting process from this - lets say - node1, I can see the process instance and task on node2. But when I click on "View Process Model" on node2, exception raises and of course I see nothing. Moreover, when some task is completed from the node2, the process instance cannot go on (and another exception appears in server log) => the task is completed, but the process instance is not aware of it because there is no process definition on node2 (which is consequence of missing deployment unit on that node)

The process definition I have tried with is simple start->HT->HT->end.

Attaching server log from both nodes.

Comment 8 Radovan Synek 2013-07-16 14:55:27 UTC
Created attachment 774358 [details]
server log node 1

Comment 9 Radovan Synek 2013-07-16 14:56:14 UTC
Created attachment 774359 [details]
server log node 2

Comment 10 Maciej Swiderski 2013-07-16 16:19:06 UTC
Radek, I see there are exceptions on application startup:

16:37:44,989 WARNING [org.jbpm.console.ng.bd.backend.server.DeploymentManagerEntryPointImpl] (MSC service thread 1-4) Error when deploying unit org.jboss:proj:1.0 [strategy=SINGLETON]: java.lang.IllegalStateException: Cannot find kbase with name defaultKieBase

Could you please make sure you start with clean vfs repository - remove .niogit completely for both application servers. 

Would be good if you could attach the project that you use so I can try to reproduce using same kjar as all I tired (like HR process from jbpm playground) works as expected.

Comment 11 Radovan Synek 2013-07-17 08:09:12 UTC
Maciej,

your advice is correct, deleting .niogit helped and now the deployment is visible on both nodes and process instance can be completed without problems.

Thanks!