The python splunk SDK currently breaks when the server uses "Connection: keep-alive".
The issue is in splunklib.binding:handler, in the request method, you get the response object, then call close on the connection, then try to read the data.
When the server is using keep-alive, httplib will give you an empty response after you call connection.close().
We currently have NginX running in front of Splunk, which was changing it to keep-alive.
I'm using python2.7 on ubuntu 13.04 and ubuntu 12.04.
The error I get is:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/aaa/.virtualenvs/splunk/local/lib/python2.7/site-packages/splunklib/client.py", line 288, in connect
return Service(**kwargs).login()
File "/home/aaa/.virtualenvs/splunk/local/lib/python2.7/site-packages/splunklib/binding.py", line 753, in login
session = XML(body).findtext("./sessionKey")
File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1302, in XML
return parser.close()
File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1655, in close
self._raiseerror(v)
File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1507, in _raiseerror
raise err
xml.etree.ElementTree.ParseError: no element found: line 1, column 0
The python splunk SDK currently breaks when the server uses "Connection: keep-alive".
The issue is in splunklib.binding:handler, in the request method, you get the response object, then call close on the connection, then try to read the data.
When the server is using keep-alive, httplib will give you an empty response after you call connection.close().
We currently have NginX running in front of Splunk, which was changing it to keep-alive.
I'm using python2.7 on ubuntu 13.04 and ubuntu 12.04.
The error I get is: