I have been running gwibber-service manually and this is the traceback when the problem happens:
Traceback (most recent call last):
File "/usr/lib/python2.6/dist-packages/gwibber/microblog/dispatcher.py", line 541, in refresh
operations = list(self.collector.get_operations())
File "/usr/lib/python2.6/dist-packages/gwibber/microblog/dispatcher.py", line 161, in get_operations
for acct in self.accounts.get_records(COUCH_TYPE_ACCOUNT, True):
File "/usr/lib/python2.6/dist-packages/desktopcouch/records/server_base.py", line 482, in get_records
exists = self.view_exists(view_name, design_doc)
File "/usr/lib/python2.6/dist-packages/desktopcouch/records/server_base.py", line 429, in view_exists
self.with_reconnects(self.db.__getitem__, doc_id)["views"]
File "/usr/lib/python2.6/dist-packages/desktopcouch/records/server_base.py", line 164, in with_reconnects
return func(*args, **kwargs)
File "/usr/lib/pymodules/python2.6/couchdb/client.py", line 316, in __getitem__
resp, data = self.resource.get(id)
File "/usr/lib/pymodules/python2.6/couchdb/client.py", line 978, in get
return self._request('GET', path, headers=headers, **params)
File "/usr/lib/pymodules/python2.6/couchdb/client.py", line 1014, in _request
resp, data = _make_request()
File "/usr/lib/pymodules/python2.6/couchdb/client.py", line 1009, in _make_request
body=body, headers=headers)
File "/usr/lib/pymodules/python2.6/httplib2/__init__.py", line 1129, in request
(response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
File "/usr/lib/pymodules/python2.6/httplib2/__init__.py", line 901, in _request
(response, content) = self._conn_request(conn, request_uri, method, body, headers)
File "/usr/lib/pymodules/python2.6/httplib2/__init__.py", line 875, in _conn_request
conn.connect()
File "/usr/lib/pymodules/python2.6/httplib2/__init__.py", line 750, in connect
raise socket.error, msg
socket.error: [Errno 111] Connexion refusée
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python2.6/threading.py", line 532, in __bootstrap_inner
self.run()
File "/usr/lib/python2.6/dist-packages/gwibber/microblog/util/couch.py", line 62, in run
self.curl.perform()
error: (18, 'transfer closed with outstanding read data remaining')
Exception in thread Thread-2:
Traceback (most recent call last):
File "/usr/lib/python2.6/threading.py", line 532, in __bootstrap_inner
self.run()
File "/usr/lib/python2.6/dist-packages/gwibber/microblog/util/couch.py", line 62, in run
self.curl.perform()
error: (18, 'transfer closed with outstanding read data remaining')
Exception in thread Thread-3:
Traceback (most recent call last):
File "/usr/lib/python2.6/threading.py", line 532, in __bootstrap_inner
self.run()
File "/usr/lib/python2.6/dist-packages/gwibber/microblog/util/couch.py", line 62, in run
self.curl.perform()
error: (18, 'transfer closed with outstanding read data remaining')
Exception in thread Thread-4:
Traceback (most recent call last):
File "/usr/lib/python2.6/threading.py", line 532, in __bootstrap_inner
self.run()
File "/usr/lib/python2.6/dist-packages/gwibber/microblog/util/couch.py", line 62, in run
self.curl.perform()
error: (18, 'transfer closed with outstanding read data remaining')
-----
The socket.error exception seems to confirm that the python-httplib2 patch works. If I try to start gwibber, I get the AttributeError from gwibber, and the following message from gwibber-service:
I added a line of code to print the url from the couchdb server object in gwibber-service. It says <OAuthCapableServer 'http://localhost:33312'> all the time. However, when the problem occurs, the couchdb server is no longer listening on this port (actually, it's on 42680.)
I have been running gwibber-service manually and this is the traceback when the problem happens:
Traceback (most recent call last): python2. 6/dist- packages/ gwibber/ microblog/ dispatcher. py", line 541, in refresh collector. get_operations( )) python2. 6/dist- packages/ gwibber/ microblog/ dispatcher. py", line 161, in get_operations get_records( COUCH_TYPE_ ACCOUNT, True): python2. 6/dist- packages/ desktopcouch/ records/ server_ base.py" , line 482, in get_records exists( view_name, design_doc) python2. 6/dist- packages/ desktopcouch/ records/ server_ base.py" , line 429, in view_exists with_reconnects (self.db. __getitem_ _, doc_id)["views"] python2. 6/dist- packages/ desktopcouch/ records/ server_ base.py" , line 164, in with_reconnects pymodules/ python2. 6/couchdb/ client. py", line 316, in __getitem__ get(id) pymodules/ python2. 6/couchdb/ client. py", line 978, in get 'GET', path, headers=headers, **params) pymodules/ python2. 6/couchdb/ client. py", line 1014, in _request pymodules/ python2. 6/couchdb/ client. py", line 1009, in _make_request pymodules/ python2. 6/httplib2/ __init_ _.py", line 1129, in request pymodules/ python2. 6/httplib2/ __init_ _.py", line 901, in _request request( conn, request_uri, method, body, headers) pymodules/ python2. 6/httplib2/ __init_ _.py", line 875, in _conn_request pymodules/ python2. 6/httplib2/ __init_ _.py", line 750, in connect python2. 6/threading. py", line 532, in __bootstrap_inner python2. 6/dist- packages/ gwibber/ microblog/ util/couch. py", line 62, in run curl.perform( )
File "/usr/lib/
operations = list(self.
File "/usr/lib/
for acct in self.accounts.
File "/usr/lib/
exists = self.view_
File "/usr/lib/
self.
File "/usr/lib/
return func(*args, **kwargs)
File "/usr/lib/
resp, data = self.resource.
File "/usr/lib/
return self._request(
File "/usr/lib/
resp, data = _make_request()
File "/usr/lib/
body=body, headers=headers)
File "/usr/lib/
(response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
File "/usr/lib/
(response, content) = self._conn_
File "/usr/lib/
conn.connect()
File "/usr/lib/
raise socket.error, msg
socket.error: [Errno 111] Connexion refusée
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/
self.run()
File "/usr/lib/
self.
error: (18, 'transfer closed with outstanding read data remaining')
Exception in thread Thread-2: python2. 6/threading. py", line 532, in __bootstrap_inner python2. 6/dist- packages/ gwibber/ microblog/ util/couch. py", line 62, in run curl.perform( )
Traceback (most recent call last):
File "/usr/lib/
self.run()
File "/usr/lib/
self.
error: (18, 'transfer closed with outstanding read data remaining')
Exception in thread Thread-3: python2. 6/threading. py", line 532, in __bootstrap_inner python2. 6/dist- packages/ gwibber/ microblog/ util/couch. py", line 62, in run curl.perform( )
Traceback (most recent call last):
File "/usr/lib/
self.run()
File "/usr/lib/
self.
error: (18, 'transfer closed with outstanding read data remaining')
Exception in thread Thread-4: python2. 6/threading. py", line 532, in __bootstrap_inner python2. 6/dist- packages/ gwibber/ microblog/ util/couch. py", line 62, in run curl.perform( )
Traceback (most recent call last):
File "/usr/lib/
self.run()
File "/usr/lib/
self.
error: (18, 'transfer closed with outstanding read data remaining')
-----
The socket.error exception seems to confirm that the python-httplib2 patch works. If I try to start gwibber, I get the AttributeError from gwibber, and the following message from gwibber-service:
WARNING:root:DB connection timed out. Reconnecting.
I added a line of code to print the url from the couchdb server object in gwibber-service. It says <OAuthCapableServer 'http:// localhost: 33312'> all the time. However, when the problem occurs, the couchdb server is no longer listening on this port (actually, it's on 42680.)