After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 679072 - Tests for all Google services fail
Tests for all Google services fail
Status: RESOLVED FIXED
Product: libgdata
Classification: Platform
Component: General
0.13.x
Other Linux
: Normal normal
: ---
Assigned To: libgdata-maint
libgdata-maint
Depends on:
Blocks:
 
 
Reported: 2012-06-28 15:44 UTC by Nirbheek Chauhan
Modified: 2012-07-05 20:47 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Youtube test fails (gzipped, too large) (298.23 KB, application/x-gzip)
2012-06-28 15:48 UTC, Nirbheek Chauhan
Details
Calendar test fails (269.21 KB, text/plain)
2012-06-28 15:49 UTC, Nirbheek Chauhan
Details
Contacts test fails (29.98 KB, text/plain)
2012-06-28 15:50 UTC, Nirbheek Chauhan
Details
Documents test fails (58.07 KB, text/plain)
2012-06-28 15:51 UTC, Nirbheek Chauhan
Details
Picasaweb test fails (gzipped, too large) (117.35 KB, application/x-gzip)
2012-06-28 15:52 UTC, Nirbheek Chauhan
Details
New error for youtube test (4.58 KB, text/plain)
2012-06-28 21:07 UTC, Nirbheek Chauhan
Details

Description Nirbheek Chauhan 2012-06-28 15:44:38 UTC
While running make check, all tests that test the Google services APIs fail. The following fail:

youtube
calendar
contacts
documents
picasaweb

