Cobbler Proxy 502

Problem:

I came across a Cobbler error when trying to edit a profile.

[robbie@cobbler ~]# cobbler profile edit --name=centos7 --ksmeta='operatingsystemrelease=7.2.1511'
Traceback (most recent call last):
  File "/bin/cobbler", line 36, in <module>
    sys.exit(app.main())
  File "/usr/lib/python2.7/site-packages/cobbler/cli.py", line 657, in main
    rc = cli.run(sys.argv)
  File "/usr/lib/python2.7/site-packages/cobbler/cli.py", line 280, in run
    self.object_command(object_type, object_action)
  File "/usr/lib/python2.7/site-packages/cobbler/cli.py", line 383, in object_command
    self.remote.xapi_object_edit(object_type, options.name, object_action, utils.strip_none(vars(options), omit_none=True), self.token)
  File "/usr/lib64/python2.7/xmlrpclib.py", line 1233, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib64/python2.7/xmlrpclib.py", line 1587, in __request
    verbose=self.__verbose
  File "/usr/lib64/python2.7/xmlrpclib.py", line 1273, in request
    return self.single_request(host, handler, request_body, verbose)
  File "/usr/lib64/python2.7/xmlrpclib.py", line 1321, in single_request
    response.msg,
xmlrpclib.ProtocolError: <ProtocolError for 192.168.20.43:80/cobbler_api: 502 Proxy Error>
Cause

The cobbler environment has organically grown and we have now reached a point where modifying one parameter which affects a large number of systems (i.e. most systems are assigned this profile), therefore modifying one profile results in a rewrite of all the kickstarts for each system.

A default httpd timeout of 60 seconds is in place for all requests to the cobbler back-end. A profile change is classed as a single request (rather than dozens or hundreds of smaller requests). It simply took more than 60 seconds to perform this task.

Resolution

Add “Timeout 120” to /etc/httpd/conf/httpd.conf (or increase it to some other reasonable value) and restart httpd.