Bug 887320

Summary: Agent raise OutOfMemoryError when adding new Deployment child resource on AS7
Product: [Other] RHQ Project Reporter: Thomas Segismont <tsegismo>
Component: AgentAssignee: Thomas Segismont <tsegismo>
Status: CLOSED CURRENTRELEASE QA Contact: Mike Foley <mfoley>
Severity: high Docs Contact:
Priority: unspecified    
Version: 4.5CC: hrupp, snegrea
Target Milestone: ---   
Target Release: RHQ 4.6   
Hardware: All   
OS: All   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 887861 (view as bug list) Environment:
Last Closed: 2013-09-03 10:43:51 EDT Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Bug Depends On:    
Bug Blocks: 887861    
Attachments:
Description Flags
Stack trace none

Description Thomas Segismont 2012-12-14 11:49:26 EST
Description of problem:
When you try to add new deployment child to an AS7 resource, the agent raise an  OutOfMemoryError.

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

How reproducible:
Always

Steps to Reproduce:
1. Find a simple WAR to deploy
I tried with Jenkins http://mirrors.jenkins-ci.org/war/latest/jenkins.war
2. Go to an AS7 resource page, Inventory/Child Resources tab.
3. Click the toggle button Create Child/Deployment and upload you WAR, then Next and Finish
4. Go to the Inventory/Child History tab
  
Actual results:
The new Created Child history record ends with status failed. A big stack trace ending with OutOfMemoryError is in the history details (see attached stack trace).

Expected results:
The new Created Child history record ends with status success.

Additional info:
* Attached is the server stack trace. The error is catched and passed to the server so it's reported on the server but actually raised in the agent.
* Deploying the same war to a Tomcat 7 resource works. So it may be a problem only for the AS7 plugin
Comment 1 Thomas Segismont 2012-12-14 11:50:28 EST
Created attachment 663660 [details]
Stack trace
Comment 2 Charles Crouch 2012-12-14 12:29:08 EST
Notes:  http://mirrors.jenkins-ci.org/war/latest/jenkins.war is 46mb

Is this also a problem in jon311?
Comment 3 Thomas Segismont 2012-12-17 09:12:22 EST
It's also a jon311 issue.

AS7 plugin uses HttpUrlConnection to talk with management API.

HttpUrlConnection keeps data in memory until output stream is closed if content length is unknown.
Setting transfer mechanism to chunks solves the problem.

master - 52bdd6f
Comment 4 Thomas Segismont 2012-12-17 17:34:48 EST
master - 52bdd6f reverted

Fix worked by chance at first because there was an already active connection to as7.
But HttpUrlConnection does not support auth in streaming mode.
Comment 5 Thomas Segismont 2013-01-21 08:23:09 EST
Bug fixed (ASUploadConnection now uses commons httpclient) instead of HttpUrlConnection from JDK.

master - 84b4cbc
Comment 6 Thomas Segismont 2013-04-08 17:31:45 EDT
Reworked to upgrade to HttpClient 4

master - 21ec5e2
Comment 7 Thomas Segismont 2013-04-09 06:07:39 EDT
Reworked to increased delay in AS7 itests to discover all resources
master - 3b18013
Comment 8 Thomas Segismont 2013-04-10 08:15:35 EDT
All unit and integration tests pass on my box and on Jenkins:
https://jenkins.mw.lab.eng.bos.redhat.com/hudson/view/RHQ/job/rhq-master/org.rhq$rhq-jboss-as-7-plugin/

Manual testing leads to expected results (see the steps listed in the original description of this bug)
Comment 9 Heiko W. Rupp 2013-09-03 10:43:51 EDT
Bulk closing of issues in old RHQ releases that are in production for a while now.

Please open a new issue when running into an issue.