pgsql: Report which WAL sync method we are trying to change *to* when it

Started by Magnus Haganderabout 18 years ago8 messagescomitters
Jump to latest
#1Magnus Hagander
magnus@hagander.net

Log Message:
-----------
Report which WAL sync method we are trying to change *to* when it fails,
not which one we had before (that worked, and thus is completley irrelevant)

Modified Files:
--------------
pgsql/src/backend/access/transam:
xlog.c (r1.304 -> r1.305)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/transam/xlog.c?r1=1.304&r2=1.305)

#2Simon Riggs
simon@2ndQuadrant.com
In reply to: Magnus Hagander (#1)
Re: pgsql: Report which WAL sync method we are trying to change *to* when it

On Mon, 2008-05-12 at 14:27 +0000, Magnus Hagander wrote:

Log Message:
-----------
Report which WAL sync method we are trying to change *to* when it fails,
not which one we had before (that worked, and thus is completley irrelevant)

Interesting perspective.

If it breaks, I'd rather be able to put it back the way it was than
regret in technicolour that my new choice was a bad one. ;-)
Not everybody keeps a change log.

Could we report both?

--
Simon Riggs
2ndQuadrant http://www.2ndQuadrant.com

#3Magnus Hagander
magnus@hagander.net
In reply to: Simon Riggs (#2)
Re: pgsql: Report which WAL sync method we are trying to change *to* when it

Simon Riggs wrote:

On Mon, 2008-05-12 at 14:27 +0000, Magnus Hagander wrote:

Log Message:
-----------
Report which WAL sync method we are trying to change *to* when it
fails, not which one we had before (that worked, and thus is
completley irrelevant)

Interesting perspective.

If it breaks, I'd rather be able to put it back the way it was than
regret in technicolour that my new choice was a bad one. ;-)

Well, the message itself indicated that it was the new one...

Not everybody keeps a change log.

Could we report both?

Yes, we could easily do that if we want to.

But - this is not the error you get when you try to set it. It's the
error you get when you try to *use* it. And really, it's a "should
never happen" error. (The reason it happens this time is due to another
bug). So I don't think doing so would actually help your case - it's
already covered elsewhere in the code where we'll rollback the setting
when you try to change it instead of PANICing.

//Magnus

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: Magnus Hagander (#3)
Re: pgsql: Report which WAL sync method we are trying to change *to* when it

Magnus Hagander <magnus@hagander.net> writes:

Simon Riggs wrote:

Could we report both?

Yes, we could easily do that if we want to.

It would be entirely silly to do so, since (a) the old value hasn't been
changed if we fail here, and (b) it's irrelevant to the nature of the
error.

What's also a bit silly is using PANIC for this report --- AFAICS plain
old ERROR is sufficient, since if we fail here we have not yet modified
any persistent state. Just because it's a "can't happen" condition
doesn't justify making it a PANIC.

regards, tom lane

#5Simon Riggs
simon@2ndQuadrant.com
In reply to: Tom Lane (#4)
Re: pgsql: Report which WAL sync method we are trying to change *to* when it

On Mon, 2008-05-12 at 15:26 -0400, Tom Lane wrote:

Magnus Hagander <magnus@hagander.net> writes:

Simon Riggs wrote:

Could we report both?

Yes, we could easily do that if we want to.

It would be entirely silly to do so, since (a) the old value hasn't been
changed if we fail here, and (b) it's irrelevant to the nature of the
error.

That's reasonable. If it is impossible to set it to an
impossible/failing value then that is even better.

Magnus seems to say it is possible to set this and then have it fail
later when it is used. Not sure which is correct.

--
Simon Riggs
2ndQuadrant http://www.2ndQuadrant.com

#6Magnus Hagander
magnus@hagander.net
In reply to: Simon Riggs (#5)
Re: pgsql: Report which WAL sync method we are trying to change *to* when it

Simon Riggs wrote:

On Mon, 2008-05-12 at 15:26 -0400, Tom Lane wrote:

Magnus Hagander <magnus@hagander.net> writes:

Simon Riggs wrote:

Could we report both?

Yes, we could easily do that if we want to.

It would be entirely silly to do so, since (a) the old value hasn't
been changed if we fail here, and (b) it's irrelevant to the nature
of the error.

That's reasonable. If it is impossible to set it to an
impossible/failing value then that is even better.

Magnus seems to say it is possible to set this and then have it fail
later when it is used. Not sure which is correct.

It shouldn't ever happen. It happened here because there was a bug in
my original patch, that has now been fixed. So unless there are more
bugs in it, it is now back to can't happen.

//Magnus

#7Tom Lane
tgl@sss.pgh.pa.us
In reply to: Simon Riggs (#5)
Re: pgsql: Report which WAL sync method we are trying to change *to* when it

Simon Riggs <simon@2ndquadrant.com> writes:

Magnus seems to say it is possible to set this and then have it fail
later when it is used. Not sure which is correct.

Per his comment just now, I think he'd gotten confused between
assign_xlog_sync_method (which sets the value) and issue_xlog_fsync
(which uses it).

regards, tom lane

#8Simon Riggs
simon@2ndQuadrant.com
In reply to: Magnus Hagander (#6)
Re: pgsql: Report which WAL sync method we are trying to change *to* when it

On Mon, 2008-05-12 at 21:49 +0200, Magnus Hagander wrote:

Simon Riggs wrote:

On Mon, 2008-05-12 at 15:26 -0400, Tom Lane wrote:

Magnus Hagander <magnus@hagander.net> writes:

Simon Riggs wrote:

Could we report both?

Yes, we could easily do that if we want to.

It would be entirely silly to do so, since (a) the old value hasn't
been changed if we fail here, and (b) it's irrelevant to the nature
of the error.

That's reasonable. If it is impossible to set it to an
impossible/failing value then that is even better.

Magnus seems to say it is possible to set this and then have it fail
later when it is used. Not sure which is correct.

It shouldn't ever happen. It happened here because there was a bug in
my original patch, that has now been fixed. So unless there are more
bugs in it, it is now back to can't happen.

OK, good. Just checking it won't ever happen to me ;-)
(and if it does, I have a backout plan).

--
Simon Riggs
2ndQuadrant http://www.2ndQuadrant.com