Bug 1303155

Summary: ERROR -- : Q-task_id([resource_action_360000000000104]) [DRb::DRbConnError]: druby://127.0.0.1:55138 - #<Errno::ECONNREFUSED: Connection refused - connect(2) for "127.0.0.1" port 55138> Method:[rescue in deliver]
Product: Red Hat CloudForms Management Engine Reporter: Kevin Morey <kmorey>
Component: AutomateAssignee: mkanoor
Status: CLOSED NOTABUG QA Contact: Kevin Morey <kmorey>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: 5.5.0CC: abellott, gmccullo, jhardy, kmorey, mkanoor, obarenbo, tfitzger
Target Milestone: GA   
Target Release: 5.6.0   
Hardware: All   
OS: All   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-02-01 22:32:29 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
logs for both appliances none

Description Kevin Morey 2016-01-29 17:33:01 UTC
Created attachment 1119480 [details]
logs for both appliances

Description of problem:
I have a button that calls a state machine with that does a retry. The state machine never comes back. After further research (with help from Tina) she pointed out that there is a DRB Error preventing the retry from occuring.

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

How reproducible:
100%

Steps to Reproduce:
1. attempt to perform an ae_retry in an automate method
2. 
3.

Actual results:
the method is never retried. and the evm.log shows ERROR -- : Q-task_id([resource_action_360000000000104]) [DRb::DRbConnError]: druby://127.0.0.1:55138 - #<Errno::ECONNREFUSED: Connection refused - connect(2) for "127.0.0.1" port 55138> Method:[rescue in deliver]

Expected results:
expected the retry to occur

Additional info:
Logs are attached

Comment 6 mkanoor 2016-01-29 21:25:35 UTC
In the Automate method the customer was using $evm.set_state_var function to set a hash and the hash had a default initializer function.

$evm.set_state_var(:volumes_option_hash, volumes_option_hash)

The volumes_option_hash was defined as volume_options_hash=Hash.new { |h, k| h[k] = {} })

where the |h, k| h[k] = {} is the initializer function. If the hash doesn't have a key it gets the default value in this case an empty hash.

Hashes that have a default initializer function cannot be used in $evm.set_state_var.

Comment 7 mkanoor 2016-01-29 21:26:44 UTC
We should mention this in our documentation

Comment 9 Shveta 2016-02-01 21:32:40 UTC
Assigning to add test case

Comment 10 mkanoor 2016-02-01 22:32:29 UTC
We should document that Hashes with default initializer cannot be used in $evm.set_state_var