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.