On 2025/03/31 22:45, Yugo Nagata wrote:
I prefer this approach clarifying that consistency and subtransaction overflow
are separate concepts in the documentation.
Here are minor comments on the patch:
Thanks for the review!
- case CAC_NOTCONSISTENT:
- if (EnableHotStandby)
+ case CAC_NOTHOTSTANDBY:
+ if (!EnableHotStandby)
ereport(FATAL,
(errcode(ERRCODE_CANNOT_CONNECT_NOW),
errmsg("the database system is not yet accepting
connections"),
- errdetail("Consistent recovery state has not been yet
reached.")));
+ errdetail("Hot standby mode is disabled.")));
+ else if (reachedConsistency)
+ ereport(FATAL,
+ (errcode(ERRCODE_CANNOT_CONNECT_NOW),
+ errmsg("the database system is not accepting
connections"),
+ errdetail("Recovery snapshot is not yet ready for hot
standby."),
+ errhint("To enable hot standby, close write
transactions with more than %d subtransactions on the primary server.",
+ PGPROC_MAX_CACHED_SUBXIDS)));
else
ereport(FATAL,
(errcode(ERRCODE_CANNOT_CONNECT_NOW),
errmsg("the database system is not accepting
connections"),
- errdetail("Hot standby mode is disabled.")));
+ errdetail("Consistent recovery state has not been yet
reached.")));
The message says "the database system is not yet accepting connections" when "Hot
standby mode is disabled".
I think "yet" is not necessary in this case. Otherwise, when "Recovery snapshot is
not yet ready for hot standby"
or "Consistent recovery state has not been yet reached", it seems better to use
"yet"
I may have unintentionally modified the error message.
I fixed the patch as suggested. Please check the latest patch
I posted earlier in response to Torikoshi-san.
Regards,
--
Fujii Masao
Advanced Computing Technology Center
Research and Development Headquarters
NTT DATA CORPORATION