Skip to content

Commit 8cba7a1

Browse files
Label the Error handling page, remove inconsistencies around quaranti… (#2691)
…ned state
1 parent 8b2a715 commit 8cba7a1

File tree

2 files changed

+24
-23
lines changed

2 files changed

+24
-23
lines changed

modules/ROOT/pages/database-administration/standard-databases/errors.adoc

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
:description: This section describes how to manage errors that you may encounter while managing databases.
22
:page-aliases: manage-databases/errors.adoc
3+
:page-role: enterprise-edition
34
[[manage-database-errors]]
45
= Error handling
56

@@ -11,8 +12,9 @@ When running the database management queries, such as `CREATE DATABASE`, it is p
1112
Because database management operations are performed asynchronously, these errors may not be returned immediately upon query execution.
1213
Instead, you must monitor the output from the `SHOW DATABASE` command; particularly the `statusMessage` and `currentStatus` columns.
1314

14-
.Fail to create a database
15-
====
15+
=== Fail to create a database
16+
17+
1618
[source, cypher]
1719
----
1820
neo4j@system> CREATE DATABASE foo;
@@ -51,7 +53,6 @@ In a cluster:
5153
5254
3 row available after 100 ms, consumed after another 6 ms
5355
----
54-
====
5556

5657

5758
[[database-management-states]]
@@ -91,8 +92,8 @@ However, these retries are not guaranteed to succeed, and errors may persist thr
9192
If a database is in the `quarantined` state, retrying the last operation will not work.
9293
====
9394

94-
.Retry to start a database
95-
====
95+
=== Retry to start a database
96+
9697
[source, cypher]
9798
----
9899
neo4j@system> START DATABASE foo;
@@ -146,7 +147,7 @@ neo4j@system> SHOW DATABASE foo;
146147
147148
1 rows available after 4 ms, consumed after another 1 ms
148149
----
149-
====
150+
150151

151152
If repeated retries of a command have no effect, or if a database is in a `dirty` state, you may drop and recreate the database, as detailed in xref:database-administration/standard-databases/create-databases.adoc[Create database].
152153

@@ -162,11 +163,11 @@ It produces a database dump that can be further examined and potentially repaire
162163

163164
When a database encounters a severe error during its normal run, which prevents it from a further operation, Neo4j stops that database and brings it into a `quarantined` state.
164165
Meaning, it is not possible to restart it with a simple `START DATABASE` command.
165-
You have to run `CALL dbms.unquarantineDatabase(server, database, operation)` to lift the quarantine, specifying as `server` the instance with the failing database.
166+
You have to run `CALL dbms.unquarantineDatabase(server, database, operation)` to lift the quarantine, specifying the `server` with the failing database.
166167

167168
The `dbms.unquarantineDatabase()` procedure is introduced in Neo4j 2025.01 to replace the now-deprecated xref:procedures.adoc#procedure_dbms_quarantineDatabase[`dbms.quarantineDatabase`()].
168169

169-
After lifting the quarantine, the instance will automatically try to bring the database to the desired state.
170+
After lifting the quarantine, Neo4j automatically tries to bring the database to the desired state.
170171

171172
*Syntax:*
172173

@@ -188,15 +189,15 @@ The possible values for the optional operation are:
188189
* `replaceStateKeepStore` -- join as a new member, clearing the current cluster state but keeping the store.
189190
* `replaceStateReplaceStore` -- join as a new member, clearing both the current cluster state and the store.
190191

191-
If you choose to clear the current cluster state, the server will try to join as a new member,
192-
but this joining can succeed if and only if there is a majority of old members "letting" the new members in.
193-
Let's assume your cluster has a topology with three primaries.
194-
If there is only one server in `QUARANTINED` mode, then it is safe to choose `replaceStateKeepStore` or `replaceStateReplaceStore`.
195-
If there are two servers in `QUARANTINED` mode, then you should not use concurrently `replaceStateKeepStore` or `replaceStateReplaceStore` for both servers because there would be no majority to let them in.
192+
If you choose to clear the current cluster state, the defined database allocation will try to join as a new member.
193+
This joining process can succeed if and only if a majority of the existing members allow the new member to join.
194+
Assume your database has a topology with three primary allocations.
195+
If there is only one allocation in `quarantined` mode, then it is safe to choose `replaceStateKeepStore` or `replaceStateReplaceStore`.
196+
If there are two allocations in `quarantined` mode (meaning that the database is `quarantined` on two servers), then you should not use concurrently `replaceStateKeepStore` or `replaceStateReplaceStore` for both of them because there would be no majority to let them in.
196197

197198
*Return arguments:*
198199

199-
The procedure doesn't return any value.
200+
The procedure does not return any value.
200201

201202

202203
.Check if a database is quarantined
@@ -220,9 +221,9 @@ neo4j@system> SHOW DATABASE foo;
220221
[NOTE]
221222
====
222223
A `quarantined` state is persisted for user databases.
223-
This means that if a database is quarantined, it will remain so even if that Neo4j instance is restarted.
224-
You can remove it only by running the xref:procedures.adoc#procedure_dbms_unquarantineDatabase[`dbms.unquarantineDatabase()`] procedure.
224+
This means that if a database is quarantined, it will remain so even if the Neo4j process is restarted.
225+
You can remove the `quarantined` state only by running the xref:procedures.adoc#procedure_dbms_unquarantineDatabase[`dbms.unquarantineDatabase()`] procedure.
225226
226-
The one exception to this rule is for the built-in `system` database.
227-
Any quarantine for that database is removed automatically after instance restart.
227+
The one exception to this rule is for the `system` database.
228+
Any quarantine for that database is removed automatically after the Neo4j process restart.
228229
====

modules/ROOT/pages/procedures.adoc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1173,11 +1173,11 @@ The possible values for the optional operation are:
11731173
* `replaceStateKeepStore` -- join as a new member, clearing the current cluster state but keeping the store.
11741174
* `replaceStateReplaceStore` -- join as a new member, clearing both the current cluster state and the store.
11751175
1176-
If you choose to clear the current cluster state, the server will try to join as a new member,
1177-
but this joining can succeed if and only if there is a majority of old members "letting" the new members in.
1178-
Let's assume your cluster has a topology with three primaries.
1179-
If there is only one server in `QUARANTINED` mode, then it is safe to choose `replaceStateKeepStore` or `replaceStateReplaceStore`.
1180-
If there are two servers in `QUARANTINED` mode, then you should not use concurrently `replaceStateKeepStore` or `replaceStateReplaceStore` for both servers because there would be no majority to let them in.
1176+
If you choose to clear the current cluster state, the defined database allocation will try to join as a new member.
1177+
This joining process can succeed if and only if a majority of the existing members allow the new member to join.
1178+
Assume your database has a topology with three primary allocations.
1179+
If there is only one allocation in `quarantined` mode, then it is safe to choose `replaceStateKeepStore` or `replaceStateReplaceStore`.
1180+
If there are two allocations in `quarantined` mode (meaning that the database is `quarantined` on two servers), then you should not use concurrently `replaceStateKeepStore` or `replaceStateReplaceStore` for both of them because there would be no majority to let them in.
11811181
====
11821182

11831183
[role=label--admin-only label--deprecated-5.9 label--removed-cypher-25]

0 commit comments

Comments
 (0)