Bug 842836

Summary: Satellite/Proxy failover not working for client
Product: [Community] Spacewalk Reporter: Stephen Herr <sherr>
Component: ClientsAssignee: Stephen Herr <sherr>
Status: CLOSED CURRENTRELEASE QA Contact: Red Hat Satellite QA List <satqe-list>
Severity: medium Docs Contact:
Priority: medium    
Version: 1.8CC: cperry, hhudgeon, jhutar, msuchy, mtaru
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: rhn-client-tools-1.8.16-1 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 827076 Environment:
Last Closed: 2012-11-01 16:21:39 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: 827076    
Bug Blocks: 842834, 871344    

Description Stephen Herr 2012-07-24 17:14:50 UTC
+++ This bug was initially created as a clone of Bug #827076 +++

Description of problem:
- Customer tried "2.2.4. Implementing Server Failover" in this document.
  http://docs.redhat.com/docs/en-US/Red_Hat_Network_Satellite/5.2/html-single/Client_Configuration_Guide/#s2-client-config-failover
- Customer tested below on client.
1. Configured only proxy -->  Work
2. Configured only satellite sever --> Work
3. Configured up2date to use bogus proxy url and then working satellite url --> Failed with error "A socket error occurred: (-2, 'Name or service not known'), attempt"
- updated rhn-client-tools to latest version rhn-client-tools-0.4.20-77.el5 but still facing same issue.

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

How reproducible:
- Follow "2.2.4. Implementing Server Failover" in this document.
  http://docs.redhat.com/docs/en-US/Red_Hat_Network_Satellite/5.2/html-single/Client_Configuration_Guide/#s2-client-config-failover

Steps to Reproduce:
1. Follow steps mentioned in "2.2.4. Implementing Server Failover" in this document.
  http://docs.redhat.com/docs/en-US/Red_Hat_Network_Satellite/5.2/html-single/Client_Configuration_Guide/#s2-client-config-failover
2.
3.
  
Actual results:
# yum repolist
Loaded plugins: rhnplugin, security
Cleaning up Everything
Loaded plugins: rhnplugin, security
D: login(forceUpdate=False) invoked
D: readCachedLogin invoked
D: Unable to read pickled loginInfo at: /var/spool/up2date/loginAuth.pkl
logging into up2date server
A socket error occurred: (-2, 'Name or service not known'), attempt #1
A socket error occurred: (-2, 'Name or service not known'), attempt #2
A socket error occurred: (-2, 'Name or service not known'), attempt #3
A socket error occurred: (-2, 'Name or service not known'), attempt #4
A socket error occurred: (-2, 'Name or service not known'), attempt #5
There was an error communicating with RHN.
RHN Satellite or RHN Classic support will be disabled.
Name or service not known
repolist: 0

Expected results:
- If the first server fails then the query should be forwarded to next server as configured in /etc/sysconfig/rhn/up2date in order to achieve failover.

Additional info:
- When configured only proxy or satellite on client, it is working fine.
- If configured incorrect hostname of proxy and correct of satellite it fails for proxy and do not forward request to next configured server i.e satellite in order to complete it.


--- Additional comment from sherr on 2012-07-24 11:36:58 EDT ---

The problem here is that we don't correctly read multi-line lists in the config file, so it never associates the 2nd (correct) server url as part of the server url list. 

A workaround for this issue is to have all the server urls on one line, separated by semicolon, with no spaces. 

I will update the code so that we can correctly parse a multi-line list or one-line lists with spaces in them.

--- Additional comment from sherr on 2012-07-24 11:42:23 EDT ---

Example of a line that should work currently:
(if bugzilla line-wraps it, know that this is all one line)
serverURL=http://primary.fake.satellite.server.com/XMLRPC;http://secondary.fake.satellite.server.com/XMLRPC;http://real.satellite.server.com/XMLRPC;

Example of a line that should work but does not:
(same as above but with spaces)
serverURL=http://primary.fake.satellite.server.com/XMLRPC; http://secondary.fake.satellite.server.com/XMLRPC; http://real.satellite.server.com/XMLRPC;

Example of a multi-line that should work but does not:
(same as above but with '\' and line breaks)
serverURL=http://primary.fake.satellite.server.com/XMLRPC; \
http://secondary.fake.satellite.server.com/XMLRPC;\
http://real.satellite.server.com/XMLRPC;

Comment 1 Stephen Herr 2012-07-24 17:25:45 UTC
pushed to Satellite master: 573ccdfe2f8d1ee269967ed46813ec0469cd42ca

Comment 2 Jan Pazdziora 2012-10-30 19:25:49 UTC
Moving ON_QA. Packages that address this bugzilla should now be available in yum repos at http://yum.spacewalkproject.org/nightly/

Comment 3 Jan Pazdziora 2012-11-01 16:21:39 UTC
Spacewalk 1.8 has been released: https://fedorahosted.org/spacewalk/wiki/ReleaseNotes18