Remove ANALYZE calls and use pragma OPTIMIZE(0x02) instead

RESOLVED FIXED in Firefox 56

Status

()

enhancement
P2
normal
RESOLVED FIXED
2 years ago
2 years ago

People

(Reporter: mak, Assigned: mayank, Mentored)

Tracking

(Blocks 1 bug, {good-first-bug})

Trunk
mozilla56
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox55 wontfix, firefox56 fixed)

Details

(Whiteboard: [good first bug])

Attachments

(1 attachment, 2 obsolete attachments)

Reporter

Description

2 years ago
This bug requires a little bit of both javascript and cpp knowledge.

PRAGMA optimize can execute a series of operations to improve db performance and analyze on-demand based on the current session.
I think we can remove some complication in the code and just run optimize before closing the main connection, as suggested by the Sqlite documentation.
For now we'll use 0x02 that will only execute analyze when needed, in the future we may want to enable other optimizations, but we won't allow it to create indices automatically.

This means:
1. remove toolkit/components/places/tests/expiration/test_analyze_runs.js
2. remove toolkit/components/places/tests/unit/test_analyze.js
3. remove any analyze related code from toolkit/components/places/nsPlacesExpiration.js
4. remove updateSQLiteStatistics from toolkit/components/places/Database.cpp
5. in Database::Shutdown() (Database.cpp) run an async statement doing "PRAGMA optimize(0x02)" before the AsyncClose() call.

bonus points for fixing bug 646278 too.
Reporter

Updated

2 years ago
Depends on: SQLite3.18.0
Reporter

Updated

2 years ago
Priority: -- → P2
Assignee

Comment 1

2 years ago
Hi, I am working on this bug.
Could you please highlight more on how do we know 'analyze' related code in point 3?
Also, to run PRAGMA optimize(0x02) in async. Is async statement specific to Sqlite or it is a firefox api?

Thanks
Flags: needinfo?(mak77)
Reporter

Comment 2

