Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1049390

Summary: Synchronization of assets in BRMS cluster does not work
Product: [Retired] JBoss BRMS Platform 6 Reporter: Radovan Synek <rsynek>
Component: Business CentralAssignee: Maciej Swiderski <mswiders>
Status: CLOSED CURRENTRELEASE QA Contact: Radovan Synek <rsynek>
Severity: urgent Docs Contact:
Priority: urgent    
Version: unspecifiedCC: etirelli, jsvitak, kverlaen, porcelli, rrajasek, rsynek
Target Milestone: CR2Keywords: Regression, 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:17:25 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:
Bug Depends On:    
Bug Blocks: 1039031    
Attachments:
Description Flags
stacktrace - cloning a repository via REST
none
domain.xml
none
host.xml
none
zookeeper log none

Description Radovan Synek 2014-01-07 14:15:19 UTC
Created attachment 846690 [details]
stacktrace - cloning a repository via REST

Description of problem:
After configuring a jbpm cluster on EAP 6.1 domain (two local nodes), cloning external repository completes successfully, but the repository is available only on the first node (where this clone operation has been started). 

Doing this via GUI gives me no error message in server log, on the second hand cloning a repository via REST ends up with TransportException (stacktrace attached). 

Also other operations like creating an organizational unit or deployment of kjar take effect only on the first node.

Version-Release number of selected component (if applicable):
BPMS-6.0.0.ER7


Steps to Reproduce:
1. configure jbpm cluster with two nodes
2. deploy business-central
3. via Authoring -> Administration clone a repository

Comment 1 Radovan Synek 2014-01-07 14:16:09 UTC
Created attachment 846691 [details]
domain.xml

Comment 2 Radovan Synek 2014-01-07 14:16:34 UTC
Created attachment 846692 [details]
host.xml

Comment 3 Radovan Synek 2014-01-07 14:17:01 UTC
Created attachment 846693 [details]
zookeeper log

Comment 4 Maciej Swiderski 2014-01-09 14:59:53 UTC
problem was accused by multiple uris returned for repository (as it now supports both git and ssh) which was not properly handled on cluster synchronization side.

uberfire
master:
https://github.com/droolsjbpm/uberfire/commit/4ebc268d5041261eb38fbda6c555f318b4e592b6

0.3.x:
https://github.com/droolsjbpm/uberfire/commit/f0a9b54634fcdaf3dbf5547870911cf186fcfe34

Comment 5 Radovan Synek 2014-01-21 10:11:33 UTC
I can still see described problems, the cluster has problems with synchronization:

organizational unit - created on node one, unavailable on node two

clone repository:

There is also the same error message in server log on node two. At least when I clone remote repository (git://git.app.eng.bos.redhat.com/bpms-assets.git), however when I clone the same repository locally via file protocol (file:///home/.../bpms-assets) no error message shows and the repository is available on both nodes.

Comment 6 Alexandre Porcelli 2014-01-21 10:16:52 UTC
File protocol isn't supported and git protocol allows you just read content (you can't push data back).

It should work with ssh protocol, can you try it and give us feedback? Thanks in advance

Comment 7 Maciej Swiderski 2014-01-21 10:18:16 UTC
and what about creating new resources, do they get synchronized properly? and same question for deployments?

Comment 8 Radovan Synek 2014-01-21 11:28:52 UTC
Tried with ssh://git.app.eng.bos.redhat.com/srv/git/bpms-assets.git, cloned on the first node, the second node remained without the repository.

Deployment unit has been synchronized successfully.

After restarting EAP domain, the organizational unit and repository is available on the second node. From this point, new resources are synchronized on both nodes.

But when I tried to create another organizational unit and clone another repository, again - it has been created only on the first node.

Comment 9 Maciej Swiderski 2014-01-21 11:33:41 UTC
ok, that indicates that synchronization is working as expected only the UI components are not refreshed as they should I believe. Will look into it.

Comment 10 Radovan Synek 2014-01-21 11:43:08 UTC
(In reply to Maciej Swiderski from comment #9)
> ok, that indicates that synchronization is working as expected only the UI
> components are not refreshed as they should I believe. Will look into it.

Maciej, I don't think it's only UI problem, since I tried locally both UI and REST with similar results. Also our test suite clones repository and creates deployment unit via REST and fails as well.

Comment 11 Maciej Swiderski 2014-01-21 12:08:01 UTC
Rdek, what I meant by UI is that the components that serve the UI (like RepositoryService, etc) caches data on the server and are not refreshed open sync request. Same services are used by RESST. Sorry for misleading comment.

Will let you know soon if I found anything.

Comment 12 Maciej Swiderski 2014-01-21 18:48:20 UTC
both issues fixed (refresh of  cached values for OU and repositories) and clone problem of the repository. The cloning was failing due to too short timeout which caused interruption of the cloning procedure and thus this (java.nio.channels.ClosedByInterruptException) exception. Default timeout value was increased to 30 seconds and it's configurable as well via system property: org.uberfire.cluster.timeout
that expects valid integer value of timeout in milliseconds.

uberfire
master:
https://github.com/droolsjbpm/uberfire/commit/24f443003f2b3823c3ccf793bcf6b0154ad30ad5

0.3.x:
https://github.com/droolsjbpm/uberfire/commit/0e44790711fe28de9e37cc39ce93730755964fba

Comment 13 Edson Tirelli 2014-01-22 21:36:45 UTC
(0.3.2.GA.x): https://github.com/droolsjbpm/uberfire/commit/3ac59b8

Comment 14 Radovan Synek 2014-01-27 08:26:30 UTC
Verified with BPMS-6.0.0.CR2