The logs for these are attached below.
Comment 1 Nirbheek Chauhan 2012-06-28 15:48:24 UTC
Created attachment 217539 [details]
Youtube test fails (gzipped, too large)
Comment 2 Nirbheek Chauhan 2012-06-28 15:49:35 UTC
Created attachment 217540 [details]
Calendar test fails
Comment 3 Nirbheek Chauhan 2012-06-28 15:50:13 UTC
Created attachment 217541 [details]
Contacts test fails
Comment 4 Nirbheek Chauhan 2012-06-28 15:51:38 UTC
Created attachment 217543 [details]
Documents test fails
Comment 5 Nirbheek Chauhan 2012-06-28 15:52:59 UTC
Created attachment 217544 [details]
Picasaweb test fails (gzipped, too large)
Comment 6 Philip Withnall 2012-06-28 20:00:22 UTC
(In reply to comment #1)
> Created an attachment (id=217539) [details]
> Youtube test fails (gzipped, too large)

Try running the test again. I’m fairly sure the problem you had is a race condition which only occurs occasionally. Fixing it would undermine the rest of the test.

(In reply to comment #2)
> Created an attachment (id=217540) [details]
> Calendar test fails

I can reproduce this and will investigate further. It would be nice if Google provided a more helpful error message.

(In reply to comment #3)
> Created an attachment (id=217541) [details]
> Contacts test fails

That looks like a transient problem with the server (a race condition at Google’s end) which we can’t do anything about. Re-running the test should fix it.

(In reply to comment #4)
> Created an attachment (id=217543) [details]
> Documents test fails

That’s Google’s fault: http://code.google.com/a/google.com/p/apps-api-issues/issues/detail?id=3033. Still waiting for it to be fixed. It probably never will be.
Comment 7 Philip Withnall 2012-06-28 20:21:45 UTC
(In reply to comment #6)
> I can reproduce this and will investigate further. It would be nice if Google
> provided a more helpful error message.

Looks like Google didn’t like the tests creating 3 new calendars in quick succession. I’ve pushed a fix to master which reduces the number of calendars created by the tests to 2.

commit 5407aa327fc94cd25e2e05773cf7afbb7092c188
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Thu Jun 28 21:19:06 2012 +0100

    calendar: Test with 2 calendars rather than 3
    
    Google’s poor little servers don’t like 3 calendars being created in quick
    succession (although they definitely used to be OK with it), resulting in
    the calendar query tests failing.
    
    Reduce the number of test calendars used for such tests to 2, rather than 3.
    That should hopefully fix the problem, although I can’t test the fix works
    completely because I’ve run out of GData query quota for the day.
    
    Closes: https://bugzilla.gnome.org/show_bug.cgi?id=679072

 gdata/tests/calendar.c |   15 ---------------
 1 files changed, 0 insertions(+), 15 deletions(-)
Comment 8 Nirbheek Chauhan 2012-06-28 21:06:27 UTC
(In reply to comment #6)
> (In reply to comment #1)
> > Created an attachment (id=217539) [details] [details]
> > Youtube test fails (gzipped, too large)
> 
> Try running the test again. I’m fairly sure the problem you had is a race
> condition which only occurs occasionally. Fixing it would undermine the rest of
> the test.
> 

I get a different error the next time I run the test:

    libgdata:ERROR:youtube.c:482:test_upload_async_cb: assertion failed (error == NULL): Stream has outstanding operation (g-io-error-quark, 20)

(log attached below)

> (In reply to comment #3)
> > Created an attachment (id=217541) [details] [details]
> > Contacts test fails
> 
> That looks like a transient problem with the server (a race condition at
> Google’s end) which we can’t do anything about. Re-running the test should fix
> it.
> 

I ran it multiple times and got the same error repeatedly. :(

    libgdata:ERROR:contacts.c:401:test_contact_insert: assertion failed (creation_time <= edited): (1340917530 <= 1340917515)

(etc)

> (In reply to comment #4)
> > Created an attachment (id=217543) [details] [details]
> > Documents test fails
> 
> That’s Google’s fault:
> http://code.google.com/a/google.com/p/apps-api-issues/issues/detail?id=3033.
> Still waiting for it to be fixed. It probably never will be.

Maybe that test should be marked as "known to fail"/"expected to fail" so that the tests don't fail because of it?
Comment 9 Nirbheek Chauhan 2012-06-28 21:07:20 UTC
Created attachment 217565 [details]
New error for youtube test
Comment 10 Nirbheek Chauhan 2012-06-28 21:08:15 UTC
Also, I forgot to ask: what about the picasaweb test?

(I'm leaving it to you to judge whether to reopen this bug or not)
Comment 11 Philip Withnall 2012-07-02 22:49:59 UTC
(In reply to comment #10)
> Also, I forgot to ask: what about the picasaweb test?

Whoops, I missed that one, sorry. Thanks for reminding me.

I’ve relaxed some of the PicasaWeb tests so that (for me) the tests now pass.

commit c04163c0b53c8a9c0db4650cb345b18374ae8d15
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Mon Jul 2 23:48:05 2012 +0100

    picasaweb: Relax some checks in the PicasaWeb test suite
    
    Don’t compare ETags and update dates exactly. This fixes some failures cause
    by Google’s use of relaxed consistency in the server implementation.
    
    Helps: https://bugzilla.gnome.org/show_bug.cgi?id=679072

 gdata/tests/picasaweb.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)
Comment 12 Nirbheek Chauhan 2012-07-03 20:27:58 UTC
(In reply to comment #11)
> (In reply to comment #10)
> > Also, I forgot to ask: what about the picasaweb test?
> 
> Whoops, I missed that one, sorry. Thanks for reminding me.
> 
> I’ve relaxed some of the PicasaWeb tests so that (for me) the tests now pass.
> 

Yep, now picasaweb passes for me too!

But only after I revert the commit that changed the password: http://git.gnome.org/browse/libgdata/commit/?id=62bb1f674d866f04022a71a7516b52d9895b7444 — Did you forget to change the password for the account?

Calender needs the new password, but it still fails for me:

(/home/nirbheek/projects/repositories/gnome/libgdata.git/gdata/tests/.libs/calendar:5472): libgdata-DEBUG: < Could not delete the calendar 8md3qe673ab88a89apg30pg690@group.calendar.google.com.
(/home/nirbheek/projects/repositories/gnome/libgdata.git/gdata/tests/.libs/calendar:5472): libgdata-DEBUG:   
**
libgdata:ERROR:calendar.c:172:tear_down_query_calendars: assertion failed: (gdata_service_delete_entry (GDATA_SERVICE (service), gdata_calendar_service_get_primary_authorization_domain (), GDATA_ENTRY (data->calendar2), NULL, NULL) == TRUE)

-----
Ditto contacts:

libgdata:ERROR:contacts.c:401:test_contact_insert: assertion failed (creation_time <= edited): (1341346975 <= 1341346971)

-----
And youtube:

libgdata:ERROR:youtube.c:1427:test_comment_query: assertion failed (error == NULL): A required element (<feed/title>) was not present. (gdata-service-error-quark, 2)

-----

Overall status on my end:
Pass: picasaweb
Fail: youtube, contacts, calendar
Known fail: documents

Thanks for your help :)
Comment 13 Philip Withnall 2012-07-03 20:58:58 UTC
(In reply to comment #12)
> But only after I revert the commit that changed the password:
> http://git.gnome.org/browse/libgdata/commit/?id=62bb1f674d866f04022a71a7516b52d9895b7444
> — Did you forget to change the password for the account?

Google forced me to change the password for the main test account, and then I forgot to change it for the PicasaWeb test account. Should be fixed now.

> Ditto contacts:
> 
> libgdata:ERROR:contacts.c:401:test_contact_insert: assertion failed
> (creation_time <= edited): (1341346975 <= 1341346971)

Fixed:

commit b1de9375b8c652c89415c5cde43607ffb06edbc2
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Tue Jul 3 21:53:35 2012 +0100

    contacts: Use fuzzy time comparisons when testing contact insertions
    
    Yes, having a contact which was last edited before it was created is a valid
    thing.
    
    Helps: https://bugzilla.gnome.org/show_bug.cgi?id=679072

 gdata/tests/common.h   |    5 +++++
 gdata/tests/contacts.c |    7 ++++---
 2 files changed, 9 insertions(+), 3 deletions(-)


I’m looking into YouTube and Calendar.
Comment 14 Philip Withnall 2012-07-03 21:19:19 UTC
(In reply to comment #12)
> And youtube:
> 
> libgdata:ERROR:youtube.c:1427:test_comment_query: assertion failed (error ==
> NULL): A required element (<feed/title>) was not present.
> (gdata-service-error-quark, 2)

Seems to be a regression on Google’s end, which I’ve worked around in libgdata for now.

commit faa7fe461032a3cb6b7a35fc6465bed53c695b70
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Tue Jul 3 22:16:59 2012 +0100

    youtube: Temporarily relax requirements on <feed/title> element
    
    The YouTube comments feed is not a valid Atom feed, as it’s recently (somehow)
    lost its <title> element. So we temporarily relax our requirements for feeds
    to follow any kind of standards or even the Google-provided documentation.
    
    Filed as: https://code.google.com/p/gdata-issues/issues/detail?id=2908
    
    Helps: https://bugzilla.gnome.org/show_bug.cgi?id=679072

 gdata/gdata-feed.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)
Comment 15 Philip Withnall 2012-07-03 21:26:57 UTC
(In reply to comment #12)
> (In reply to comment #11)
> > (In reply to comment #10)
> > > Also, I forgot to ask: what about the picasaweb test?
> > 
> > Whoops, I missed that one, sorry. Thanks for reminding me.
> > 
> > I’ve relaxed some of the PicasaWeb tests so that (for me) the tests now pass.
> > 
> 
> Yep, now picasaweb passes for me too!
> 
> But only after I revert the commit that changed the password:
> http://git.gnome.org/browse/libgdata/commit/?id=62bb1f674d866f04022a71a7516b52d9895b7444
> — Did you forget to change the password for the account?
> 
> Calender needs the new password, but it still fails for me:
> 
> (/home/nirbheek/projects/repositories/gnome/libgdata.git/gdata/tests/.libs/calendar:5472):
> libgdata-DEBUG: < Could not delete the calendar
> 8md3qe673ab88a89apg30pg690@group.calendar.google.com.
> (/home/nirbheek/projects/repositories/gnome/libgdata.git/gdata/tests/.libs/calendar:5472):
> libgdata-DEBUG:   
> **
> libgdata:ERROR:calendar.c:172:tear_down_query_calendars: assertion failed:
> (gdata_service_delete_entry (GDATA_SERVICE (service),
> gdata_calendar_service_get_primary_authorization_domain (), GDATA_ENTRY
> (data->calendar2), NULL, NULL) == TRUE)

Works for me. I’m going to say that’s a transient error again.

I think that’s everything, isn’t it? Thanks for going through the tests. :-)
Comment 16 Nirbheek Chauhan 2012-07-03 22:22:13 UTC
(In reply to comment #14)
> Seems to be a regression on Google’s end, which I’ve worked around in libgdata
> for now.
> 
> commit faa7fe461032a3cb6b7a35fc6465bed53c695b70
> Author: Philip Withnall <philip@tecnocode.co.uk>
> Date:   Tue Jul 3 22:16:59 2012 +0100
> 
>     youtube: Temporarily relax requirements on <feed/title> element
> 

In an amusing turn of events, relaxing these requirements broke the XML error handling tests:

general.c:
        TEST_XML_ERROR_HANDLING ("<id>ID</id><updated>2009-01-25T14:07:37.880860Z</updated>"); /* missing title */

This is no longer erroring out as is expected by the test. :)

I'm still getting errors on the youtube test, but I'll run it every half an hour or so for a day and see if it passes.
Comment 17 Nirbheek Chauhan 2012-07-03 22:25:36 UTC
(In reply to comment #13)
> commit b1de9375b8c652c89415c5cde43607ffb06edbc2
> Author: Philip Withnall <philip@tecnocode.co.uk>
> Date:   Tue Jul 3 21:53:35 2012 +0100
> 
>     contacts: Use fuzzy time comparisons when testing contact insertions
> 

New error!

libgdata:ERROR:contacts.c:1992:test_photo_get: assertion failed (error == NULL): The requested resource was not found: Photo not found (gdata-service-error-quark, 5)

I got this after repeated testing as well.

(Calendar account is out of quota, so I'll verify that tomorrow)

Thanks for taking care :)
Comment 18 Philip Withnall 2012-07-05 20:47:28 UTC
(In reply to comment #16)
> In an amusing turn of events, relaxing these requirements broke the XML error
> handling tests:

Whoops. Fixed:

commit 49ff505cb84341ecd0ae89f25a16cb8e01722311
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Thu Jul 5 21:40:07 2012 +0100

    tests: Temporarily relax requirements on <feed/title> element
    
    See previous commit (faa7fe461032a3cb6b7a35fc6465bed53c695b70).
    
    Helps: https://bugzilla.gnome.org/show_bug.cgi?id=679072

 gdata/tests/general.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)


(In reply to comment #17)
> libgdata:ERROR:contacts.c:1992:test_photo_get: assertion failed (error ==
> NULL): The requested resource was not found: Photo not found
> (gdata-service-error-quark, 5)

Me too. Also fixed:

commit be230783f8a4105e1a128873b4666060f164e856
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Thu Jul 5 21:45:27 2012 +0100

    contacts: Sleep for 3s after uploading a photo in the tests
    
    It now seems to fairly consistently take Google servers 3s to process
    uploaded photos. Before this time has passed, a query for an uploaded photo
    (using the URI provided in the “upload successful” response) will result in
    an error.
    
    Helps: https://bugzilla.gnome.org/show_bug.cgi?id=679072

 gdata/tests/contacts.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)