2 years ago
(In reply to Mayank [:mayank] from comment #1)
> Hi, I am working on this bug.
> Could you please highlight more on how do we know 'analyze' related code in
> point 3?

search for analyze in toolkit/components/places/nsPlacesExpiration.js, for example
http://searchfox.org/mozilla-central/search?q=analyze&path=toolkit%2Fcomponents%2Fplaces%2FnsPlacesExpiration.js

> Also, to run PRAGMA optimize(0x02) in async. Is async statement specific to
> Sqlite or it is a firefox api?

It's a mozStorage API. mozStorage is a wrapper around Sqlite. Look for createAsyncStatement, for example
http://searchfox.org/mozilla-central/rev/d4eaa9c2fa54d553349ac88f0c312155a4c6e89e/toolkit/components/places/Database.cpp#1385
(https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Storage)
Flags: needinfo?(mak77)
Assignee

Comment 3

2 years ago
Posted patch bug-1354032.patch (obsolete) — Splinter Review
Attaching a patch. Please review
Attachment #8858517 - Flags: review?(mak77)
Reporter

Comment 4

2 years ago
Comment on attachment 8858517 [details] [diff] [review]
bug-1354032.patch

Review of attachment 8858517 [details] [diff] [review]:
-----------------------------------------------------------------

It looks quite close to be ready

::: toolkit/components/places/Database.cpp
@@ +2224,5 @@
>    mClosed = true;
>  
> +  nsCOMPtr<mozIStorageAsyncStatement> optimizeStmt;
> +  mMainConn->CreateAsyncStatement(NS_LITERAL_CSTRING("PRAGMA optimize(0x02)"),
> +                                  getter_AddRefs(optimizeStmt));

This is not enough, you should also ExecuteAsync the statement you created, otherwise it's not doing anything.

::: toolkit/components/places/nsPlacesExpiration.js
@@ +158,5 @@
>    CLEAR_HISTORY:   1 << 3, // happens when history is cleared
>    SHUTDOWN_DIRTY:  1 << 4, // happens at shutdown for DIRTY state
>    IDLE_DIRTY:      1 << 5, // happens on idle for DIRTY state
>    IDLE_DAILY:      1 << 6, // happens once a day on idle
>    DEBUG:           1 << 7, // happens on TOPIC_DEBUG_START_EXPIRATION

you can edit the other values to fill up the value 2, since we always use these properties we can update the values without troubles.

@@ +587,4 @@
>  
>    notify: function PEX_timerCallback() {
>      // Check if we are over history capacity, if so visits must be expired.
>      this._getPagesStats((function onPagesCount(aPagesCount, aStatsCount) {

You removed the only use of the aStatsCount argument, so it can be removed from here and from _getPagesStats
In particular you can simplify the query in _getPagesStats to "SELECT COUNT(*) FROM moz_places"

::: toolkit/components/places/tests/expiration/xpcshell.ini
@@ +5,2 @@
>  # Bug 676989: test hangs consistently on Android
>  skip-if = os == "android"

These 2 lines refer to the line you removed, and thus should be removed as well
Attachment #8858517 - Flags: review?(mak77) → review-
Reporter

Comment 5

2 years ago
Hi Mayank, any news about this patch?
Flags: needinfo?(mayanksri18)
Assignee

Comment 6

2 years ago
(In reply to Marco Bonardo [::mak] from comment #5)
> Hi Mayank, any news about this patch?

Hi Marco,
   Keeping very busy these days, I will patch as soon as I can.
Assignee

Comment 7

2 years ago
Posted patch bug-1354032.patch (obsolete) — Splinter Review
Attaching updated patch. Please review.
Please assign the bug to my id.

Thanks
Attachment #8858517 - Attachment is obsolete: true
Flags: needinfo?(mayanksri18)
Attachment #8872629 - Flags: review?(mak77)
Reporter

Comment 8

2 years ago
Comment on attachment 8872629 [details] [diff] [review]
bug-1354032.patch

Review of attachment 8872629 [details] [diff] [review]:
-----------------------------------------------------------------

::: toolkit/components/places/Database.cpp
@@ +2224,5 @@
>    mClosed = true;
>  
> +  nsCOMPtr<mozIStorageAsyncStatement> optimizeStmt;
> +  nsresult rv = mMainConn->CreateAsyncStatement(NS_LITERAL_CSTRING("PRAGMA optimize(0x02)"),
> +                                  getter_AddRefs(optimizeStmt));

For consistency with sorrounding code, please indent so that arguments are aligned, or indent by 2 spaces. This would also work:
mMainConn->CreateAsyncStatement(NS_LITERAL_CSTRING(
  "PRAGMA optimize(0x02)"
), getter_AddRefs(optimizeStmt));

@@ +2227,5 @@
> +  nsresult rv = mMainConn->CreateAsyncStatement(NS_LITERAL_CSTRING("PRAGMA optimize(0x02)"),
> +                                  getter_AddRefs(optimizeStmt));
> +
> +  nsCOMPtr<mozIStoragePendingStatement> ps;
> +  rv = optimizeStmt->ExecuteAsync(nullptr, getter_AddRefs(ps));

There's a problem with error handling here, in the sense that rv is not handled.  On the other side, bailing out in case of errors would be wrong, this is important but it's more important to call asyncClose.

I'd suggest to do:
nsresult rv = ...
MOZ_ASSERT(NS_SUCCEEDED(rv));
if (NS_SUCCEEDED(rv)) {
  nsCOMPtr<mozIStoragePendingStatement> ps;
  rv = ...
  MOZ_ASSERT(NS_SUCCEEDED(rv));
}

So we'll crash in debug mode and proceed in optimize mode.

::: toolkit/components/places/nsPlacesExpiration.js
@@ +832,5 @@
>     */
>    _getPagesStats: function PEX__getPagesStats(aCallback) {
>      if (!this._cachedStatements["LIMIT_COUNT"]) {
>        this._cachedStatements["LIMIT_COUNT"] = this._db.createAsyncStatement(
> +        `SELECT (SELECT COUNT(*) FROM moz_places)`

Just "SELECT count(*) FROM moz_places"

@@ +837,5 @@
>        );
>      }
>      this._cachedStatements["LIMIT_COUNT"].executeAsync({
>        _pagesCount: 0,
>        _statsCount: 0,

more code that could be removed? this property and the code assigning to it.
also because the next this._statsCount = row.getResultByIndex(1); would throw and aCallback(this._pagesCount, this._statsCount); would be wrong.
Attachment #8872629 - Flags: review?(mak77) → review-
Reporter

Updated

2 years ago
Assignee: nobody → mayanksri18
Status: NEW → ASSIGNED
Reporter

Comment 9

2 years ago
Since I need this work for other pending stuff, and since I bitrotted the Database code recently, I will just update your patch with my comments and try to land it. It will still be considered your patch clearly.
Reporter

Updated

2 years ago
Blocks: 1275878
Reporter

Updated

2 years ago
Blocks: 646278
No longer depends on: 646278
Reporter

Comment 11

2 years ago
mozreview-review
Comment on attachment 8886772 [details]
Bug 1354032 - Remove Places analyze call and use PRAGMA optimize(0x02) for optimizations.

https://reviewboard.mozilla.org/r/157566/#review162690
Attachment #8886772 - Flags: review?(mak77) → review+
Reporter

Updated

2 years ago
Attachment #8872629 - Attachment is obsolete: true

Comment 12

2 years ago
hg error in cmd: hg push -r tip ssh://hg.mozilla.org/integration/autoland: pushing to ssh://hg.mozilla.org/integration/autoland
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 5 changes to 5 files
remote: 
remote: 
remote: ************************** ERROR ****************************
remote: Rev d865f0c1cdaa needs "Bug N" or "No bug" in the commit message.
remote: Mayank Srivastav <mayanksri18@yahoo.in>
remote: Bug-1354032 Remove Places analyze call and use PRAGMA optimize(0x02) for optimizations. r=mak
remote: 
remote: MozReview-Commit-ID: AOkh3vOKD4E
remote: *************************************************************
remote: 
remote: 
remote: transaction abort!
remote: rollback completed
remote: pretxnchangegroup.c_commitmessage hook failed
abort: push failed on remote
Comment hidden (mozreview-request)

Comment 14

2 years ago
Pushed by mak77@bonardo.net:
https://hg.mozilla.org/integration/autoland/rev/03b8979ccf32
Remove Places analyze call and use PRAGMA optimize(0x02) for optimizations. r=mak
Backed out for failing database-related mochitests, e.g. browser/components/resistfingerprinting/test/mochitest/test_geolocation.html:

https://hg.mozilla.org/integration/autoland/rev/a52251be8386b70d9d275c3ea83b66ffcddfc381

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&revision=03b8979ccf320b4b58e78ce9408949941faf5fa0&filter-resultStatus=testfailed&filter-resultStatus=busted&filter-resultStatus=exception&filter-resultStatus=retry&filter-resultStatus=usercancel&filter-resultStatus=runnable
Failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=114576167&repo=autoland
[task 2017-07-15T13:15:50.301848Z] 13:15:50     INFO - TEST-START | Shutdown
[task 2017-07-15T13:15:50.302323Z] 13:15:50     INFO - Passed:  4
[task 2017-07-15T13:15:50.305420Z] 13:15:50     INFO - Failed:  0
[task 2017-07-15T13:15:50.308694Z] 13:15:50     INFO - Todo:    0
[task 2017-07-15T13:15:50.308983Z] 13:15:50     INFO - Mode:    non-e10s
[task 2017-07-15T13:15:50.314105Z] 13:15:50     INFO - Slowest: 2420ms - /tests/browser/components/resistfingerprinting/test/mochitest/test_geolocation.html
[task 2017-07-15T13:15:50.320460Z] 13:15:50     INFO - SimpleTest FINISHED
[task 2017-07-15T13:15:50.322734Z] 13:15:50     INFO - TEST-INFO | Ran 1 Loops
[task 2017-07-15T13:15:50.329070Z] 13:15:50     INFO - SimpleTest FINISHED
[task 2017-07-15T13:15:51.135482Z] 13:15:51     INFO - GECKO(1654) | --DOCSHELL 0x7f3a78d4b800 == 4 [pid = 1654] [id = {2c886f53-3f52-4de6-b115-489d0f3399ed}]
[task 2017-07-15T13:15:51.358661Z] 13:15:51     INFO - GECKO(1654) | --DOCSHELL 0x7f3aa0897800 == 3 [pid = 1654] [id = {835aafd2-0440-4618-9895-89a26d9c6bbd}]
[task 2017-07-15T13:15:51.702520Z] 13:15:51     INFO - GECKO(1654) | [1654] WARNING: SQL statement 'PRAGMA optimize(0x02)' (7f3a6b4de8a0) should have been finalized before closing the connection: file /home/worker/workspace/build/src/storage/mozStorageConnection.cpp, line 1062
[task 2017-07-15T13:15:51.720047Z] 13:15:51     INFO - GECKO(1654) | Assertion failure: false (Had to forcibly close the database connection because not all the statements have been finalized.), at /home/worker/workspace/build/src/storage/mozStorageConnection.cpp:1088
[task 2017-07-15T13:16:34.843878Z] 13:16:34     INFO - GECKO(1654) | #01: AsyncCloseConnection::Run [storage/mozStorageConnection.cpp:402]
[task 2017-07-15T13:16:34.844323Z] 13:16:34     INFO - 
[task 2017-07-15T13:16:34.846640Z] 13:16:34     INFO - GECKO(1654) | #02: nsThread::ProcessNextEvent [mfbt/ScopeExit.h:111]
[task 2017-07-15T13:16:34.846899Z] 13:16:34     INFO - 
[task 2017-07-15T13:16:34.848482Z] 13:16:34     INFO - GECKO(1654) | #03: NS_ProcessNextEvent [xpcom/threads/nsThreadUtils.cpp:489]
[task 2017-07-15T13:16:34.850032Z] 13:16:34     INFO - 
[task 2017-07-15T13:16:34.853798Z] 13:16:34     INFO - GECKO(1654) | #04: mozilla::ipc::MessagePumpForNonMainThreads::Run [ipc/glue/MessagePump.cpp:369]
[task 2017-07-15T13:16:34.855487Z] 13:16:34     INFO - 
[task 2017-07-15T13:16:34.857553Z] 13:16:34     INFO - GECKO(1654) | #05: MessageLoop::RunInternal [ipc/chromium/src/base/message_loop.cc:321]
[task 2017-07-15T13:16:34.859570Z] 13:16:34     INFO - 
[task 2017-07-15T13:16:34.864373Z] 13:16:34     INFO - GECKO(1654) | #06: MessageLoop::Run [ipc/chromium/src/base/message_loop.cc:587]
[task 2017-07-15T13:16:34.867471Z] 13:16:34     INFO - 
[task 2017-07-15T13:16:34.869664Z] 13:16:34     INFO - GECKO(1654) | #07: nsThread::ThreadFunc [xpcom/threads/nsThread.cpp:508]
[task 2017-07-15T13:16:34.871340Z] 13:16:34     INFO - 
[task 2017-07-15T13:16:34.955567Z] 13:16:34     INFO - GECKO(1654) | #08: _pt_root [nsprpub/pr/src/pthreads/ptthread.c:219]
[task 2017-07-15T13:16:34.958375Z] 13:16:34     INFO - 
[task 2017-07-15T13:16:34.960078Z] 13:16:34     INFO - GECKO(1654) | #09: libpthread.so.0 + 0x76ba
[task 2017-07-15T13:16:34.960351Z] 13:16:34     INFO - 
[task 2017-07-15T13:16:34.962682Z] 13:16:34     INFO - GECKO(1654) | #10: libc.so.6 + 0x10682d
[task 2017-07-15T13:16:34.963112Z] 13:16:34     INFO - 
[task 2017-07-15T13:16:34.964664Z] 13:16:34     INFO - GECKO(1654) | #11: ??? (???:???)
[task 2017-07-15T13:16:34.967166Z] 13:16:34     INFO - GECKO(1654) | ExceptionHandler::GenerateDump cloned child 1721
[task 2017-07-15T13:16:34.969160Z] 13:16:34     INFO - GECKO(1654) | ExceptionHandler::SendContinueSignalToChild sent continue signal to child
[task 2017-07-15T13:16:34.971062Z] 13:16:34     INFO - GECKO(1654) | ExceptionHandler::WaitForContinueSignal waiting for continue signal...
[task 2017-07-15T13:16:34.985259Z] 13:16:34     INFO - TEST-INFO | Main app process: exit 11
[task 2017-07-15T13:16:34.988153Z] 13:16:34     INFO - Buffered messages finished
[task 2017-07-15T13:16:34.990255Z] 13:16:34    ERROR - TEST-UNEXPECTED-FAIL | browser/components/resistfingerprinting/test/mochitest/test_geolocation.html | application terminated with exit code 11
[task 2017-07-15T13:16:35.002106Z] 13:16:34     INFO - runtests.py | Application ran for: 0:01:03.039669
[task 2017-07-15T13:16:35.003834Z] 13:16:35     INFO - zombiecheck | Reading PID log: /tmp/tmpxb3pQhpidlog
[task 2017-07-15T13:16:35.005206Z] 13:16:35     INFO - ==> process 1654 launched child process 1672
[task 2017-07-15T13:16:35.006572Z] 13:16:35     INFO - zombiecheck | Checking for orphan process with PID: 1672
[task 2017-07-15T13:16:35.008374Z] 13:16:35     INFO - mozcrash Copy/paste: /usr/local/bin/linux64-minidump_stackwalk /tmp/tmpCTH5HV.mozrunner/minidumps/3a6b0b32-47e5-0bb4-4de4-7048aad27b19.dmp /home/worker/workspace/build/symbols
[task 2017-07-15T13:16:56.749593Z] 13:16:56     INFO - mozcrash Saved minidump as /home/worker/workspace/build/blobber_upload_dir/3a6b0b32-47e5-0bb4-4de4-7048aad27b19.dmp
[task 2017-07-15T13:16:56.826096Z] 13:16:56     INFO - mozcrash Saved app info as /home/worker/workspace/build/blobber_upload_dir/3a6b0b32-47e5-0bb4-4de4-7048aad27b19.extra
[task 2017-07-15T13:16:57.134646Z] 13:16:57     INFO - PROCESS-CRASH | browser/components/resistfingerprinting/test/mochitest/test_geolocation.html | application crashed [@ mozilla::storage::Connection::internalClose]
[task 2017-07-15T13:16:57.137315Z] 13:16:57     INFO - Crash dump filename: /tmp/tmpCTH5HV.mozrunner/minidumps/3a6b0b32-47e5-0bb4-4de4-7048aad27b19.dmp
[task 2017-07-15T13:16:57.139145Z] 13:16:57     INFO - Operating system: Linux
[task 2017-07-15T13:16:57.141001Z] 13:16:57     INFO -                   0.0.0 Linux 3.13.0-100-generic #147-Ubuntu SMP Tue Oct 18 16:48:51 UTC 2016 x86_64
[task 2017-07-15T13:16:57.142678Z] 13:16:57     INFO - CPU: amd64
[task 2017-07-15T13:16:57.144388Z] 13:16:57     INFO -      family 6 model 45 stepping 7
[task 2017-07-15T13:16:57.146599Z] 13:16:57     INFO -      1 CPU
[task 2017-07-15T13:16:57.148279Z] 13:16:57     INFO - 
[task 2017-07-15T13:16:57.155054Z] 13:16:57     INFO - GPU: UNKNOWN
[task 2017-07-15T13:16:57.156792Z] 13:16:57     INFO - 
[task 2017-07-15T13:16:57.158460Z] 13:16:57     INFO - Crash reason:  SIGSEGV
[task 2017-07-15T13:16:57.160150Z] 13:16:57     INFO - Crash address: 0x0
[task 2017-07-15T13:16:57.161846Z] 13:16:57     INFO - Process uptime: not available
[task 2017-07-15T13:16:57.163489Z] 13:16:57     INFO - 
[task 2017-07-15T13:16:57.165221Z] 13:16:57     INFO - Thread 34 (crashed)
[task 2017-07-15T13:16:57.167064Z] 13:16:57     INFO -  0  libxul.so!mozilla::storage::Connection::internalClose [mozStorageConnection.cpp:03b8979ccf32 : 1016 + 0x18]
[task 2017-07-15T13:16:57.168867Z] 13:16:57     INFO -     rax = 0x0000000000000000   rdx = 0x0000000000000000
[task 2017-07-15T13:16:57.171185Z] 13:16:57     INFO -     rcx = 0x00007f3aa0b976fd   rbx = 0x0000000000000000
[task 2017-07-15T13:16:57.172967Z] 13:16:57     INFO -     rsi = 0x00007f3aa0e66770   rdi = 0x00007f3aa0e65540
[task 2017-07-15T13:16:57.178167Z] 13:16:57     INFO -     rbp = 0x00007f3a6b2feb30   rsp = 0x00007f3a6b2fea80
[task 2017-07-15T13:16:57.180061Z] 13:16:57     INFO -      r8 = 0x00007f3aa0e66770    r9 = 0x00007f3a6b2ff700
[task 2017-07-15T13:16:57.181862Z] 13:16:57     INFO -     r10 = 0x0000000000000012   r11 = 0x0000000000000000
[task 2017-07-15T13:16:57.183626Z] 13:16:57     INFO -     r12 = 0x00007f3a6b2feaa0   r13 = 0x00007f3a6b2fea98
[task 2017-07-15T13:16:57.185443Z] 13:16:57     INFO -     r14 = 0x00007f3a6c051400   r15 = 0x00007f3a6b466960
[task 2017-07-15T13:16:57.187151Z] 13:16:57     INFO -     rip = 0x00007f3a90568516
[task 2017-07-15T13:16:57.188905Z] 13:16:57     INFO -     Found by: given as instruction pointer in context
[task 2017-07-15T13:16:57.190730Z] 13:16:57     INFO -  1  libxul.so!AsyncCloseConnection::Run [mozStorageConnection.cpp:03b8979ccf32 : 399 + 0x5]
[task 2017-07-15T13:16:57.192526Z] 13:16:57     INFO -     rbx = 0x00007f3a6b3462c0   rbp = 0x00007f3a6b2feb80
[task 2017-07-15T13:16:57.194268Z] 13:16:57     INFO -     rsp = 0x00007f3a6b2feb40   r12 = 0x00007f3a6b466940
[task 2017-07-15T13:16:57.196588Z] 13:16:57     INFO -     r13 = 0x00007f3a6b2feb58   r14 = 0x00007f3a6b2feb48
[task 2017-07-15T13:16:57.198329Z] 13:16:57     INFO -     r15 = 0x00007f3a6b2febd8   rip = 0x00007f3a9056a6f5
[task 2017-07-15T13:16:57.200059Z] 13:16:57     INFO -     Found by: call frame info
[task 2017-07-15T13:16:57.201898Z] 13:16:57     INFO -  2  libxul.so!nsThread::ProcessNextEvent [nsThread.cpp:03b8979ccf32 : 1437 + 0x11]
[task 2017-07-15T13:16:57.203667Z] 13:16:57     INFO -     rbx = 0x00007f3a71b50650   rbp = 0x00007f3a6b2fed20
[task 2017-07-15T13:16:57.205428Z] 13:16:57     INFO -     rsp = 0x00007f3a6b2feb90   r12 = 0x00007f3a6b2fec90
[task 2017-07-15T13:16:57.207164Z] 13:16:57     INFO -     r13 = 0x00007f3a6b2fec68   r14 = 0x00007f3a6b2fec00
[task 2017-07-15T13:16:57.208913Z] 13:16:57     INFO -     r15 = 0x00007f3a6b2febd8   rip = 0x00007f3a8fe2b2f3
[task 2017-07-15T13:16:57.210611Z] 13:16:57     INFO -     Found by: call frame info
[task 2017-07-15T13:16:57.213109Z] 13:16:57     INFO -  3  libxul.so!NS_ProcessNextEvent [nsThreadUtils.cpp:03b8979ccf32 : 489 + 0x11]
[task 2017-07-15T13:16:57.214893Z] 13:16:57     INFO -     rbx = 0x00007f3a71b50650   rbp = 0x00007f3a6b2fed50
[task 2017-07-15T13:16:57.217131Z] 13:16:57     INFO -     rsp = 0x00007f3a6b2fed30   r12 = 0x0000000000000001
[task 2017-07-15T13:16:57.218924Z] 13:16:57     INFO -     r13 = 0x00007f3a6b45e7b0   r14 = 0x00007f3a71b50650
[task 2017-07-15T13:16:57.220720Z] 13:16:57     INFO -     r15 = 0x00007f3a71b50600   rip = 0x00007f3a8fe26f45
[task 2017-07-15T13:16:57.222418Z] 13:16:57     INFO -     Found by: call frame info
[task 2017-07-15T13:16:57.224256Z] 13:16:57     INFO -  4  libxul.so!mozilla::ipc::MessagePumpForNonMainThreads::Run [MessagePump.cpp:03b8979ccf32 : 369 + 0xd]
[task 2017-07-15T13:16:57.226030Z] 13:16:57     INFO -     rbx = 0x00007f3a6b45e780   rbp = 0x00007f3a6b2fedc0
[task 2017-07-15T13:16:57.227783Z] 13:16:57     INFO -     rsp = 0x00007f3a6b2fed60   r12 = 0x00007f3a6dadaf80
[task 2017-07-15T13:16:57.229561Z] 13:16:57     INFO -     r13 = 0x00007f3a6b45e7b0   r14 = 0x00007f3a71b50650
[task 2017-07-15T13:16:57.231324Z] 13:16:57     INFO -     r15 = 0x00007f3a71b50600   rip = 0x00007f3a901ddb94
[task 2017-07-15T13:16:57.233055Z] 13:16:57     INFO -     Found by: call frame info
[task 2017-07-15T13:16:57.234832Z] 13:16:57     INFO -  5  libxul.so!MessageLoop::RunInternal [message_loop.cc:03b8979ccf32 : 320 + 0x17]
[task 2017-07-15T13:16:57.239194Z] 13:16:57     INFO -     rbx = 0x00007f3a6dadaf80   rbp = 0x00007f3a6b2fee00
[task 2017-07-15T13:16:57.241573Z] 13:16:57     INFO -     rsp = 0x00007f3a6b2fedd0   r12 = 0x00007f3a6b2fee70
[task 2017-07-15T13:16:57.243385Z] 13:16:57     INFO -     r13 = 0x00007f3a6b2fee80   r14 = 0x00007f3a6dadaf80
[task 2017-07-15T13:16:57.245193Z] 13:16:57     INFO -     r15 = 0x00007f3a71b50678   rip = 0x00007f3a901b1409
[task 2017-07-15T13:16:57.246921Z] 13:16:57     INFO -     Found by: call frame info
[task 2017-07-15T13:16:57.248698Z] 13:16:57     INFO -  6  libxul.so!MessageLoop::Run [message_loop.cc:03b8979ccf32 : 313 + 0x8]
[task 2017-07-15T13:16:57.250455Z] 13:16:57     INFO -     rbx = 0x00007f3a6dadaf80   rbp = 0x00007f3a6b2fee40
[task 2017-07-15T13:16:57.252194Z] 13:16:57     INFO -     rsp = 0x00007f3a6b2fee10   r12 = 0x00007f3a6b2fee70
[task 2017-07-15T13:16:57.253958Z] 13:16:57     INFO -     r13 = 0x00007f3a6b2fee80   r14 = 0x00007f3a6dadaf80
[task 2017-07-15T13:16:57.255897Z] 13:16:57     INFO -     r15 = 0x00007f3a71b50678   rip = 0x00007f3a901b1430
[task 2017-07-15T13:16:57.257891Z] 13:16:57     INFO -     Found by: call frame info
[task 2017-07-15T13:16:57.259697Z] 13:16:57     INFO -  7  libxul.so!nsThread::ThreadFunc [nsThread.cpp:03b8979ccf32 : 506 + 0x8]
[task 2017-07-15T13:16:57.261492Z] 13:16:57     INFO -     rbx = 0x00007f3a71b50650   rbp = 0x00007f3a6b2feec0
[task 2017-07-15T13:16:57.264122Z] 13:16:57     INFO -     rsp = 0x00007f3a6b2fee50   r12 = 0x00007f3a6b2fee70
[task 2017-07-15T13:16:57.265947Z] 13:16:57     INFO -     r13 = 0x00007f3a6b2fee80   r14 = 0x00007f3a6dadaf80
[task 2017-07-15T13:16:57.267693Z] 13:16:57     INFO -     r15 = 0x00007f3a71b50678   rip = 0x00007f3a8fe27113
[task 2017-07-15T13:16:57.269422Z] 13:16:57     INFO -     Found by: call frame info
[task 2017-07-15T13:16:57.271180Z] 13:16:57     INFO -  8  libnspr4.so!_pt_root [ptthread.c:03b8979ccf32 : 216 + 0x7]
[task 2017-07-15T13:16:57.272959Z] 13:16:57     INFO -     rbx = 0x00007f3a6b466a60   rbp = 0x00007f3a6b2fef10
[task 2017-07-15T13:16:57.274767Z] 13:16:57     INFO -     rsp = 0x00007f3a6b2feed0   r12 = 0x0000000000000000
[task 2017-07-15T13:16:57.276533Z] 13:16:57     INFO -     r13 = 0x00000000000006ac   r14 = 0x00007f3a6b2ff700
[task 2017-07-15T13:16:57.278282Z] 13:16:57     INFO -     r15 = 0x00007f3a6b2ff670   rip = 0x00007f3aa03d2f97
[task 2017-07-15T13:16:57.279963Z] 13:16:57     INFO -     Found by: call frame info
[task 2017-07-15T13:16:57.281811Z] 13:16:57     INFO -  9  libpthread-2.23.so + 0x76ba
[task 2017-07-15T13:16:57.283879Z] 13:16:57     INFO -     rbx = 0x0000000000000000   rbp = 0x0000000000000000
[task 2017-07-15T13:16:57.286025Z] 13:16:57     INFO -     rsp = 0x00007f3a6b2fef20   r12 = 0x0000000000000000
[task 2017-07-15T13:16:57.287813Z] 13:16:57     INFO -     r13 = 0x00007ffc0706b40f   r14 = 0x00007f3a6b2ff9c0
[task 2017-07-15T13:16:57.289590Z] 13:16:57     INFO -     r15 = 0x00007ffc0706b4a0   rip = 0x00007f3aa1b1e6ba
[task 2017-07-15T13:16:57.291281Z] 13:16:57     INFO -     Found by: call frame info
[task 2017-07-15T13:16:57.292978Z] 13:16:57     INFO - 10  libc-2.23.so + 0x10682d
[task 2017-07-15T13:16:57.294716Z] 13:16:57     INFO -     rsp = 0x00007f3a6b2fefc0   rip = 0x00007f3aa0ba782d
[task 2017-07-15T13:16:57.296479Z] 13:16:57     INFO -     Found by: stack scanning
Flags: needinfo?(mak77)
Assignee

Comment 16

2 years ago
(In reply to Marco Bonardo [::mak] from comment #11)
> Comment on attachment 8886772 [details]
> Bug 1354032 - Remove Places analyze call and use PRAGMA optimize(0x02) for
> optimizations.
> 
> https://reviewboard.mozilla.org/r/157566/#review162690

Thanks Marco. Actually my Mozilla setup is corrupted so I am not able to work further on this. It will take time for me to set up again. Please go ahead with your modifications.
Comment hidden (mozreview-request)

Comment 18

2 years ago
Pushed by mak77@bonardo.net:
https://hg.mozilla.org/integration/autoland/rev/f32a1cf344aa
Remove Places analyze call and use PRAGMA optimize(0x02) for optimizations. r=mak
Reporter

Comment 19

2 years ago
I filed bug 1381458 about the issue we hit with unfinalized statements. For now here I just moved to a simpler API call that will basically just do the same without causing finalization races.
Flags: needinfo?(mak77)

Comment 20

2 years ago
bugherder
https://hg.mozilla.org/mozilla-central/rev/f32a1cf344aa
Status: ASSIGNED → RESOLVED
Last Resolved: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla56
Too late for 55. Mark 55 won't fix.
Duplicate of this bug: 1358971
You need to log in before you can comment on or make changes to this bug.