gwibber doesn't receive tweets n

Bug #613420 reported by Pedro Bessa
26
This bug affects 4 people
Affects Status Importance Assigned to Milestone
gwibber (Ubuntu)
Fix Released
Low
Ken VanDine
Lucid
Fix Released
Undecided
Unassigned

Bug Description

Binary package hint: gwibber

1. Ubuntu 10.04.1 LTS
2. gwibber 2.30.1-0ubuntu1
3. I expected to see a list of tweets.
4. I didn't see any tweet.

running gwibber on Terminal:

** (gwibber:4063): WARNING **: Trying to register gtype 'WnckWindowState' as enum when in fact it is of type 'GFlags'

** (gwibber:4063): WARNING **: Trying to register gtype 'WnckWindowActions' as enum when in fact it is of type 'GFlags'

** (gwibber:4063): WARNING **: Trying to register gtype 'WnckWindowMoveResizeMask' as enum when in fact it is of type 'GFlags'

Updating...
Updating...

without hiting CTRL+R, it updates twice already

Revision history for this message
Omer Akram (om26er) wrote :

open a terminal and do the following and paste the results please.

$ pkill gwibber
$ gwibber-service -do

Changed in gwibber (Ubuntu):
status: New → Incomplete
Revision history for this message
Pedro Bessa (deltrem1984) wrote :
Download full text (3.9 KiB)

Updating...
Gwibber Dispatcher: DEBUG Setting up monitors
Gwibber Dispatcher: DEBUG Monitors are up
Gwibber Dispatcher: INFO Gwibber Service is reloading account credentials
Gwibber Dispatcher: DEBUG Refresh interval is set to 5
Gwibber Dispatcher: DEBUG ** Starting Refresh - Wed Aug 4 09:47:17 2010 **
Gwibber Dispatcher: DEBUG <twitter:responses> Performing operation
Gwibber Dispatcher: DEBUG <twitter:receive> Performing operation
Gwibber Dispatcher: ERROR <twitter:responses> Operation failed
Gwibber Dispatcher: DEBUG Traceback:
Traceback (most recent call last):
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/dispatcher.py", line 75, in perform_operation
    message_data = PROTOCOLS[account["protocol"]].Client(account)(opname, **args)
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/twitter.py", line 144, in __call__
    return getattr(self, opname)(**args)
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/twitter.py", line 153, in responses
    return self._get("statuses/mentions.json", count=count, since_id=since)
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/twitter.py", line 135, in _get
    if parse: return [getattr(self, "_%s" % parse)(m) for m in data]
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/twitter.py", line 78, in _message
    m = self._common(data)
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/twitter.py", line 60, in _common
    m["id"] = str(data["id"])
TypeError: string indices must be integers

Gwibber Dispatcher: ERROR <twitter:receive> Operation failed
Gwibber Dispatcher: DEBUG Traceback:
Traceback (most recent call last):
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/dispatcher.py", line 75, in perform_operation
    message_data = PROTOCOLS[account["protocol"]].Client(account)(opname, **args)
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/twitter.py", line 144, in __call__
    return getattr(self, opname)(**args)
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/twitter.py", line 147, in receive
    return self._get("statuses/home_timeline.json", count=count, since_id=since)
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/twitter.py", line 135, in _get
    if parse: return [getattr(self, "_%s" % parse)(m) for m in data]
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/twitter.py", line 78, in _message
    m = self._common(data)
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/twitter.py", line 60, in _common
    m["id"] = str(data["id"])
TypeError: string indices must be integers

Gwibber Dispatcher: DEBUG <twitter:private> Performing operation
Gwibber Dispatcher: ERROR <twitter:private> Operation failed
Gwibber Dispatcher: DEBUG Traceback:
Traceback (most recent call last):
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/dispatcher.py", line 75, in perform_operation
    message_data = PROTOCOLS[account["protocol"]].Client(account)(opname, **args)
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/twitter.py", line 144, in __call__
    return getattr(self, opname)(**args)
  File "/usr/lib/python2.6/dist-packages/gwibber/micr...

Read more...

Revision history for this message
Omer Akram (om26er) wrote :

Ken, this is one of the most famous type of gwibber-service logs. "TypeError: string indices must be integers" this results in twitter not updating. can you please comment on this or take a look into the problem.

Changed in gwibber (Ubuntu):
assignee: nobody → Ken VanDine (ken-vandine)
importance: Undecided → Low
status: Incomplete → Confirmed
Revision history for this message
Rudy Neeser (the-river) wrote :

I appear to be having the same problem: a few days my twitter feed has stopped updating itself. I have tried removing and adding the twitter account to gwibber, but this hasn't helped.

The relevant traceback is:

Traceback (most recent call last):
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/dispatcher.py", line 75, in perform_operation
    message_data = PROTOCOLS[account["protocol"]].Client(account)(opname, **args)
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/twitter.py", line 144, in __call__
    return getattr(self, opname)(**args)
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/twitter.py", line 150, in user_messages
    return self._get("statuses/user_timeline.json", id=id, count=count, since_id=since)
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/twitter.py", line 135, in _get
    if parse: return [getattr(self, "_%s" % parse)(m) for m in data]
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/twitter.py", line 78, in _message
    m = self._common(data)
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/twitter.py", line 60, in _common
    m["id"] = str(data["id"])
TypeError: string indices must be integers

I have attached a copy of the log file.

Revision history for this message
Ken VanDine (ken-vandine) wrote :

I just pushed a change to the 2.30 branch that should traceback less and hopefully log a bit more for this case. Anyone willing to try to reproduce this from a source branch and see what the underlying error coming from twitter is?

bzr branch lp:gwibber/2.30 gwibber-2.30
cd gwibber-2.30
killall gwibber-service gwibber
./bin/gwibber-service -d -o

Thanks!

Revision history for this message
Pedro Bessa (deltrem1984) wrote :

deltrem@deltrem-desktop:~/gwibber/gwibber-2.30$ ./bin/gwibber-service -d -o
Updating...
Gwibber Dispatcher: DEBUG Setting up monitors
Gwibber Dispatcher: DEBUG Monitors are up
Gwibber Dispatcher: INFO Gwibber Service is reloading account credentials
Gwibber Dispatcher: DEBUG Refresh interval is set to 5
Gwibber Dispatcher: DEBUG ** Starting Refresh - Wed Aug 25 15:54:31 2010 **
Gwibber Dispatcher: DEBUG <twitter:receive> Performing operation
Gwibber Dispatcher: DEBUG <twitter:responses> Performing operation
Gwibber Dispatcher: ERROR auth failure: twitter:deltrem - Could not authenticate you
Gwibber Dispatcher: ERROR <twitter:responses> Operation failed
Gwibber Dispatcher: DEBUG Traceback:
Traceback (most recent call last):
  File "/home/deltrem/gwibber/gwibber-2.30/gwibber/microblog/dispatcher.py", line 75, in perform_operation
    message_data = PROTOCOLS[account["protocol"]].Client(account)(opname, **args)
  File "/home/deltrem/gwibber/gwibber-2.30/gwibber/microblog/twitter.py", line 149, in __call__
    return getattr(self, opname)(**args)
  File "/home/deltrem/gwibber/gwibber-2.30/gwibber/microblog/twitter.py", line 158, in responses
    return self._get("statuses/mentions.json", count=count, since_id=since)
  File "/home/deltrem/gwibber/gwibber-2.30/gwibber/microblog/twitter.py", line 133, in _get
    self.account["protocol"], self.account["username"], data["errors"][0]["message"])
GwibberProtocolError

Gwibber Dispatcher: INFO Twitter failure - This account is locked due to too many failed login attempts -- try again in 2904 seconds
Gwibber Dispatcher: DEBUG <twitter:receive> Finished operation
Gwibber Dispatcher: DEBUG <twitter:private> Performing operation

** (gwibber-error:3490): WARNING **: Trying to register gtype 'WnckWindowState' as enum when in fact it is of type 'GFlags'

** (gwibber-error:3490): WARNING **: Trying to register gtype 'WnckWindowActions' as enum when in fact it is of type 'GFlags'

** (gwibber-error:3490): WARNING **: Trying to register gtype 'WnckWindowMoveResizeMask' as enum when in fact it is of type 'GFlags'
Gwibber Dispatcher: INFO Twitter failure - This account is locked due to too many failed login attempts -- try again in 2903 seconds
Gwibber Dispatcher: DEBUG <twitter:private> Finished operation
Gwibber Dispatcher: INFO Loading complete: 1 - ['Success', 'Failure', 'Success']

Revision history for this message
Pedro Bessa (deltrem1984) wrote :

plus an alert box said gwibber couldn't login my twitter account (deltrem)

Revision history for this message
Rudy Neeser (the-river) wrote :

rudy@neverwhere:~/tmp/gwibber-2.30$ ./bin/gwibber-service -d -o
Updating...
Gwibber Dispatcher: DEBUG Setting up monitors
Gwibber Dispatcher: DEBUG Monitors are up
Gwibber Dispatcher: INFO Gwibber Service is reloading account credentials
Gwibber Dispatcher: DEBUG Refresh interval is set to 5
Gwibber Dispatcher: DEBUG ** Starting Refresh - Wed Aug 25 21:12:39 2010 **
Gwibber Dispatcher: DEBUG <twitter:responses> Performing operation
Gwibber Dispatcher: DEBUG <twitter:receive> Performing operation
Gwibber Dispatcher: DEBUG <twitter:responses> Finished operation
Gwibber Dispatcher: DEBUG <twitter:private> Performing operation
Gwibber Dispatcher: DEBUG <twitter:private> Finished operation
Gwibber Dispatcher: DEBUG <twitter:user_messages> Performing operation
Gwibber Dispatcher: ERROR <twitter:receive> Operation failed
Gwibber Dispatcher: DEBUG Traceback:
Traceback (most recent call last):
  File "/home/rudy/tmp/gwibber-2.30/gwibber/microblog/dispatcher.py", line 75, in perform_operation
    message_data = PROTOCOLS[account["protocol"]].Client(account)(opname, **args)
  File "/home/rudy/tmp/gwibber-2.30/gwibber/microblog/twitter.py", line 149, in __call__
    return getattr(self, opname)(**args)
  File "/home/rudy/tmp/gwibber-2.30/gwibber/microblog/twitter.py", line 152, in receive
    return self._get("statuses/home_timeline.json", count=count, since_id=since)
  File "/home/rudy/tmp/gwibber-2.30/gwibber/microblog/twitter.py", line 140, in _get
    if parse: return [getattr(self, "_%s" % parse)(m) for m in data]
  File "/home/rudy/tmp/gwibber-2.30/gwibber/microblog/twitter.py", line 78, in _message
    m = self._common(data)
  File "/home/rudy/tmp/gwibber-2.30/gwibber/microblog/twitter.py", line 60, in _common
    m["id"] = str(data["id"])
TypeError: 'NoneType' object is unsubscriptable

Gwibber Dispatcher: DEBUG <twitter:user_messages> Finished operation
Gwibber Dispatcher: INFO Loading complete: 1 - ['Failure', 'Success', 'Success', 'Success']

Revision history for this message
Ken VanDine (ken-vandine) wrote :

I just pushed another change to the same branch, please try again with the latest and see if you get useful log messages and less tracebacks.

Thanks!

Revision history for this message
Victor Vargas (kamus) wrote :

