Closed Bug 1274499 Opened 4 years ago Closed 4 years ago

Multiple test Mailnews failures/timeouts: test_gloda_content_imap_offline.js, test_gloda_content_local.js, test_index_addressbook.js and many more

Categories

(Core :: JavaScript Engine, defect)

defect
Not set

Tracking

()

RESOLVED FIXED
mozilla49
Tracking Status
firefox49 --- fixed

People

(Reporter: jorgk-bmo, Assigned: aleth)

References

Details

(Keywords: regression)

Attachments

(3 files)

First seen on C-C on 2016-05-19 (not seen 2016-05-17):

TEST-UNEXPECTED-FAIL | mailnews/db/gloda/test/unit/test_gloda_content_imap_offline.js | xpcshell return code: 0
TEST-UNEXPECTED-FAIL | mailnews/db/gloda/test/unit/test_gloda_content_local.js | xpcshell return code: 0
TEST-UNEXPECTED-FAIL | mailnews/db/gloda/test/unit/test_index_addressbook.js | xpcshell return code: 0
TEST-UNEXPECTED-FAIL | mailnews/db/gloda/test/unit/test_noun_mimetype.js | xpcshell return code: 0
TEST-UNEXPECTED-FAIL | mailnews/db/gloda/test/unit/test_index_messages_imap_offline.js | xpcshell return code: 0
TEST-UNEXPECTED-FAIL | mailnews/db/gloda/test/unit/test_index_junk_local.js | xpcshell return code: 0
TEST-UNEXPECTED-FAIL | mailnews/db/gloda/test/unit/test_index_messages_imap_online_to_offline.js | xpcshell return code: 0
TEST-UNEXPECTED-FAIL | mailnews/db/gloda/test/unit/test_index_junk_imap_online.js | xpcshell return code: 0
TEST-UNEXPECTED-FAIL | mailnews/db/gloda/test/unit/test_index_junk_imap_offline.js | xpcshell return code: 0
TEST-UNEXPECTED-FAIL | mailnews/db/gloda/test/unit/test_index_bad_messages.js | xpcshell return code: 0
TEST-UNEXPECTED-FAIL | mailnews/db/gloda/test/unit/test_corrupt_database.js | xpcshell return code: 0
TEST-UNEXPECTED-FAIL | mailnews/db/gloda/test/unit/test_cleanup_msf_databases.js | xpcshell return code: 0
TEST-UNEXPECTED-FAIL | mailnews/db/gloda/test/unit/test_folder_logic.js | xpcshell return code: 0
TEST-UNEXPECTED-FAIL | mailnews/db/gloda/test/unit/test_fts3_tokenizer.js | xpcshell return code: 0
TEST-UNEXPECTED-FAIL | mailnews/db/gloda/test/unit/test_index_compaction.js | xpcshell return code: 0
TEST-UNEXPECTED-FAIL | mailnews/db/gloda/test/unit/test_msg_search.js | xpcshell return code: 0
TEST-UNEXPECTED-FAIL | mailnews/db/gloda/test/unit/test_index_messages_local.js | xpcshell return code: 0
TEST-UNEXPECTED-FAIL | mailnews/db/gloda/test/unit/test_index_messages_imap_online.js | xpcshell return code: 0
TEST-UNEXPECTED-FAIL | mailnews/db/gloda/test/unit/test_index_sweep_folder.js | xpcshell return code: 0
TEST-UNEXPECTED-FAIL | mailnews/db/gloda/test/unit/test_intl.js | xpcshell return code: 0
TEST-UNEXPECTED-FAIL | mailnews/db/gloda/test/unit/test_migration.js | xpcshell return code: 0
TEST-UNEXPECTED-FAIL | mailnews/db/gloda/test/unit/test_query_messages_imap_offline.js | xpcshell return code: 0
TEST-UNEXPECTED-FAIL | mailnews/db/gloda/test/unit/test_query_core.js | xpcshell return code: 0
TEST-UNEXPECTED-FAIL | mailnews/db/gloda/test/unit/test_query_messages_imap_online.js | xpcshell return code: 0
TEST-UNEXPECTED-FAIL | mailnews/db/gloda/test/unit/test_query_messages_imap_online_to_offline.js | xpcshell return code: 0
TEST-UNEXPECTED-FAIL | mailnews/db/gloda/test/unit/test_query_messages_local.js | xpcshell return code: 0
TEST-UNEXPECTED-FAIL | mailnews/db/gloda/test/unit/test_startup_offline.js | xpcshell return code: 0 

Here a snippet from the log:

