Last Comment Bug 735206 - URLs for chained cloudfile uploads are wrong, causing permanent orange: TEST-UNEXPECTED-FAIL | test-cloudfile-backend-yousendit.js test-cloudfile-backend-dropbox.js | test_chained_uploads)
: URLs for chained cloudfile uploads are wrong, causing permanent orange: TEST-...
Status: RESOLVED FIXED
: intermittent-failure
Product: Thunderbird
Classification: Client Software
Component: Message Compose Window (show other bugs)
: Trunk
: x86 All
: -- normal (vote)
: Thunderbird 13.0
Assigned To: Nobody; OK to take it and work on it
:
Mentors:
Depends on:
Blocks: BigFiles
  Show dependency treegraph
 
Reported: 2012-03-13 06:11 PDT by Mike Conley (:mconley) - (needinfo me!)
Modified: 2012-11-25 19:31 PST (History)
1 user (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---


Attachments
Patch (4.47 KB, patch)
2012-03-13 08:33 PDT, Mike Conley (:mconley) - (needinfo me!)
mozilla: review+
Details | Diff | Splinter Review

Description Mike Conley (:mconley) - (needinfo me!) 2012-03-13 06:11:09 PDT
We landed a few basic smoke tests for BigFiles last night, and it looks like two of them are permanently orange.

From the build log for Dropbox:

TEST-START | /builds/slave/comm-central-macosx64-opt-unittest-mozmill/build/mozmill/cloudfile/test-cloudfile-backend-dropbox.js | setupTest
TEST-PASS | /builds/slave/comm-central-macosx64-opt-unittest-mozmill/build/mozmill/cloudfile/test-cloudfile-backend-dropbox.js | test-cloudfile-backend-dropbox.js::setupTest
TEST-START | /builds/slave/comm-central-macosx64-opt-unittest-mozmill/build/mozmill/cloudfile/test-cloudfile-backend-dropbox.js | test_chained_uploads
Step Pass: {"function": "controller.waitFor()"}
Test Failure: a != b: 'http://www.example.com/testFile1' != 'http://www.example.com/testFile3'.
TEST-START | /builds/slave/comm-central-macosx64-opt-unittest-mozmill/build/mozmill/cloudfile/test-cloudfile-backend-dropbox.js | teardownTest
Step Pass: {"function": "controller.waitFor()"}
2012-03-12 23:55:27	Dropbox	INFO	uploading testFile1
2012-03-12 23:55:27	Dropbox	INFO	getting user info
2012-03-12 23:55:27	TBOAuth	INFO	sign and send aUrl = http://localhost:4444/server/account/info
2012-03-12 23:55:27	TBOAuth	INFO	in sign and send url = http://localhost:4444/server/account/info
urlSpec = http://localhost:4444/server/account/info
2012-03-12 23:55:27	TBOAuth	INFO	dataParams =
2012-03-12 23:55:27	TBOAuth	INFO	sig base = GET&http%3A%2F%2Flocalhost%3A4444%2Fserver%2Faccount%2Finfo&oauth_consumer_key%3D7xkhuze09iqkghm%26oauth_nonce%3DSXGrDU%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1331621727%26oauth_token%3Drequestkey%26oauth_version%3D1.0
2012-03-12 23:55:27	Dropbox	INFO	user info = {"referral_link":"https://www.dropbox.com/referrals/r1a2n3d4m5s6t7","display_name":"John P. User","uid":12345678,"country":"US","quota_info":{"shared":253738410565,"quota":107374182400000,"normal":680031877871},"email":"john@example.com"}
2012-03-12 23:55:27	Dropbox	INFO	avail storage = 107374182400000
2012-03-12 23:55:27	Dropbox	INFO	new nsDropboxFileUploader file = testFile1
2012-03-12 23:55:27	Dropbox	INFO	ready to upload file testFile1
2012-03-12 23:55:27	TBOAuth	INFO	sign and send aUrl = http://localhost:4444/content/files_put/sandbox/testFile1?overwrite=false
2012-03-12 23:55:27	TBOAuth	INFO	in sign and send url = http://localhost:4444/content/files_put/sandbox/testFile1?overwrite=false
urlSpec = http://localhost:4444/content/files_put/sandbox/testFile1
2012-03-12 23:55:27	TBOAuth	INFO	dataParams = overwrite,false
2012-03-12 23:55:27	TBOAuth	INFO	sig base = PUT&http%3A%2F%2Flocalhost%3A4444%2Fcontent%2Ffiles_put%2Fsandbox%2FtestFile1&Content-Length%3D495%26oauth_consumer_key%3D7xkhuze09iqkghm%26oauth_nonce%3Dy80X6l%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1331621727%26oauth_token%3Drequestkey%26oauth_version%3D1.0%26overwrite%3Dfalse
2012-03-12 23:55:27	Dropbox	INFO	success putting file {"size":"225.4KB","rev":"35e97029684fe","thumb_exists":false,"bytes":230783,"modified":"Tue, 19 Jul 2011 21:55:38 +0000","is_dir":false,"icon":"page_white_acrobat","root":"dropbox","mime_type":"application/pdf","revision":220823,"path":"testFile1"}
2012-03-12 23:55:27	TBOAuth	INFO	sign and send aUrl = http://localhost:4444/server/shares/sandbox/testFile1
2012-03-12 23:55:27	TBOAuth	INFO	in sign and send url = http://localhost:4444/server/shares/sandbox/testFile1
urlSpec = http://localhost:4444/server/shares/sandbox/testFile1
2012-03-12 23:55:27	TBOAuth	INFO	dataParams =
2012-03-12 23:55:27	TBOAuth	INFO	sig base = POST&http%3A%2F%2Flocalhost%3A4444%2Fserver%2Fshares%2Fsandbox%2FtestFile1&oauth_consumer_key%3D7xkhuze09iqkghm%26oauth_nonce%3DBA7ryV%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1331621727%26oauth_token%3Drequestkey%26oauth_version%3D1.0
2012-03-12 23:55:27	Dropbox	INFO	Getting share URL successful with response text: {"url":"http://www.example.com/someFile","expires":"Wed, 17 Aug 2011 02:34:33 +0000"}
2012-03-12 23:55:27	Dropbox	INFO	Sending delete request to http://localhost:4444/server/fileops/delete/?root=sandbox&path=testFile1
2012-03-12 23:55:27	TBOAuth	INFO	sign and send aUrl = http://localhost:4444/server/fileops/delete/?root=sandbox&path=testFile1
TEST-PASS | /builds/slave/comm-central-macosx64-opt-unittest-mozmill/build/mozmill/cloudfile/test-cloudfile-backend-dropbox.js | test-cloudfile-backend-dropbox.js::teardownTest
NEXT ERROR TEST-UNEXPECTED-FAIL | /builds/slave/comm-central-macosx64-opt-unittest-mozmill/build/mozmill/cloudfile/test-cloudfile-backend-dropbox.js | test-cloudfile-backend-dropbox.js::test_chained_uploads


SUMMARY-UNEXPECTED-FAIL | test-cloudfile-backend-dropbox.js | test-cloudfile-backend-dropbox.js::test_chained_uploads
  EXCEPTION: a != b: 'http://www.example.com/testFile1' != 'http://www.example.com/testFile3'.
    at: test-folder-display-helpers.js line 2855
       assert_true(false,"a != b: 'http://www.example.com/testFile1' != 'http://www.example.com/testFile3'.") test-folder-display-helpers.js 2855
       assert_equals("http://www.example.com/testFile1","http://www.example.com/testFile3") test-folder-display-helpers.js 2842
       test_chained_uploads() test-cloudfile-backend-dropbox.js 154
            frame.js 557
            frame.js 626
            frame.js 669
            frame.js 497
            frame.js 675
            server.js 179
            server.js 183



and for YouSendIt:

TEST-START | /builds/slave/comm-central-macosx64-opt-unittest-mozmill/build/mozmill/cloudfile/test-cloudfile-backend-dropbox.js | setupTest
TEST-PASS | /builds/slave/comm-central-macosx64-opt-unittest-mozmill/build/mozmill/cloudfile/test-cloudfile-backend-dropbox.js | test-cloudfile-backend-dropbox.js::setupTest
TEST-START | /builds/slave/comm-central-macosx64-opt-unittest-mozmill/build/mozmill/cloudfile/test-cloudfile-backend-dropbox.js | test_chained_uploads
Step Pass: {"function": "controller.waitFor()"}
Test Failure: a != b: 'http://www.example.com/testFile1' != 'http://www.example.com/testFile3'.
TEST-START | /builds/slave/comm-central-macosx64-opt-unittest-mozmill/build/mozmill/cloudfile/test-cloudfile-backend-dropbox.js | teardownTest
Step Pass: {"function": "controller.waitFor()"}
2012-03-12 23:55:27	Dropbox	INFO	uploading testFile1
2012-03-12 23:55:27	Dropbox	INFO	getting user info
2012-03-12 23:55:27	TBOAuth	INFO	sign and send aUrl = http://localhost:4444/server/account/info
2012-03-12 23:55:27	TBOAuth	INFO	in sign and send url = http://localhost:4444/server/account/info
urlSpec = http://localhost:4444/server/account/info
2012-03-12 23:55:27	TBOAuth	INFO	dataParams =
2012-03-12 23:55:27	TBOAuth	INFO	sig base = GET&http%3A%2F%2Flocalhost%3A4444%2Fserver%2Faccount%2Finfo&oauth_consumer_key%3D7xkhuze09iqkghm%26oauth_nonce%3DSXGrDU%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1331621727%26oauth_token%3Drequestkey%26oauth_version%3D1.0
2012-03-12 23:55:27	Dropbox	INFO	user info = {"referral_link":"https://www.dropbox.com/referrals/r1a2n3d4m5s6t7","display_name":"John P. User","uid":12345678,"country":"US","quota_info":{"shared":253738410565,"quota":107374182400000,"normal":680031877871},"email":"john@example.com"}
2012-03-12 23:55:27	Dropbox	INFO	avail storage = 107374182400000
2012-03-12 23:55:27	Dropbox	INFO	new nsDropboxFileUploader file = testFile1
2012-03-12 23:55:27	Dropbox	INFO	ready to upload file testFile1
2012-03-12 23:55:27	TBOAuth	INFO	sign and send aUrl = http://localhost:4444/content/files_put/sandbox/testFile1?overwrite=false
2012-03-12 23:55:27	TBOAuth	INFO	in sign and send url = http://localhost:4444/content/files_put/sandbox/testFile1?overwrite=false
urlSpec = http://localhost:4444/content/files_put/sandbox/testFile1
2012-03-12 23:55:27	TBOAuth	INFO	dataParams = overwrite,false
2012-03-12 23:55:27	TBOAuth	INFO	sig base = PUT&http%3A%2F%2Flocalhost%3A4444%2Fcontent%2Ffiles_put%2Fsandbox%2FtestFile1&Content-Length%3D495%26oauth_consumer_key%3D7xkhuze09iqkghm%26oauth_nonce%3Dy80X6l%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1331621727%26oauth_token%3Drequestkey%26oauth_version%3D1.0%26overwrite%3Dfalse
2012-03-12 23:55:27	Dropbox	INFO	success putting file {"size":"225.4KB","rev":"35e97029684fe","thumb_exists":false,"bytes":230783,"modified":"Tue, 19 Jul 2011 21:55:38 +0000","is_dir":false,"icon":"page_white_acrobat","root":"dropbox","mime_type":"application/pdf","revision":220823,"path":"testFile1"}
2012-03-12 23:55:27	TBOAuth	INFO	sign and send aUrl = http://localhost:4444/server/shares/sandbox/testFile1
2012-03-12 23:55:27	TBOAuth	INFO	in sign and send url = http://localhost:4444/server/shares/sandbox/testFile1
urlSpec = http://localhost:4444/server/shares/sandbox/testFile1
2012-03-12 23:55:27	TBOAuth	INFO	dataParams =
2012-03-12 23:55:27	TBOAuth	INFO	sig base = POST&http%3A%2F%2Flocalhost%3A4444%2Fserver%2Fshares%2Fsandbox%2FtestFile1&oauth_consumer_key%3D7xkhuze09iqkghm%26oauth_nonce%3DBA7ryV%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1331621727%26oauth_token%3Drequestkey%26oauth_version%3D1.0
2012-03-12 23:55:27	Dropbox	INFO	Getting share URL successful with response text: {"url":"http://www.example.com/someFile","expires":"Wed, 17 Aug 2011 02:34:33 +0000"}
2012-03-12 23:55:27	Dropbox	INFO	Sending delete request to http://localhost:4444/server/fileops/delete/?root=sandbox&path=testFile1
2012-03-12 23:55:27	TBOAuth	INFO	sign and send aUrl = http://localhost:4444/server/fileops/delete/?root=sandbox&path=testFile1
TEST-PASS | /builds/slave/comm-central-macosx64-opt-unittest-mozmill/build/mozmill/cloudfile/test-cloudfile-backend-dropbox.js | test-cloudfile-backend-dropbox.js::teardownTest
NEXT ERROR TEST-UNEXPECTED-FAIL | /builds/slave/comm-central-macosx64-opt-unittest-mozmill/build/mozmill/cloudfile/test-cloudfile-backend-dropbox.js | test-cloudfile-backend-dropbox.js::test_chained_uploads


SUMMARY-UNEXPECTED-FAIL | test-cloudfile-backend-yousendit.js | test-cloudfile-backend-yousendit.js::test_chained_uploads
  EXCEPTION: a != b: 'http://www.example.com/testFile1' != 'http://www.example.com/testFile3'.
    at: test-folder-display-helpers.js line 2855
       assert_true(false,"a != b: 'http://www.example.com/testFile1' != 'http://www.example.com/testFile3'.") test-folder-display-helpers.js 2855
       assert_equals("http://www.example.com/testFile1","http://www.example.com/testFile3") test-folder-display-helpers.js 2842
       test_chained_uploads() test-cloudfile-backend-yousendit.js 149
            frame.js 557
            frame.js 626
            frame.js 669
            frame.js 497
            frame.js 675
            server.js 179
            server.js 183
Comment 1 Mike Conley (:mconley) - (needinfo me!) 2012-03-13 08:33:12 PDT
Created attachment 605408 [details] [diff] [review]
Patch

Ack, a major defect slipped through my review.

It looks like the urlsForFiles "hash" for nsDropbox.js and nsYouSendIt.js were both actually defined as Arrays.

This meant that if the key that was passed (in this case, an nsILocalFile) evaluated to the same integer (even though they weren't the same object), they'd return the same URL.

This patch fixes things in two ways:

1)  We define urlsForFiles as a hash this time.
2)  We key off on the file path, as opposed to the file object.
Comment 2 David :Bienvenu 2012-03-13 08:57:18 PDT
Comment on attachment 605408 [details] [diff] [review]
Patch

I saw a test failure w/ this patch with a timeout waiting for the dropbox server to finish, but it only happened once (my machine was under load at the time). we'll have to watch for that, but this patch seems right and we should see if it fixes the tinderboxes.
Comment 3 Mike Conley (:mconley) - (needinfo me!) 2012-03-13 09:04:30 PDT
Committed to comm-central as http://hg.mozilla.org/comm-central/rev/b3d3b3afb05c

Note You need to log in before you can comment on or make changes to this bug.