On Tue, Jul 19, 2011 at 5:58 PM, Simon Riggs <si...@2ndquadrant.com> wrote: > On Mon, Jul 11, 2011 at 7:28 AM, Fujii Masao <masao.fu...@gmail.com> wrote: > >> Attached is the updated version which addresses all the issues raised by >> Simon. > > Is there any reason why we disallow cascading unless hot standby is enabled? > > ISTM we can just alter the postmaster path for walsenders, patch attached. > > Some people might be happier if a sync standby were not HS enabled, > yet able to cascade to other standbys for reading.
- return CAC_STARTUP; /* normal startup */ + { + if (am_walsender) + return CAC_OK; + else + return CAC_STARTUP; /* normal startup */ + } In canAcceptConnections(), am_walsender is always false, so the above CAC_OK is never returned. You should change ProcessStartupPacket() as follows, instead. switch (port->canAcceptConnections) { case CAC_STARTUP: + if (am_walsender) + { + port->canAcceptConnections = CAC_OK; + break; + } ereport(FATAL, When I fixed the above, compile the code and set up the cascading replication environment (disable hot_standby), I got the following assertion error: TRAP: FailedAssertion("!(slot > 0 && slot <= PMSignalState->num_child_flags)", File: "pmsignal.c", Line: 227) So we would still have some code to change. Regards, -- Fujii Masao NIPPON TELEGRAPH AND TELEPHONE CORPORATION NTT Open Source Software Center -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers