From: Fujii Masao on
On Mon, Jun 14, 2010 at 9:16 AM, Greg Smith <greg(a)2ndquadrant.com> wrote:
> I wouldn't be adverse to improving the error messages emitted when this
> happens by the server to make it more obvious what's gone wrong in 9.1.
>  That's the only genuine improvement I'd see value in here, to cut down on
> other people running into what you did and being as confused by it.

What about the attached patch? When we encounter that problem, we get
the following hint message:

FATAL: directory "/path_to/ts" does not exist
HINT: create "/path_to/ts" directory for tablespace before
restarting the server
CONTEXT: xlog redo create ts: 16384 "/path_to/ts"

Regards,

--
Fujii Masao
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center
From: Simon Riggs on
On Sat, 2010-06-12 at 03:29 +0200, Rafael Martinez wrote:
> What I didn't expect was such a serious consequence. Postgres crashed
> in the standby node and it refused to start until the directory needed
> by the tablespace was created also in the standby.

> I suppose there is not an easy way of fixing this, but at least it
> would
> be a good idea to update the documentation with some information about
> how to fix this error situation (hot-standby.html#HOT-STANDBY-CAVEATS
> will be a nice place to have this information)

Thanks for testing.

This crash has nothing to do with HS or SR. There is already a
documented caveat and this has been like this for 6 years
http://developer.postgresql.org/pgdocs/postgres/continuous-archiving.html#CONTINUOUS-ARCHIVING-CAVEATS

If you said the docs need some work, I would agree with you. There isn't
anything to say that the caveats in 24.3.6 still apply to SR, though
they still all do.

--
Simon Riggs www.2ndQuadrant.com


--
Sent via pgsql-hackers mailing list (pgsql-hackers(a)postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

From: Bruce Momjian on
Fujii Masao wrote:
> On Mon, Jun 14, 2010 at 9:16 AM, Greg Smith <greg(a)2ndquadrant.com> wrote:
> > I wouldn't be adverse to improving the error messages emitted when this
> > happens by the server to make it more obvious what's gone wrong in 9.1.
> > ?That's the only genuine improvement I'd see value in here, to cut down on
> > other people running into what you did and being as confused by it.
>
> What about the attached patch? When we encounter that problem, we get
> the following hint message:
>
> FATAL: directory "/path_to/ts" does not exist
> HINT: create "/path_to/ts" directory for tablespace before
> restarting the server
> CONTEXT: xlog redo create ts: 16384 "/path_to/ts"

This is an interesting patch idea. One problem with the patch is that
create_tablespace_directories() is called both during recovery and when
creating a tablespace, and the hint only makes sense in the first case.

The attached patch shows the hint only during recovery. Unless there
are objections, I will apply this for 9.0. I do think people will be
hit by this more often in 9.0.

--
Bruce Momjian <bruce(a)momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ None of us is going to be here forever. +
From: Tom Lane on
Bruce Momjian <bruce(a)momjian.us> writes:
> The attached patch shows the hint only during recovery.

BTW, it would be easier and more consistent with the rest of the code to
look at InRecovery, instead of messing around with the function
signature. And the usual way to emit a hint conditionally is

(InRecovery ? errhint(...) : 0)

rather than duplicate a lot of surrounding code.

regards, tom lane

--
Sent via pgsql-hackers mailing list (pgsql-hackers(a)postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

From: Tom Lane on
Bruce Momjian <bruce(a)momjian.us> writes:
>> FATAL: directory "/path_to/ts" does not exist
>> HINT: create "/path_to/ts" directory for tablespace before
>> restarting the server
>> CONTEXT: xlog redo create ts: 16384 "/path_to/ts"

> This is an interesting patch idea. One problem with the patch is that
> create_tablespace_directories() is called both during recovery and when
> creating a tablespace, and the hint only makes sense in the first case.

Please make the hint conform to the project message style guidelines.

regards, tom lane

--
Sent via pgsql-hackers mailing list (pgsql-hackers(a)postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers