Commit Graph

83 Commits

Author SHA1 Message Date
Marco Bonardo
1d1df3d74b Bug 1470961 - Remove unnecessary use of SQLITE_IGNORE. r=asuth
MozReview-Commit-ID: GhZzTzLULWp
2018-06-26 13:50:57 +02:00
Markus Stange
7fdcc7bfbd Bug 1462784 - Remove the STORAGE category. r=njn
This was used to label IndexedDB work and work in storage/mozStorage*.
I don't think this deserves its own category; categories are most useful for
the main thread, and most of the time-consuming database-related work happens
on helper threads. The main thread pieces are mostly for asynchronicity-
coordination and don't usually take up time.

This patch labels IndexedDB work as DOM instead (which is maybe debatable) and
the rest as OTHER.

MozReview-Commit-ID: 3UYhFFbi3Ry
2018-05-18 17:55:18 -04:00
Csoregi Natalia
27ccec9c4c Backed out 18 changesets (bug 1462784) for ESlint failure on FlameGraph.js:1297. CLOSED TREE
Backed out changeset 79556798ff9f (bug 1462784)
Backed out changeset 88321efb673b (bug 1462784)
Backed out changeset 7880f9dc7023 (bug 1462784)
Backed out changeset 71fe35fd1f7e (bug 1462784)
Backed out changeset a543b94b049a (bug 1462784)
Backed out changeset d1ca8b0f2221 (bug 1462784)
Backed out changeset 68eabfbf3c16 (bug 1462784)
Backed out changeset 34e71c789903 (bug 1462784)
Backed out changeset 6fe79d1ca1bd (bug 1462784)
Backed out changeset e5ad2e525ea9 (bug 1462784)
Backed out changeset 329645ff1e23 (bug 1462784)
Backed out changeset e09c38853172 (bug 1462784)
Backed out changeset 0663d1a6d2da (bug 1462784)
Backed out changeset 106967fc29d2 (bug 1462784)
Backed out changeset 99b4a433a8e5 (bug 1462784)
Backed out changeset 1d38a4cf5a4a (bug 1462784)
Backed out changeset 692017229de6 (bug 1462784)
Backed out changeset c2911a626671 (bug 1462784)
2018-06-01 23:42:00 +03:00
Markus Stange
e5120daf52 Bug 1462784 - Remove the STORAGE category. r=njn
This was used to label IndexedDB work and work in storage/mozStorage*.
I don't think this deserves its own category; categories are most useful for
the main thread, and most of the time-consuming database-related work happens
on helper threads. The main thread pieces are mostly for asynchronicity-
coordination and don't usually take up time.

This patch labels IndexedDB work as DOM instead (which is maybe debatable) and
the rest as OTHER.

MozReview-Commit-ID: 3UYhFFbi3Ry
2018-05-18 17:55:18 -04:00
Noemi Erli
3946d17555 Backed out 18 changesets (bug 1462784) for failures in devtools/client/performance/test/unit/test_tree-model-08.js on a CLOSED TREE
Backed out changeset a74d36598442 (bug 1462784)
Backed out changeset c8192175f360 (bug 1462784)
Backed out changeset cde492240e99 (bug 1462784)
Backed out changeset 8c8d30fa406c (bug 1462784)
Backed out changeset ad3802ffb780 (bug 1462784)
Backed out changeset 2fe10732076c (bug 1462784)
Backed out changeset 268a72b7c3c4 (bug 1462784)
Backed out changeset 4055eb6c3bc6 (bug 1462784)
Backed out changeset 3901070e2e60 (bug 1462784)
Backed out changeset 2faf787fbbdf (bug 1462784)
Backed out changeset 8f06963c7c6f (bug 1462784)
Backed out changeset 036e6f64e224 (bug 1462784)
Backed out changeset e670f156a603 (bug 1462784)
Backed out changeset cd39588aece4 (bug 1462784)
Backed out changeset 2ac65d100fa2 (bug 1462784)
Backed out changeset ea05ff70a51d (bug 1462784)
Backed out changeset 8a06c0ba42f7 (bug 1462784)
Backed out changeset 52ed9a039ad2 (bug 1462784)
2018-06-01 01:06:29 +03:00
Markus Stange
636baa8e04 Bug 1462784 - Remove the STORAGE category. r=njn
This was used to label IndexedDB work and work in storage/mozStorage*.
I don't think this deserves its own category; categories are most useful for
the main thread, and most of the time-consuming database-related work happens
on helper threads. The main thread pieces are mostly for asynchronicity-
coordination and don't usually take up time.

