Closed Bug 587280 Opened 9 years ago Closed 9 years ago

Intermittent failure in test_crypto_keypair.js | 1624 == 1644 - See following stack:

Categories

(Firefox :: Sync, defect)

defect
Not set

Tracking

()

RESOLVED FIXED

People

(Reporter: philor, Assigned: Mardak)

References

Details

(Keywords: intermittent-failure, Whiteboard: [fixed mozilla-central 2.0b6])

Attachments

(1 file)

http://tinderbox.mozilla.org/showlog.cgi?log=Firefox/1281760668.1281762234.9851.gz
WINNT 5.2 mozilla-central debug test xpcshell on 2010/08/13 21:37:48
s: mw32-ix-slave19

TEST-UNEXPECTED-FAIL | e:\builds\moz2_slave\mozilla-central-win32-debug-unittest-xpcshell\build\xpcshell\tests\test_services_sync\unit\test_crypto_keypair.js | test failed (with xpcshell return code: 0), see following log:
  >>>>>>>
  ### XPCOM_MEM_LEAK_LOG defined -- logging leaks to c:\docume~1\cltbld\locals~1\temp\tmpo64fuv\runxpcshelltests_leaks.log
pldhash: for the table at address 04DA9130, the given entrySize of 48 probably favors chaining over double hashing.
nsNativeModuleLoader::LoadModule("e:\builds\moz2_slave\mozilla-central-win32-debug-unittest-xpcshell\build\firefox\components\xpcomsample.dll") - load FAILED, rv: 80520012, error:
	<unknown; can't get error from NSPR>
WARNING: This method is lossy. Use GetCanonicalPath !: file e:/builds/moz2_slave/mozilla-central-win32-debug/build/xpcom/io/nsLocalFileWin.cpp, line 2977
pldhash: for the table at address 0716F9F0, the given entrySize of 52 probably favors chaining over double hashing.
Setting the identity for passphrase
TEST-INFO | (xpcshell/head.js) | test 1 pending
TEST-PASS | e:/builds/moz2_slave/mozilla-central-win32-debug-unittest-xpcshell/build/xpcshell/tests/test_services_sync/unit/test_crypto_keypair.js | [run_test : 7] 24 == 24
TEST-PASS | e:/builds/moz2_slave/mozilla-central-win32-debug-unittest-xpcshell/build/xpcshell/tests/test_services_sync/unit/test_crypto_keypair.js | [run_test : 10] 24 == 24
TEST-PASS | e:/builds/moz2_slave/mozilla-central-win32-debug-unittest-xpcshell/build/xpcshell/tests/test_services_sync/unit/test_crypto_keypair.js | [run_test : 13] 44 == 44
TEST-PASS | e:/builds/moz2_slave/mozilla-central-win32-debug-unittest-xpcshell/build/xpcshell/tests/test_services_sync/unit/test_crypto_keypair.js | [run_test : 17] 2048 == 2048
TEST-PASS | e:/builds/moz2_slave/mozilla-central-win32-debug-unittest-xpcshell/build/xpcshell/tests/test_services_sync/unit/test_crypto_keypair.js | [run_test : 24] true == true
TEST-PASS | e:/builds/moz2_slave/mozilla-central-win32-debug-unittest-xpcshell/build/xpcshell/tests/test_services_sync/unit/test_crypto_keypair.js | [run_test : 25] true == true
TEST-PASS | e:/builds/moz2_slave/mozilla-central-win32-debug-unittest-xpcshell/build/xpcshell/tests/test_services_sync/unit/test_crypto_keypair.js | [run_test : 26] 392 == 392
TEST-UNEXPECTED-FAIL | e:/builds/moz2_slave/mozilla-central-win32-debug-unittest-xpcshell/build/xpcshell/tests/test_services_sync/unit/test_crypto_keypair.js | 1624 == 1644 - See following stack:
JS frame :: e:\builds\moz2_slave\mozilla-central-win32-debug-unittest-xpcshell\build\xpcshell\head.js :: do_throw :: line 273
JS frame :: e:\builds\moz2_slave\mozilla-central-win32-debug-unittest-xpcshell\build\xpcshell\head.js :: do_check_eq :: line 303
JS frame :: e:/builds/moz2_slave/mozilla-central-win32-debug-unittest-xpcshell/build/xpcshell/tests/test_services_sync/unit/test_crypto_keypair.js :: run_test :: line 27
JS frame :: e:\builds\moz2_slave\mozilla-central-win32-debug-unittest-xpcshell\build\xpcshell\head.js :: _execute_test :: line 166
JS frame :: -e :: <TOP_LEVEL> :: line 1
TEST-INFO | (xpcshell/head.js) | exiting test
WARNING: nsExceptionService ignoring thread destruction after shutdown: file e:/builds/moz2_slave/mozilla-central-win32-debug/build/xpcom/base/nsExceptionService.cpp, line 197
nsXPConnect::CommenceShutdown()
WARNING: OOPDeinit() without successful OOPInit(): file e:/builds/moz2_slave/mozilla-central-win32-debug/build/toolkit/crashreporter/nsExceptionHandler.cpp, line 1555
nsStringStats
 => mAllocCount:           2028
 => mReallocCount:          106
 => mFreeCount:            2028
 => mShareCount:           6869
 => mAdoptCount:            164
 => mAdoptFreeCount:        164

  <<<<<<<
This looks like an actual code problem, rather than a test problem.

That is to say: the last time the test was touched was in late June (by Mardak), and the first randomorange was reported over 1.5 months later. Since then, it seems to be failing once every day or two ever since then... so this I'd guess that this was from some Sync checkin in the few days leading up to comment 0.
(In reply to comment #8)
> That is to say: the last time the test was touched was in late June (by
> Mardak), and the first randomorange was reported over 1.5 months later. Since
> then, it seems to be failing once every day or two ever since then... so this
> I'd guess that this was from some Sync checkin in the few days leading up to
> comment 0.

I don't think the Sync tests were run before the MOZ_SERVICES_SYNC flag was switched (bug 583339), so I would assume that it's a test problem.
Ah, makes sense.

FWIW, I was looking at the hg revision-history of the test, which makes it appear to have been in mozilla-central since 2008.  But the web interface didn't reveal that the test's entire history is actually encompassed by a single push to m-c, in June 2010 (with backdated changesets). :)  (I found that out by checking the pushlog of the test's oldest changeset.)
FWIW, I _suspect_ that the test just needs to allow both string lengths (1624 an 1644), and that this is a normal occurrence of the encoded key just sometimes being a bit longer, or something like that.

But it would be good to investigate exactly what the contents of the longer key are, to see why this is happening.
I wrote a dummy test that just keeps generating keypairs and of the 86 that were generated before the test timed out, 3 of them had privkey length of 1624. If I rerun generateKeypair with the same passphase, salt and iv, the privkey usually results in the expected 1644 length key.

[privkey.length, salt, iv, privkey]:

1624,ketuTa4u3lhSpl5jnUD4gA==,4WmyPDbTVHsafFiU99aLCw==,Q38beyEnh0sLZD0nlDJKSeFFVCglhJ/SAiKV8AiwJ1KXinNwTOJTYzB6ZCH5SDNnT/QREmQ2dg/723oTgf9RUqw21QgHOt5vRveMs0pfUTo8XpqxFWqrxxQuziBvQ7toNvJum6JhGJUTHLhvAmSGKuZGk2QSrlt/HLQJe7zZucBU6K4E1XedoX4AzLmkWF+WGH+I/dl2783JXyUt1Z0MHlOhNC5civM4mhKyHyFIoSJifo8bjv3BqlIETbd21Pyoerv+vyHZaeGvffXltAwaeyuCxtGzticJKXI6ySOsrSLqqzZJN71Yd1Ibs1yW7bYQQ1fkKBhgjjjLABYK6mpnPiKxsT/9h/LKd99w5G63nxWHZ38vcrnJSMauWuXVNDfQPUeOhNvlVGfzsVGJUQ5RJXqazzSVJWRvL19WbK5z8H/ULVLAsyH5nTOaolfnWlcdIWUrTsNOiXwf1gAnYMUx0FKpuhAnD8zTQh3N0DjZs7TQiKUZ/FHKsjeBF/p/PJaJW0DEybJQlInGGvuyDmrQ/3RebOJpokFDw8W8q53xFxEVRRs3GSqxj1sO/G7nY1cmoIOV4JGOhzeBIv8BC4IJW6kHn04ljUlaULyRk18D737oasXptoDxjqQa5y0Hx+TziWpN+p+mTQO9msIEd+rKKK5qQ59723x5pGxgpDx4apHnriAcbk8OhuXQf9V6S/4nYCRdbUrnV23Unilk1Z6nORhT+Sn/nV4FFBbgHE835XVJ+lvH4Tz89SjwxFpT//IF1sZ+T8KSRnGeMh5jU2MIyH1jFuz5Jd9JXjATc0Y7O5JRs1dLz3XhECCUy0NXHxwhMVhxeJpKVYrtEA1yYpnxRth+A6yEd9A2ZRjvpnEHd/XJVUblZX+KGVS4tpxPdc08wkFF7KXtDJwh5Kpqc7iSeyUQk380DKsLQ8kz3MRvXHk4gDXH/wJZA+b6BGIvKEvh+cvl7O1PVStAiC06vEV+93vo+WHe+Q/LoVOxtpsOQhH5hNOCg9QFLw/qwjDuiBU4JBnZOfzRVNWX7llUu4GKYiHBUvkhQQPXI1cRKQYkEWBdCvI0w90/N12AR4dOX+2vmf2C5NGvRg8S5PT+Sub82xSWrXDwsTYKXMgLOATtiIljwSfCTyes1XXpmRj2rDXWqJntDM5iaYAj33LCpRdMYxmPFLlKdTcbOlRYerfwID8p1UyDJpnyxBSsmL3x9uYhqeb3YeCw8c6ogf68BouvAAkN/5Safpx+a9g+sZSAFc4aCiuV0d/t/tAl/o3G3T5kfx84yziYbRwsNdTgZir332EMltQF/YV5P2lMqijKr3xs058am4CeO3C+5gWUtsv8P+eNH99wXfkhNMuxiUuB3TxN8OUN/LYluaPP+jwv8u8HgHZ0TusOWlTAkI8OhAu1qhEH8wNRNYoaNZmt7/hYMA2gKv2nlCybUP0RGtzqOqacFAghH0s03m0lVMxPyjGlaN0y98Bc/ILlQb3qTI5eOu1ty8Cz3pwDF5ROAdy9fGRUqklUH6lQgeIApg6xPToedGv6I/O3gewadbJ2KgabD6mUbrIVmZ9a6hbibuWg9I3ZtsHMtSEQA5xxDwEXE2ugOzFxo1yoEu5RDBjXmMEC3A==

1624,dL4QYurCKnzCGRjQ/4f+pA==,b0FtnxtT5NbkvjaxmQ/6GA==,CqpgBlbh5s9Vhw9Xu50p7aCUYIXAOKALDAt56YjsawtcCzpkIHXh46WiJcOAuhpYEdivF646OarJsmtqKSBdsytLOLOxeksnuDNYTBqkqoT67sMy/5PqwRLKP4/N4OE90XuPuw/7U9iJ5coxHjiNCrseTBibw26fdgr0c4H5y/FXVM55K6UENaNwrGSigBnoYTgYvsOat4agRWulj3BoUU+EpK3TKrFKJU64RxYE6Gg+2zGm7srpKKwB18R5ptpQTafdt1uiZITfkq3/yVZNy4hryLG3spvOMvoLnzhdyJvbA5ohQ8lSpCoMWxyfAyzJd2z3iqPxxy9qIHckBG0czHu3k3A7UilKYvYEMt59hmyjk3O7PvEAZRcbxNDusx3eZ9dMtr2PFBdG55PiegFNvsGoth6KkcLrin4xhfOuMhvghKkflxhjK4rOQrt9LN5QVtaQco5rV62xgu7HnqOvzXj2IlRGFBBwMt0I3yfbjOPQzIoT9EGcs0VHIui6iORXyPwSYTDeimLwDA0/Bk0VdyOPLSPknLnxgB75c8Yjdrr8yF80ItvBxvaUXFBFFgCsQVSiw8wh6W4pGiXrj9vVLnFkbQMZZAnKRwQ4EHHaNHj20IAGIS367FzCLMdlj2ce5oJ6LsqoOSwRopJcOu57AxnWZUnKEohdUfyoAw5B6qPof6GaoQJazkCQ5D4If+sgpgbDPu9eMGUDIxDwJUqYpsNRYjAY+4EVeQkbwjMrlFNEOCVAqLFF5rQa9wus9IC/tzvK89YK4GyL1VcLAeGhibPWa0aK21qGRjEldI5Q/YPbD+YwW+og2T4nUdeVD8hUIUAne+zOvgGgoq13iGxwCczuS/nQsgLQCJZWGEC/Ag3N/2ZwLk1ru8ajhb3XE2M8ibIISQmY/VaMzhJ8ztoPLUNUH58swPc9R/zcd6YcisZYyyUM5/pOh6bZHXLuzIYCXBnJ0WuAHUADKhm/UEHoCGMsSwsbnKu6u6yay+k/X7p+DC1y+Tm5XYhtZAaahp+Il9IvOHzQg2E/05bKX06xvsAG/R+jEP5ijYymznZ0aSZZF4rq23enFZygKpGTF5S7PhE56pKnk6tNd1SOjUy7tLjadJZhc+C7Q4GcVVGvWMBDguv8+F3FaDnMl2CeJ8VR8lZd0AW37rmZHmAqpUv7Qlfl1wBaXb3U03UThO1PSuyz+LoioZULf7bI24oNQKHtDNODfvWNfzIW5quZmIR8q22xKL3QoeDg0M7kkS43C5lhHbtlfRR7axAaXCagfIe33NbZ66654iu9Fz4mCF/hTAMMxJ4GaA4mcRkV/RSceD+b4eBimSLmlic7t+GiqXpfxHJ3i1sqBMplarrK7SFjPf0vbnXYOKubyF9yBQOP6T2ki7Vo583k24Lsu79xZ+oDEAoCLTpB4XSKXEcm2PsutvGClojgW8dGzVSbsVhwWtvcw3XZSrfZZxfaJIb2UqBMkhwmvNCTN8IBtTac90yP4rHzEGH/YqIuH1hpyBOlRtFMnAAc6eL0ImukackGZOnR1ix2KpXKJ41wD1QaPO5mf2rQ1NSCxvtEwpucB0LkpTXi7Rf3I8/BFVY8ru/lWbhphNLZQvc/UzbD2wbr623/nA==

1624,lUcIFFC134iITmMt7fP0Dw==,UKKpesxEELLKOL3qic53rA==,4bwdEzcVUOJxKMOI1b5oH8CLImM4PCamnkqjTtdJeSw1V04I0XjiQje76nskGSUWPhOqxCPtnQKN+DnU8XWRgCtjuzlisa6UchbbyS6nUFCkwZnhC+dL6Mpp+qgb0TUP1gkxhs8au2vbY30NeAWrcwETdZZvzRnlu1alNZb0uf/OlCNLJQ8x/7GfIcSCkiJ14pi906NYye7XdhcX9Rah6ZDENBX/m2mIawofrr721Be5vkM/1JX0dPENpE4ZRZLeqgA/S2M1l0gFKGNF2QYfmMupOnan74KhwMFn/BdZueVwfZk3aqkncZcx/Gs+Rq4SGki6Er2Q7FPj/FZTI9Nk/hWhm3cUjyvi1dqGNjc4okk7YQs8eMaXsfE3zzywibaoAzYEKWHcwk898zGgNJRNQdZBivAvO5rnoHWKty58fVlJ0htJP9O4gw/TS2z7obOZ4LGjxcEc3qvR/u6q088ZDBy3znNdqwu6+TSkeVqrkWgSYWpOd4AeuObru7LhB3POlbx+w9r1hdGlZkKUuEq7R74AOEIcUA4NLNML7wEvKbUV1I/SZSOUlSXn6Puvo/vRzDIu5SWhNmDghUbxXd/2QJhVLmwItr/rCNve+mztEPEqKxyqUjoEqmU+f/gJfu1U8PAcT74Vh5ajuZzqnqUTBzCiGSVxBPaJzGnT7oAAjnOF43XJ+iXV5rGdsKb86nVPmefbawwJp84FPw2JEy3sGhAv+RuLETkQMUkS6ClhDI3mssK+02cVUsSMG2HwCsZLwOqtjlgXAIdwCH1RoCU1n4Sj/3Dc+MywVaqAGq+QGJG9rp8GoHTFzknEuhVEoxzz1O2opaqrDDHudAs4NjtNB3DIf/9hJEy3yeMX0OrQu8FmAcy3BIlRvVRxk5YgybGe46ewbfRwvmZAht46ERFpfKHsM9dzgdm0rhk6iZk4Fnjpr2GTM4KHyyaDWfPS4edf5jk+jjlqYWRQYmLf8hpDOaq5kVRoiE49y5assbR0OHxjy28RRzMQMeUoxn7rtmPjS/Dv7wFvQ7olviepz+7tQJDin3STryvCDlXr5h+DCVwFsNpEMEBQw5EI4R9cxx0UQUr3sx0LA/eqBM/fU3YfrYUPwboC+W75eLnkmDFxTIpc1dHFn4/cZ82QUJ3XWOtUeERLtilpNfbGJMIcqn+6NEXUe8/wSHLOJV7qCw6zlUpPxiuTg/ktYXRYo6LvJNMl5M/ETQhe7j2k3rjTo51vtpkfXqMBTeD8wLsGqJ/whtdXSzde69p71o177sXFjnLQVLLZxljydTa+yPMy5rDKNwdBZ0VRsxeKSQ4aPoLDDinj2LEgVrlFPwxLB7+DFX1VANJ5DKX29QNSa9M/ddOBQe43X37ntGfzGteXpdQ1O2guEzcBg1DMLZqXv3tYqCoHL12J4TjhTnWpVHgS+KrAjcSuD7xDVs8WIA80Y1YPawK2rWaOAt02Sqo4axVDCFlTQK/85t3IAIo9v9oyY3PJ5Vji5j1LbZRZRNztuIFrlhv+ebEuA8vOawzvSNvBi3o89AOxvAJsBUtG7oPgb2dmlPbFQzxh2/YKMkIelACebJwfEt+JvYoGPK0OY4YEC5Yphlij7Wg4DtN9nEi86T1/tA==
As a quick test, I made the following changes locally and it seems to run okay:

+++ b/services/sync/tests/unit/test_crypto_keypair.js
@@ -18,13 +18,16 @@ function run_test() {
 
   var pubOut = {};
   var privOut = {};
+  do {
   cryptoSvc.generateKeypair("my passphrase", salt, iv, pubOut, privOut);
+  dump(privOut.value.length + "\n");
+  } while (privOut.value.length == 1644);
   var pubKey = pubOut.value;
   var privKey = privOut.value;
   do_check_true(!!pubKey);
   do_check_true(!!privKey);
   do_check_eq(pubKey.length, 392);
-  do_check_eq(privKey.length, 1644);
+  do_check_eq(privKey.length, 1624);


TEST-INFO | (xpcshell/head.js) | test 1 pending
TEST-PASS | test_crypto_keypair.js | [run_test : 7] 24 == 24
TEST-PASS | test_crypto_keypair.js | [run_test : 10] 24 == 24
TEST-PASS | test_crypto_keypair.js | [run_test : 13] 44 == 44
TEST-PASS | test_crypto_keypair.js | [run_test : 17] 2048 == 2048
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1644
1624
TEST-PASS | test_crypto_keypair.js | [run_test : 27] true == true
TEST-PASS | test_crypto_keypair.js | [run_test : 28] true == true
TEST-PASS | test_crypto_keypair.js | [run_test : 29] 392 == 392
TEST-PASS | test_crypto_keypair.js | [run_test : 30] 1624 == 1624
TEST-PASS | test_crypto_keypair.js | [run_test : 34] 344 == 344
TEST-PASS | test_crypto_keypair.js | [run_test : 38] 44 == 44
TEST-PASS | test_crypto_keypair.js | [run_test : 41] 6mOz1Q9EF9d+GmCoMnSgUG1BmE2WZC8mgN5xUzF3PyQ= == 6mOz1Q9EF9d+GmCoMnSgUG1BmE2WZC8mgN5xUzF3PyQ=
TEST-PASS | test_crypto_keypair.js | [run_test : 46] 1024 == 1024
TEST-PASS | test_crypto_keypair.js | [run_test : 51] true == true
TEST-PASS | test_crypto_keypair.js | [run_test : 52] true == true
TEST-PASS | test_crypto_keypair.js | [run_test : 53] 216 == 216
TEST-PASS | test_crypto_keypair.js | [run_test : 54] 856 == 856
TEST-PASS | test_crypto_keypair.js | [run_test : 58] 172 == 172
TEST-PASS | test_crypto_keypair.js | [run_test : 61] 44 == 44
TEST-PASS | test_crypto_keypair.js | [run_test : 64] 6mOz1Q9EF9d+GmCoMnSgUG1BmE2WZC8mgN5xUzF3PyQ= == 6mOz1Q9EF9d+GmCoMnSgUG1BmE2WZC8mgN5xUzF3PyQ=
TEST-INFO | (xpcshell/head.js) | test 1 finished
TEST-INFO | (xpcshell/head.js) | exiting test
TEST-PASS | (xpcshell/head.js) | 19 (+ 0) check(s) passed
TEST-PASS | test_crypto_keypair.js | test passed
Attached patch v1Splinter Review
Assignee: nobody → edilee
Status: NEW → ASSIGNED
Attachment #471008 - Flags: review?(dolske)
Comment on attachment 471008 [details] [diff] [review]
v1

Lose the dump for checkin, please.
Attachment #471008 - Flags: review?(dolske) → review+
http://hg.mozilla.org/services/fx-sync/rev/fad95a796db4
http://hg.mozilla.org/mozilla-central/rev/5676d91f4d1c
Check for both 1624 and 1644 length private keys.
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
OS: Windows Server 2003 → All
Hardware: x86 → All
Resolution: --- → FIXED
Whiteboard: [orange] → [orange] [fixed mozilla-central 2.0b6]
Target Milestone: --- → 1.5
Whiteboard: [orange] [fixed mozilla-central 2.0b6] → [fixed mozilla-central 2.0b6]
Component: Firefox Sync: Crypto → Sync
Product: Cloud Services → Firefox
You need to log in before you can comment on or make changes to this bug.