@@ -1000,14 +1000,14 @@ GetNewMultiXactId(int nmembers, MultiXactOffset *offset)
1000
1000
errmsg ("database is not accepting commands that generate new MultiXactIds to avoid wraparound data loss in database \"%s\"" ,
1001
1001
oldest_datname ),
1002
1002
errhint ("Execute a database-wide VACUUM in that database.\n"
1003
- "You might also need to commit or roll back old prepared transactions." )));
1003
+ "You might also need to commit or roll back old prepared transactions, or drop stale replication slots ." )));
1004
1004
else
1005
1005
ereport (ERROR ,
1006
1006
(errcode (ERRCODE_PROGRAM_LIMIT_EXCEEDED ),
1007
1007
errmsg ("database is not accepting commands that generate new MultiXactIds to avoid wraparound data loss in database with OID %u" ,
1008
1008
oldest_datoid ),
1009
1009
errhint ("Execute a database-wide VACUUM in that database.\n"
1010
- "You might also need to commit or roll back old prepared transactions." )));
1010
+ "You might also need to commit or roll back old prepared transactions, or drop stale replication slots ." )));
1011
1011
}
1012
1012
1013
1013
/*
@@ -1031,7 +1031,7 @@ GetNewMultiXactId(int nmembers, MultiXactOffset *offset)
1031
1031
oldest_datname ,
1032
1032
multiWrapLimit - result ),
1033
1033
errhint ("Execute a database-wide VACUUM in that database.\n"
1034
- "You might also need to commit or roll back old prepared transactions." )));
1034
+ "You might also need to commit or roll back old prepared transactions, or drop stale replication slots ." )));
1035
1035
else
1036
1036
ereport (WARNING ,
1037
1037
(errmsg_plural ("database with OID %u must be vacuumed before %u more MultiXactId is used" ,
@@ -1040,7 +1040,7 @@ GetNewMultiXactId(int nmembers, MultiXactOffset *offset)
1040
1040
oldest_datoid ,
1041
1041
multiWrapLimit - result ),
1042
1042
errhint ("Execute a database-wide VACUUM in that database.\n"
1043
- "You might also need to commit or roll back old prepared transactions." )));
1043
+ "You might also need to commit or roll back old prepared transactions, or drop stale replication slots ." )));
1044
1044
}
1045
1045
1046
1046
/* Re-acquire lock and start over */
@@ -2321,7 +2321,7 @@ SetMultiXactIdLimit(MultiXactId oldest_datminmxid, Oid oldest_datoid,
2321
2321
oldest_datname ,
2322
2322
multiWrapLimit - curMulti ),
2323
2323
errhint ("To avoid a database shutdown, execute a database-wide VACUUM in that database.\n"
2324
- "You might also need to commit or roll back old prepared transactions." )));
2324
+ "You might also need to commit or roll back old prepared transactions, or drop stale replication slots ." )));
2325
2325
else
2326
2326
ereport (WARNING ,
2327
2327
(errmsg_plural ("database with OID %u must be vacuumed before %u more MultiXactId is used" ,
@@ -2330,7 +2330,7 @@ SetMultiXactIdLimit(MultiXactId oldest_datminmxid, Oid oldest_datoid,
2330
2330
oldest_datoid ,
2331
2331
multiWrapLimit - curMulti ),
2332
2332
errhint ("To avoid a database shutdown, execute a database-wide VACUUM in that database.\n"
2333
- "You might also need to commit or roll back old prepared transactions." )));
2333
+ "You might also need to commit or roll back old prepared transactions, or drop stale replication slots ." )));
2334
2334
}
2335
2335
}
2336
2336
0 commit comments