This patch labels IndexedDB work as DOM instead (which is maybe debatable) and
the rest as OTHER.

MozReview-Commit-ID: 3UYhFFbi3Ry
2018-05-18 17:55:18 -04:00
Markus Stange
f808a822ac Bug 1464310 - Add profiler stack labels which contain the sql string when statements are executed or stepped. r=mak
MozReview-Commit-ID: 3ucqNlHTqCw
2018-05-31 14:06:45 -04:00
Chris Peterson
5d6b16ea3b Bug 1457813 - Part 2: Replace non-asserting NS_PRECONDITIONs with MOZ_ASSERTs. r=froydnj
s/NS_PRECONDITION/MOZ_ASSERT/ and reindent

MozReview-Commit-ID: KuUsnVe2h8L
2018-04-28 12:50:58 -07:00
Kit Cambridge
46091ecc16 Bug 1435446 - Add a default transaction type for storage connections. r=mak
This patch adds a `mozIStorageConnection::defaultTransactionType`
attribute that controls the default transaction behavior for the
connection. As before, `mozStorageTransaction` can override the default
behavior for individual transactions.

MozReview-Commit-ID: IRSlMesETWN
2018-02-28 22:44:40 -08:00
Andrew Sutherland
70bacb7ad5 Bug 1422327 - Clean up storage::Connection::Release. r=mak
Because of the storage::Service's connection list, it's possible for the
refcount for a non-main-thread Connection to experience transient increases
and decreases at any time, dooming logic in Release() that assumes the
refcount isn't changing.

This patch adopts use of an Atomic<bool> so that we execute cleanup logic
exactly once when the refcount falls to 1 at some point.  Care is taken to
ensure that the failsafe Close() occurs on the correct thread.

SpinningSynchronousClose() is still dangerous and can still potentially
nest deeply on the stack.  If we see instances of that in the future, we
may want to adopt use of PushEventQueue so that we can avoid re-entrancy
in our event loop spinning.

MozReview-Commit-ID: A835HBec50H
2018-02-25 23:50:42 -05:00
Kit Cambridge
3963987c0f Bug 1423820 - Copy temp entities after reattaching databases to a cloned storage connection. r=mak
MozReview-Commit-ID: illWRvUv3Y
2017-12-06 22:34:18 -08:00
Kit Cambridge
06ed0af338 Bug 1422383 - Clone temporary tables, views, and triggers when cloning a storage connection. r=mak
MozReview-Commit-ID: HwVMvvn7cui
2017-11-30 19:21:10 -08:00
Andrew Sutherland
b0584d6ea8 Bug 1413501 - Fix for SpinningSynchronousClose unregisterConnection edge-case. r=mak 2017-11-08 10:11:27 -08:00
Kai Engert
ea11c443fd Bug 730495, guarantee that sqlite3_config is called before any other SQLite function, r=asuth, r=froydnj, r=mak 2017-09-29 13:25:06 +02:00
Chris Peterson
90bcd3c611 Bug 870698 - Part 8: Replace Equals(NS_LITERAL_CSTRING("")) with EqualsLiteral(""). r=erahm
The NS_LITERAL_CSTRING macro creates a temporary nsLiteralCString to encapsulate the string literal and its length, but AssignLiteral() can determine the string literal's length at compile-time without nsLiteralCString.

