Closed Bug 1354121 Opened 8 years ago Closed 8 years ago

Massive test failure in mailnews/db/gloda/test/unit/ - 28 tests fail

Categories

(MailNews Core :: Search, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
Thunderbird 55.0

People

(Reporter: jorgk-bmo, Assigned: jorgk-bmo)

References

Details

(Whiteboard: [Thunderbird-testfailure: X all])

Attachments

(1 file, 5 obsolete files)

TEST-UNEXPECTED-FAIL | mailnews/db/gloda/test/unit/test_mime_emitter.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_index_addressbook.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_index_junk_imap_online.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_index_junk_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_offline.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_fts3_tokenizer.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_messages_imap_online.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_folder_logic.js | xpcshell return code: 0 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_noun_mimetype.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_intl.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_sweep_folder.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_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 TEST-UNEXPECTED-FAIL | mailnews/db/gloda/test/unit/test_query_core.js | xpcshell return code: 0 M-C last good: ec8d1d3db50c85037e8077c32c8403570a M-C first bad: 3c68d659c2b715f811708f043a1e7169d7 https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=ec8d1d3db50c85037e8077c32c8403570a&tochange=3c68d659c2b715f811708f043a1e7169d7 Sadly this started failing with a Daily run so there is no debug version to inspect the log in detail.
Maybe that's a clue: Assertion failure: false (You are trying to use a deprecated mozStorage method. Check error message in console to identify the method name.), at c:/mozilla-source/comm-central/mozilla/storage/mozStorageStatement.cpp:888 #01: nsFts3Tokenizer::RegisterTokenizer (c:\mozilla-source\comm-central\mailnews\extensions\fts3\src\nsfts3tokenizer.cpp:49) There has been a problem with this before: Bug 1252937.
OK, found it, bug 1007034: https://hg.mozilla.org/mozilla-central/rev/c2f7bd2c69db I'll have to disable the assert locally. Aceman, can you take a look at this.
Blocks: 1007034
Flags: needinfo?(acelists)
Error console says: mozilla::storage::Statement::BindUTF8StringParameter is deprecated and will be removed soon. (unknown) mozilla::storage::Statement::BindBlobParameter is deprecated and will be removed soon. (unknown) mozilla::storage::Statement::BindStringParameter is deprecated and will be removed soon. (unknown) mozilla::storage::Statement::BindInt64Parameter is deprecated and will be removed soon. (unknown) mozilla::storage::AsyncStatement::BindInt64Parameter is deprecated and will be removed soon. (unknown) mozilla::storage::AsyncStatement::BindStringParameter is deprecated and will be removed soon. (unknown) mozilla::storage::AsyncStatement::BindInt64Parameter is deprecated and will be removed soon. (unknown) mozilla::storage::AsyncStatement::BindStringParameter is deprecated and will be removed soon. (unknown) mozilla::storage::AsyncStatement::BindInt64Parameter is deprecated and will be removed soon. (unknown) Gloda is using those all over the place: https://dxr.mozilla.org/comm-central/search?q=indInt64Parameter&redirect=false And it's all deprecated: https://dxr.mozilla.org/comm-central/rev/2a593ea93f6637df49eedc998b1f5ae4781a0f56/mozilla/storage/mozIStorageBaseStatement.idl#55
Looks like bug 645049 has the information we need: https://hg.mozilla.org/mozilla-central/rev/046c166f999f - stmt.bindStringParameter(0, "foo%20" + LATIN1_ae + "/_bar"); + stmt.bindByIndex(0, "foo%20" + LATIN1_ae + "/_bar"); function test_add_data() { var stmt = makeTestStatement( "INSERT INTO test (id, string, number, nuller, blober) " + "VALUES (?, ?, ?, ?, ?)" ); - stmt.bindBlobParameter(4, BLOB, BLOB.length); - stmt.bindNullParameter(3); - stmt.bindDoubleParameter(2, REAL); - stmt.bindStringParameter(1, TEXT); - stmt.bindInt32Parameter(0, INTEGER); + stmt.bindBlobByIndex(4, BLOB, BLOB.length); + stmt.bindByIndex(3, null); + stmt.bindByIndex(2, REAL); + stmt.bindByIndex(1, TEXT); + stmt.bindByIndex(0, INTEGER);
yep, in cpp please either use bindXXXByIndex or bindXXXByName, don't use bindMMMParameter. in js please use bindByIndex or bindByName.
It seems all our uses are in JS. So when to use ByIndex and when ByName? Also these are very few remaining uses in m-c (in a single file). Then you could remove the functions.
Flags: needinfo?(acelists) → needinfo?(mak77)
Looks like bindByIndex has the same inferface as bindXXXParameter. So it's bindByIndex. What am I missing?
Maybe something like this?
Attachment #8855501 - Flags: feedback?(acelists)
Like this.
Attachment #8855501 - Attachment is obsolete: true
Attachment #8855501 - Flags: feedback?(acelists)
Attachment #8855506 - Flags: feedback?(acelists)
Fixed obvious find/replace errors in previous patch.
Attachment #8855506 - Attachment is obsolete: true
Attachment #8855506 - Flags: feedback?(acelists)
Comment on attachment 8855512 [details] [diff] [review] WIP: 1354121-bind-parameter.patch (v3). Review of attachment 8855512 [details] [diff] [review]: ----------------------------------------------------------------- OK, after fixing the remaining typo below the gloda xpcshell tests work for me locally (but I do not have the broken m-c version so please push to try). ::: mailnews/db/gloda/modules/datastore.js @@ +3044,5 @@ > * purged. > */ > clearMessageAttributes: function gloda_ds_clearMessageAttributes(aMessage) { > if (aMessage.id != null) { > + this._deleteMessageAttributesByMessageIDstatement.bindByIndex(0, IDStatement
Attachment #8855512 - Flags: review+
With fixed typo.
Attachment #8855512 - Attachment is obsolete: true
Flags: needinfo?(mak77)
Attachment #8855531 - Flags: review+
Assignee: nobody → jorgk
Status: NEW → ASSIGNED
Component: General → Search
Product: Thunderbird → MailNews Core
Version: unspecified → Trunk
Attached patch 1354121-bind-parameter.patch (obsolete) — Splinter Review
Another simplification.
Attachment #8855531 - Attachment is obsolete: true
Attachment #8855537 - Flags: review+
Missed some bits in previous version. Also needed C++ changes.
Attachment #8855537 - Attachment is obsolete: true
Attachment #8855571 - Flags: review+
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → Thunderbird 55.0
sorry for late answer, your changes look good. bindByName is to be used when you want to bind a param by name, for example SELECT * FROM table WHERE field = :val you could either use bindByIndex(0, ...) or bindByName("val", ...)
(In reply to :aceman from comment #6) > Also these are very few remaining uses in m-c (in a single file). Then you > could remove the functions. Yes, that was the scope of the change, the only remaining thing is the definitions in mozIStorageBaseStatement.idl that are deprecated. In a couple versions we'll remove them.
(In reply to Marco Bonardo [::mak] from comment #16) > sorry for late answer, your changes look good. Marco, thanks for your support, we got it sorted out.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: