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

Bug 1165399

Summary: Bundle deployment timeout is too short and should not be hard-coded
Product: [JBoss] JBoss Operations Network Reporter: Larry O'Leary <loleary>
Component: ProvisioningAssignee: Michael Burman <miburman>
Status: CLOSED CURRENTRELEASE QA Contact: Mike Foley <mfoley>
Severity: low Docs Contact:
Priority: unspecified    
Version: JON 3.2CC: lzoubek, miburman, mmahoney
Target Milestone: ER01   
Target Release: JON 3.3.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-02-27 19:58:30 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:

Description Larry O'Leary 2014-11-18 21:11:20 UTC
Description of problem:
If deploying a bundle that must perform a long running operation, such as moving or deleting 1 TB of data, it fails if the bundle recipe takes more then 4 hours to complete. 

Although the timeout of 4 hours is probably satisfactory in many cases, it may not be in all. There should be a method in the recipe or at deployment time of overriding this timeout value or disabling it entirely. 

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

How reproducible:
Always

Steps to Reproduce:
1. Create a simple bundle that contains a sleep task in its post install target:

   <sleep hours="4" minutes="2"/>
2. Deploy the bundle to a destination
3. Wait four hours and 2 minutes

Actual results:
Bundle deployment fails and is aborted.

Deployment failed: org.rhq.core.pc.inventory.TimeoutException: Call to [org.rhq.plugins.ant.AntBundlePluginComponent.deployBundle()] with args [[class org.rhq.core.pluginapi.bundle.BundleDeployRequest: deployment=[BundleResourceDeployment: bdd=[BundleDeployment[id=11001, name=Deployment [2] of Version [1.1] to [jon-platform]]], resource=[Resource[id=10005, uuid=59d13cb7-c5dd-876f-b4b0-3e832a71998d, type={Platforms}Linux, key=jon.example.com, name=jon-platform, parent=, version=Linux 2.6.18-308.el5]]], full-deploy-directory=[/tmp], clean=[false], revert=[false]]] timed out after 14400000 milliseconds - invocation thread will be interrupted.


Expected results:
Bundle deployment should be successful and not aborted before completion.

Additional info:
This is a direct result of the code[1]:

    ...
     // get the bundle facet object that will process the bundle and call it to start the deployment
    int facetMethodTimeout =
    4 * 60 * 60 * 1000; // 4 hours is given to the bundle plugin to do its thing
    BundleFacet bundlePluginComponent = getBundleFacet(bundleHandlerResourceId, facetMethodTimeout);
    BundleDeployResult result = bundlePluginComponent.deployBundle(deployRequest);
    ...




[1]: https://github.com/rhq-project/rhq/blob/0648f50f8c09590a2446ad48eed9a5a5d6e21371/modules/core/plugin-container/src/main/java/org/rhq/core/pc/bundle/BundleManager.java#L240

Comment 1 Michael Burman 2015-01-08 20:44:44 UTC
Fixed in the master:

commit cb73790acd490754ffe69cf89f122cf520355724
Author: Michael Burman <miburman>
Date:   Thu Jan 8 22:44:12 2015 +0200

    [BZ 1165399] Bundle deployment timeout is now configurable through the recipe (with key org.rhq.deploymentTimeout) and UI

Comment 2 Libor Zoubek 2015-01-12 09:33:10 UTC
commit 191688e7e26117de8a30f9f43ec13821de097286
Author: Michael Burman <miburman>
Date:   Thu Jan 8 22:44:12 2015 +0200

    [BZ 1165399] Bundle deployment timeout is now configurable through the recipe (with key org.rhq.deploymentTimeout) and UI
    
    (cherry picked from commit cb73790acd490754ffe69cf89f122cf520355724)
    Signed-off-by: Libor Zoubek <lzoubek>

Comment 3 Libor Zoubek 2015-01-13 13:47:54 UTC
branch:  release/jon3.3.x
link:    https://github.com/rhq-project/rhq/commit/07ec8cc80
time:    2015-01-13 14:42:32 +0100
commit:  07ec8cc80f35a50df4487005882ffbd0915767e5
author:  Michael Burman - miburman
message: [BZ 1165399] Add null check for theoretical edge-case (and fix tests)
         (cherry picked from commit
         15abf144794ad815592ec36eeded7b8ef11224e0) Signed-off-by: Libor
         Zoubek <lzoubek>

Comment 4 Simeon Pinder 2015-01-26 08:15:12 UTC
Moving to ON_QA as available for test with the latest 3.3.1.ER01 bits from here:
http://download.devel.redhat.com/brewroot/packages/org.jboss.on-jboss-on-parent/3.3.0.GA/12/maven/org/jboss/on/jon-server-patch/3.3.0.GA/jon-server-patch-3.3.0.GA.zip

Comment 5 Matt Mahoney 2015-01-27 16:35:54 UTC
Verified fixed in JON 3.3.1 ER01.

Tested with bundle: https://github.com/RedHatQE/jon-tests/blob/master/clitest/src/test/resources/bundles/bundle.zip

Set bundle sleep to 5 min.

- On Deploy of bundle - set "Timeout for bundle process as follows":

   1) Timeout of 6 min  - NO failure
   2) Timeout of <5 min - failure