MozReview-Commit-ID: B5Y8KyExPQ8
2017-09-06 15:00:31 -07:00
Marco Bonardo
18b37ff3ae Bug 1320301 - Add partial support to sqlite3_interrupt. r=asuth
MozReview-Commit-ID: V3ZjLEjqmT
2017-07-31 22:27:23 +02:00
Andrew Sutherland
92b9406e9d Bug 1388584 - Part 1: Bind ATTACH DATABASE path argument. r=adw r=markh a=Aryx
This is for the trunk/nightly landing only, and approval was explicitly
requested from #sheriffs to land without tests as a preliminary stop-gap.

Tests and a proper fix will land as part of bug 1389660, but that will be a few
days.
2017-08-12 02:33:09 -04:00
Andrea Marchesini
9e8ae1dfd0 Bug 1350958 - Finish labeling ProxyReleaseEvent, r=billm 2017-07-14 08:49:22 +02:00
Marco Bonardo
49ea117979 Bug 1376202 - Release sharedDBMutex prior to post-auto-finalizing sqlite3_close(). r=asuth
MozReview-Commit-ID: 9aRqQPDfeD7
2017-06-29 15:59:02 -07:00
Bill McCloskey
ce42826bdf Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-26 14:19:58 -07:00
Nicholas Nethercote
a58025002f Bug 1375392 - Tweak the PROFILER_LABEL* macros. r=mstange.
This patch makes the following changes to the macros.

- Removes PROFILER_LABEL_FUNC. It's only suitable for use in functions outside
  classes, due to PROFILER_FUNCTION_NAME not getting class names, and it was
  mostly misused.

- Removes PROFILER_FUNCTION_NAME. It's no longer used, and __func__ is
  universally available now anyway.

- Combines the first two string literal arguments of PROFILER_LABEL and
  PROFILER_LABEL_DYNAMIC into a single argument. There was no good reason for
  them to be separate, and it forced a '::' in the label, which isn't always
  appropriate. Also, the meaning of the "name_space" argument was interpreted
  in an interesting variety of ways.

- Adds an "AUTO_" prefix to PROFILER_LABEL and PROFILER_LABEL_DYNAMIC, to make
  it clearer they construct RAII objects rather than just being function calls.
  (I myself have screwed up the scoping because of this in the past.)

- Fills in the 'js::ProfileEntry::Category::' qualifier within the macro, so
  the caller doesn't need to. This makes a *lot* more of the uses fit onto a
  single line.

The patch also makes the following changes to the macro uses (beyond those
required by the changes described above).

- Fixes a bunch of labels that had gotten out of sync with the name of the
  class and/or function that encloses them.

- Removes a useless PROFILER_LABEL use within a trivial scope in
  EventStateManager::DispatchMouseOrPointerEvent(). It clearly wasn't serving
  any useful purpose. It also serves as extra evidence that the AUTO_ prefix is
  a good idea.

- Tweaks DecodePool::SyncRunIf{Preferred,Possible} so that the labelling is
  done within them, instead of at their callsites, because that's a more
  standard way of doing things.
2017-06-22 17:08:53 +10:00
Carsten "Tomcat" Book
238bf154d5 Backed out changeset 4f6302a98ae4 (bug 1372405) 2017-06-21 13:59:26 +02:00
Bill McCloskey
67e8af4720 Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-20 21:44:11 -07:00
Wes Kocher
aff551aa1b Merge autoland to m-c a=merge
MozReview-Commit-ID: LFtpTAueYrF
2017-06-20 18:24:29 -07:00
Carsten "Tomcat" Book
5cd02f7ef8 Merge mozilla-central to mozilla-inbound 2017-06-20 11:31:34 +02:00
Doug Thayer
a77c4b0e41 Bug 1166166 - Shrink storage cache off main thread r=mak
Per bug: it can take around 200ms to shrink memory for
Places.sqlite. This can end up janking the browser if we hit a
memory-pressure. This patch simply removes the #if DEBUG guards
around the mAsyncExecutionThreadIsAlive boolean which is already
being updated and exposes it so that we can shrink memory off
the main thread when possible.