12:26:41     INFO -  TEST-FAIL | mailnews/db/gloda/test/unit/test_index_messages_imap_online_to_offline.js | took 109477ms
12:26:41     INFO -  TEST-START | mailnews/db/gloda/test/unit/test_query_messages_local.js
12:26:41     INFO -  Failed to remove directory: c:\users\cltbld\appdata\local\temp\xpc-plugins-ephhe5. Waiting.
12:26:42     INFO -  TEST-FAIL | mailnews/db/gloda/test/unit/test_index_junk_imap_online.js | took 112169ms
12:26:42     INFO -  TEST-FAIL | mailnews/db/gloda/test/unit/test_index_junk_imap_offline.js | took 112286ms
12:26:42     INFO -  mailnews/db/gloda/test/unit/test_gloda_content_local.js failed or timed out, will retry.
12:26:42     INFO -  Failed to remove directory: c:\users\cltbld\appdata\local\temp\xpc-plugins-85hund. Waiting.
12:26:42     INFO -  mailnews/db/gloda/test/unit/test_index_addressbook.js failed or timed out, will retry.
12:26:42     INFO -  mailnews/db/gloda/test/unit/test_noun_mimetype.js failed or timed out, will retry.
12:26:42     INFO -  Failed to remove directory: c:\users\cltbld\appdata\local\temp\xpc-plugins-ephhe5. Waiting.
12:26:42     INFO -  mailnews/db/gloda/test/unit/test_index_messages_imap_offline.js failed or timed out, will retry.
12:26:42     INFO -  mailnews/db/gloda/test/unit/test_index_junk_local.js failed or timed out, will retry.
12:26:43     INFO -  TEST-FAIL | mailnews/db/gloda/test/unit/test_cleanup_msf_databases.js | took 115085ms
12:26:43     INFO -  TEST-FAIL | mailnews/db/gloda/test/unit/test_corrupt_database.js | took 115085ms
12:26:43     INFO -  TEST-FAIL | mailnews/db/gloda/test/unit/test_fts3_tokenizer.js | took 115086ms
Some ReferenceErrors too (which may be harmless, but should be fixed anyway to reduce noise)
ReferenceError: reference to undefined property aAttrDef.objectNounDef.contributeObjDependencies" {file: "resource:///modules/gloda/gloda.js" line: 1838}
ReferenceError: reference to undefined property ims.waitingForIndexingCompletion" {file: "resources/glodaTestHelper.js" line: 673}
This fixes the tests for me. But I don't understand why, or why this broke. Any ideas?
Attachment #8754971 - Flags: feedback?(mkmelin+mozilla)
Assignee: nobody → aleth
Status: NEW → ASSIGNED
That fixes the whole lot?? Incredible.
Really strange indeed! We're likely hitting some js engine bug, I doubt this is intended.
Can't we just ask? I try.

Hi Jason, we're seeing some strange test failures in our xpcshell test suite for Thunderbird.

The errors go away when we apply either attachment 8754971 [details] [diff] [review] or attachment 8754984 [details] [diff] [review]. Somehow logical operators && and || behave strangely.

Do you know of any changes in JS in the last two to three days which could have caused this?
Flags: needinfo?(jorendorff)
(In reply to Magnus Melin from comment #6)
> Really strange indeed! We're likely hitting some js engine bug, I doubt this
> is intended.
Agreed, but why does this only break in the gloda test? I have a locally compiled version of TB in use and it works fine. I would expect it to fall apart if && and || have a problem ;-)
Yes, I think this has to be a JS engine bug. It's very surprising that this got through our test suite, though.

Of the stuff in that list, I think bug 1261826 is suspicious. It would help if you could bisect this. (If my hunch is correct, the bug does not appear in mozilla-central revision a7f37ab1e0c3, but does appear in mozilla-central revision 2e29695fee87.)

Detailed steps to reproduce will probably be necessary to get this fixed.
Flags: needinfo?(jorendorff)
> I have a locally compiled version of TB in use and it works fine.

Oh. Does this bug reproduce for anyone locally, or is it test servers only?
My local build is based on rev c67dc1f9fab8 and includes 2e29695fee87. As far as I can see TB works fine. I will run the test locally.
OK, I ran:
mozilla/mach xpcshell-test mailnews/db/gloda/test/unit/test_gloda_content_imap_offline.js

The test fails and I see as already reported in comment #1:
 0:04.41 LOG: Thread-1 INFO "CONSOLE_MESSAGE: (warn) [JavaScript Warning: "ReferenceError: reference to undefined proper
ty aAttrDef.objectNounDef.contributeObjDependencies" {file: "resource:///modules/gloda/gloda.js" line: 1838}]"
 0:04.42 LOG: Thread-1 ERROR Error console says [stackFrame ReferenceError: reference to undefined property aAttrDef.obj
ectNounDef.contributeObjDependencies]
Jason, could one or your colleagues build Thunderbird and simply run the xpcshell test to reproduce the problem? Surely finding a bug in your JS engine and your test suite is worth this effort.
(In reply to Jason Orendorff [:jorendorff] from comment #9)
> Of the stuff in that list, I think bug 1261826 is suspicious. It would help
> if you could bisect this. (If my hunch is correct, the bug does not appear
> in mozilla-central revision a7f37ab1e0c3, but does appear in mozilla-central
> revision 2e29695fee87.)

Your guess is correct, I checked with my local build and that indeed seems to be the regressing bug.
Blocks: 1261826
Keywords: regression
Flags: needinfo?(nicolas.b.pierron)
Component: General → JavaScript Engine
Product: Thunderbird → Core
Attachment #8754971 - Flags: feedback?(mkmelin+mozilla)
The problem comes from the addition of JumpTarget opcode.  Reference error are produced when we are looking for a property name, without having a direct test following the property access. The difference comes form [1].

before, we had something like:

  if… b
 a:
  getprop
 b:
  ifeq

and now we have something like

  if… b
 a:
  jumptarget
  getprop
 b:
  jumptarget
  ifeq

This change should be fixed by the part 5 of Bug 1261826.  I will attach it here, and apply the nits from Bug 1261826.

[1] https://dxr.mozilla.org/mozilla-central/source/js/src/vm/NativeObject.cpp#1926-1929
This patch walk make the Detecting function ignore all the jump target
opcodes, such that we can focus on the next instruction.

This fixes the added test case. (and also move the test case from which this
is inspired to the basic directory instead of jaeger)
Attachment #8755540 - Flags: review?(jorendorff)
Attachment #8755540 - Flags: review?(jorendorff) → review+
Flags: needinfo?(nicolas.b.pierron)
https://hg.mozilla.org/mozilla-central/rev/432400265fed
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla49
You need to log in before you can comment on or make changes to this bug.