Today I had trouble with my twitter account, according to gwibber-service debug (using Ken's branch) said:

"Twitter failure - Rate limit exceeded. Clients may not make more than 45 requests per hour."

Revision history for this message
Pedro Bessa (deltrem1984) wrote :

I guess I have to wait:

deltrem@deltrem-desktop:~/gwibber-2.30$ ./bin/gwibber-service -d -o
Updating...
Gwibber Dispatcher: DEBUG Setting up monitors
Gwibber Dispatcher: DEBUG Monitors are up
Gwibber Dispatcher: INFO Gwibber Service is reloading account credentials
Gwibber Dispatcher: DEBUG Refresh interval is set to 5
Gwibber Dispatcher: DEBUG ** Starting Refresh - Wed Aug 25 18:19:39 2010 **
Gwibber Dispatcher: DEBUG <twitter:receive> Performing operation
Gwibber Dispatcher: DEBUG <twitter:responses> Performing operation
Gwibber Dispatcher: INFO Twitter failure - This account is locked due to too many failed login attempts -- try again in 1499 seconds
Gwibber Dispatcher: DEBUG <twitter:responses> Finished operation
Gwibber Dispatcher: DEBUG <twitter:private> Performing operation
Gwibber Dispatcher: INFO Twitter failure - This account is locked due to too many failed login attempts -- try again in 1498 seconds
Gwibber Dispatcher: DEBUG <twitter:receive> Finished operation
Gwibber Dispatcher: INFO Twitter failure - This account is locked due to too many failed login attempts -- try again in 1496 seconds
Gwibber Dispatcher: DEBUG <twitter:private> Finished operation
Gwibber Dispatcher: INFO Loading complete: 1 - ['Success', 'Success', 'Success']
^CTraceback (most recent call last):
  File "./bin/gwibber-service", line 83, in <module>
    loop.run()

Revision history for this message
Rudy Neeser (the-river) wrote :

Something has changed and gwibber is once again seeing my twitter account :-/ I'm not sure what it is that has changed, though — all I've done between last night and this morning is reboot, and that hasn't fixed the problem before.

I've merged the new code and run gwibber-services as requested, though, just in case it still helps you:

Gwibber Dispatcher: DEBUG Setting up monitors
Gwibber Dispatcher: DEBUG Monitors are up
Gwibber Dispatcher: INFO Gwibber Service is reloading account credentials
Gwibber Dispatcher: DEBUG Refresh interval is set to 5
Gwibber Dispatcher: DEBUG ** Starting Refresh - Thu Aug 26 10:12:18 2010 **
Gwibber Dispatcher: DEBUG <twitter:responses> Performing operation
Gwibber Dispatcher: DEBUG <twitter:receive> Performing operation
Gwibber Dispatcher: DEBUG <twitter:responses> Finished operation
Gwibber Dispatcher: DEBUG <twitter:private> Performing operation
Gwibber Dispatcher: DEBUG <twitter:receive> Adding record
Gwibber Dispatcher: DEBUG <twitter:receive> Adding record
Gwibber Dispatcher: DEBUG Checking message 22160547822 timestamp (2010-08-26 10:11:37.00) to see if it is newer than 2010-08-26 10:02:21.62
Gwibber Dispatcher: DEBUG Message 22160547822 newer than 2010-08-26 10:02:21.62, notifying
Gwibber Dispatcher: DEBUG <twitter:receive> Finished operation
Gwibber Dispatcher: DEBUG Checking message 22160444229 timestamp (2010-08-26 10:09:13.00) to see if it is newer than 2010-08-26 10:02:21.68
Gwibber Dispatcher: DEBUG Message 22160444229 newer than 2010-08-26 10:02:21.68, notifying
Gwibber Dispatcher: DEBUG <twitter:user_messages> Performing operation
Gwibber Dispatcher: DEBUG <twitter:private> Finished operation
Gwibber Dispatcher: DEBUG <twitter:user_messages> Finished operation
Gwibber Dispatcher: INFO Loading complete: 1 - ['Success', 'Success', 'Success', 'Success']

If the problem reappears, I'll rerun the updated gwibber-services and post its log.

Revision history for this message
Ken VanDine (ken-vandine) wrote :

The problem isn't so much gwibber, as it is twitter. Twitter often has periods of time where we get unexpected results and gwibber doesn't necessarily handle that well. They are usually transient errors, meaning it will start working again without changing anything, just service dependant. I suspect the problem was rate limiting, it is pretty easy to hit that 45 requests per hour limit. The next update we push for gwibber to Lucid will include these logging fixes so it is easier to at least find out what is going wrong, by looking at the log. In the future, we will provide a better way in the client to see the errors and decide if they need to be acted on.

I would also suggest increasing your refresh interval, I recommend at least 15 minutes. I think each refresh is 5 requests to twitter, plus any manual refreshes and posts.

Revision history for this message
Pedro Bessa (deltrem1984) wrote :
Download full text (4.7 KiB)

deltrem@deltrem-desktop:~/gwibber-2.30$ ./bin/gwibber-service -d -o
Found gwibber-service already running, exiting
deltrem@deltrem-desktop:~/gwibber-2.30$ killall gwibber-service gwibber
gwibber: processo não achado
deltrem@deltrem-desktop:~/gwibber-2.30$ ./bin/gwibber-service -d -o

(there was an alert saying "Authentication error from twitter for account deltrem")

Updating...
Gwibber Dispatcher: DEBUG Setting up monitors
Gwibber Dispatcher: DEBUG Monitors are up
Gwibber Dispatcher: INFO Gwibber Service is reloading account credentials
Gwibber Dispatcher: DEBUG Refresh interval is set to 5
Gwibber Dispatcher: DEBUG ** Starting Refresh - Thu Aug 26 12:05:34 2010 **
Gwibber Dispatcher: DEBUG <twitter:receive> Performing operation
Gwibber Dispatcher: DEBUG <twitter:responses> Performing operation
Gwibber Dispatcher: ERROR auth failure: twitter:deltrem - Could not authenticate you
Gwibber Dispatcher: ERROR <twitter:receive> Operation failed
Gwibber Dispatcher: DEBUG Traceback:
Traceback (most recent call last):
  File "/home/deltrem/gwibber-2.30/gwibber/microblog/dispatcher.py", line 75, in perform_operation
    message_data = PROTOCOLS[account["protocol"]].Client(account)(opname, **args)
  File "/home/deltrem/gwibber-2.30/gwibber/microblog/twitter.py", line 158, in __call__
    return getattr(self, opname)(**args)
  File "/home/deltrem/gwibber-2.30/gwibber/microblog/twitter.py", line 161, in receive
    return self._get("statuses/home_timeline.json", count=count, since_id=since)
  File "/home/deltrem/gwibber-2.30/gwibber/microblog/twitter.py", line 136, in _get
    self.account["protocol"], self.account["username"], data["errors"][0]["message"])