MozReview-Commit-ID: LoDGKrOXs8u
2017-06-01 14:46:53 -07:00
Marco Bonardo
0dfad3037f Bug 1355561 - Add a new API to spinningly close the database when strictly needed, and ensure Close() does what it's named after. r=asuth
Introduce a new SpinningSynchronousClose API that allows to synchronously close
a connection that executed asynchronous statements, by spinning the events loop.
This is expected to be used rarely in particular cases like database corruption.
It is currently [noscript] since the only consumer is cpp, in the future we can
evaluate removing that, if we find more uses for it.

MozReview-Commit-ID: 7SPqutoF9jJ
2017-04-12 17:44:39 +02:00
Carsten "Tomcat" Book
bbe9441993 Backed out changeset 9846de3bd954 (bug 1372405) 2017-06-20 08:27:02 +02:00
Bill McCloskey
f69608368b Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-19 22:25:47 -07:00
Bevis Tseng
e6dc9e02bc Bug 1372453 - Part 2: Name the caller of ProxyReleaseEvent. r=billm
MozReview-Commit-ID: LYhSWnZkq0i
2017-06-14 09:27:17 +08:00
Marco Bonardo
01c9699781 Bug 1371945 - Avoid a possible thread-safety problem with unfinalized statements. r=asuth
Avoids a thread-safety race condition on shutdown where we could try to finalize a statement twice.
Allows the async thread to be referenced until ShutdownAsyncThread, so async finalizers can make use of it.
Removes the no more useful mAsyncExecutionThreadIsAlive.
Nullifies the sqlite3_mutex pointer when the connection is closed, since it would be a dangling pointer.
Use a ScopeExit to ensure the connection and the mutex pointers are always nullified on failure.
Makes asyncClose bailout early if a Close method was already invoked before.
Makes AsyncInitDatabase not use AsyncClose to just shutdown the async thread.
Fixes various unfinalized statements in consumers code.
Makes mConnectionClosed better follow mDBConn status.
Replaces some mutex locking isClosed() calls with lockless isConnectionReadyOnThisThread.

MozReview-Commit-ID: 6sftFehsQTt
2017-06-16 17:43:23 +02:00
Tom Tromey
a0148cdc8d Bug 1334278 - change mozilla::Smprintf to return a UniquePtr; r=froydnj
Change mozilla::Smprintf and friends to return a UniquePtr, rather than
relying on manual memory management.  (Though after this patch there are
still a handful of spots needing SmprintfFree.)

MozReview-Commit-ID: COa4nzIX5qa
2017-03-03 08:17:27 -07:00
Tom Tromey
a4b717ab39 Bug 1060419 - make log_print use Printf.h, r=froydnj
MozReview-Commit-ID: BIZ1GQEZ1vs
2016-12-15 20:16:31 -07:00
Tom Tromey
5053a34201 Bug 1060419 - make mozStorageConnection.cpp and mozStorageStatement.cpp use Printf.h, r=froydnj
MozReview-Commit-ID: Gy2CLg9AVpG
2016-12-09 10:27:17 -10:00
Bill McCloskey
a82c8d5566 Bug 1331804 - Add more runnable names (r=ehsan)
MozReview-Commit-ID: 1QBmqfgY6WI
2017-01-24 16:34:37 -08:00
Wes Kocher
ac78cfc4f2 Backed out 8 changesets (bug 1331804, bug 1332100) for windows vm debug dt5 failures a=backout
Backed out changeset 8bf7f0e27c6c (bug 1331804)
Backed out changeset 600c0b9026c2 (bug 1331804)
Backed out changeset 3a5b5b9ecace (bug 1331804)
Backed out changeset c76432c9954e (bug 1331804)
Backed out changeset 46a9096745e7 (bug 1332100)
Backed out changeset 8b751230fa23 (bug 1331804)
Backed out changeset 2810212347fd (bug 1331804)
Backed out changeset be72b7763910 (bug 1331804)

MozReview-Commit-ID: Ywdsr4GZ4a
2017-01-24 15:12:21 -08:00
Bill McCloskey
e584c01765 Bug 1331804 - Add more runnable names (r=ehsan)
MozReview-Commit-ID: 1QBmqfgY6WI
2017-01-24 10:04:55 -08:00
Markus Stange
60a9f831b2 Bug 1323100 - Use nsThreadPoolNaming::GetNextThreadName and NS_NewNamedThread for the mozStorage thread. r=froydnj
MozReview-Commit-ID: 145CjwiQawB
2016-12-20 14:20:15 +01:00
Andi-Bogdan Postelnicu
ba476d4bad Bug 1318282 - Use C++11's override and remove virtual where applicable in storage/. r=mak
MozReview-Commit-ID: AXchuOpF65X
2016-11-17 12:36:25 +02:00
Andi-Bogdan Postelnicu
0f8ce79775 Bug 1318282 - Converts for(...; ...; ...) loops to use the new range-based loops in C++11 in storage/. r=mak
MozReview-Commit-ID: HuudUDUcQYu
2016-11-17 12:33:18 +02:00
Marco Bonardo
859304c360 Bug 1313021 - Use a MEMORY SQLITE_TEMP_STORE on Android and 64bit builds. r=asuth
MozReview-Commit-ID: IeXOY3tTStq
2016-11-03 22:11:59 +01:00
Marco Bonardo
aa19b73fb4 Bug 1313310 - Use SQLITE_OMIT_DEPRECATED. r=asuth
MozReview-Commit-ID: C4pZ6EP799G
2016-11-03 20:14:03 +01:00
Marco Bonardo
76bcdc91b6 Bug 1310152 - AsyncClone may try to reuse a freed Critical Section in Sqlite. r=asuth
MozReview-Commit-ID: LW0esWlNfQQ
2016-11-03 15:31:31 +01:00
Gijs Kruitbosch
0ba06a31e9 Bug 1285041 - ignore locking when trying to read chrome DB file, r=mak
MozReview-Commit-ID: 89f0YCxxgC8
2016-07-18 16:46:45 +01:00
Phil Ringnalda
e4a4d66121 Backed out changeset ef7939c0332e (bug 1285041) for failures in test_storage_connection.js
CLOSED TREE
2016-09-15 20:04:30 -07:00
Gijs Kruitbosch
d04ad775fc Bug 1285041 - ignore locking when trying to read chrome DB file, r=mak
MozReview-Commit-ID: 89f0YCxxgC8
2016-07-18 16:46:45 +01:00
Nicholas Nethercote
887efe04d5 Bug 1299727 - Rename NS_WARN_IF_FALSE as NS_WARNING_ASSERTION. r=erahm.
The new name makes the sense of the condition much clearer. E.g. compare:

  NS_WARN_IF_FALSE(!rv.Failed());

with:

  NS_WARNING_ASSERTION(!rv.Failed());

The new name also makes it clearer that it only has effect in debug builds,
because that's standard for assertions.
2016-09-01 15:01:16 +10:00
Kan-Ru Chen
a9b19d0584 Bug 1297276 - Rename mfbt/unused.h to mfbt/Unused.h for consistency. r=froydnj
The patch is generated from following command:

  rgrep -l unused.h|xargs sed -i -e s,mozilla/unused.h,mozilla/Unused.h,

MozReview-Commit-ID: AtLcWApZfES
2016-08-24 14:47:04 +08:00
Nicholas Nethercote
1f65390cc9 Bug 1293603 (part 2) - Make Run() declarations consistent. r=erahm.
This patch makes most Run() declarations in subclasses of nsIRunnable have the
same form: |NS_IMETHOD Run() override|.

As a result of these changes, I had to add |override| to a couple of other
functions to satisfy clang's -Winconsistent-missing-override warning.
2016-08-08 12:18:10 +10:00
Marco Bonardo
917723f111 Bug 1283083 - Cloning a connection should re-attach databases to the clone. r=asuth
MozReview-Commit-ID: CSZqvJNWthB
2016-06-29 17:33:15 +02:00