GwibberProtocolError

Gwibber Dispatcher: ERROR auth failure: twitter:deltrem - Could not authenticate you
Gwibber Dispatcher: ERROR <twitter:responses> Operation failed
Gwibber Dispatcher: DEBUG Traceback:
Traceback (most recent call last):
  File "/home/deltrem/gwibber-2.30/gwibber/microblog/dispatcher.py", line 75, in perform_operation
    message_data = PROTOCOLS[account["protocol"]].Client(account)(opname, **args)
  File "/home/deltrem/gwibber-2.30/gwibber/microblog/twitter.py", line 158, in __call__
    return getattr(self, opname)(**args)
  File "/home/deltrem/gwibber-2.30/gwibber/microblog/twitter.py", line 167, in responses
    return self._get("statuses/mentions.json", count=count, since_id=since)
  File "/home/deltrem/gwibber-2.30/gwibber/microblog/twitter.py", line 136, in _get
    self.account["protocol"], self.account["username"], data["errors"][0]["message"])
GwibberProtocolError

Gwibber Dispatcher: DEBUG <twitter:private> Performing operation

** (gwibber-error:2007): WARNING **: Trying to register gtype 'WnckWindowState' as enum when in fact it is of type 'GFlags'

** (gwibber-error:2007): WARNING **: Trying to register gtype 'WnckWindowActions' as enum when in fact it is of type 'GFlags'

** (gwibber-error:2007): WARNING **: Trying to register gtype 'WnckWindowMoveResizeMask' as enum when in fact it is of type 'GFlags'

** (gwibber-error:2011): WARNING **: Trying to register gtype 'WnckWindowState' as enum when in fact it is of type 'GFlags'...

Read more...

Revision history for this message
Colin Watson (cjwatson) wrote : Please test proposed package

Accepted gwibber into lucid-proposed, the package will build now and be available in a few hours. Please test and give feedback here. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you in advance!

Changed in gwibber (Ubuntu Lucid):
status: New → Fix Committed
tags: added: verification-needed
Revision history for this message
Pedro Bessa (deltrem1984) wrote :

I was able to authorize, which I wasn't able before, but I was unable to see the updates.

Revision history for this message
Pedro Bessa (deltrem1984) wrote :

I mean, twitter is authorized to be used by gwibber now (it wasn't), but I still can't see the updates.

Revision history for this message
Pedro Bessa (deltrem1984) wrote :

I couldn't report the bug with apport.

deltrem@deltrem-desktop:~$ sudo service apport start
[sudo] password for deltrem:
start: Job failed to start

Revision history for this message
Ken VanDine (ken-vandine) wrote :

@deltrem1984: can you confirm that you hit "Save" after authorising twitter? And can you please attach your log file, ~/.cache/gwibber/gwibber.log

Revision history for this message
Colin Watson (cjwatson) wrote :

I'm waiving the normal seven-day aging period on this bug because of Twitter being broken for everyone following the oauthpocalypse. Please shout if it's made anything worse.

(Ken, Pedro, don't let me stop you working out what's wrong in Pedro's case ...)

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package gwibber - 2.30.2-0ubuntu1

---------------
gwibber (2.30.2-0ubuntu1) lucid-proposed; urgency=low

   * New upstream release
    - Port twitter service to OAuth, basic auth is no longer
      supported (LP: #627565)
    - Remove the tr.im urlshortener, the service is closed (LP: #583316)
    - Better handling of unexpect results from twitter and
      identi.ca (LP: #613420)
    - Better handling of error responses from twitter, should log more
      and traceback less (LP: #613420)
  * debian/gwibber-service.install
    - Install files needed for twitter oauth
  * debian/control
    - Added build dep for python-oauth, twitter now uses it
 -- Ken VanDine <email address hidden> Wed, 01 Sep 2010 12:05:54 -0400

Changed in gwibber (Ubuntu Lucid):
status: Fix Committed → Fix Released
Revision history for this message
Pedro Bessa (deltrem1984) wrote :

Here the gwibber log goes.

Revision history for this message
Pedro Bessa (deltrem1984) wrote :

it's working! I did nothing, but it's working! fix released, then?

Revision history for this message
Pedro Bessa (deltrem1984) wrote :

I mean, so, it's fix released, right?

Revision history for this message
Ken VanDine (ken-vandine) wrote :

Pedro: I assume that was transient errors from twitter, which is a frustrating answer I know. Glad it is working now!

Changed in gwibber (Ubuntu):
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.