fsync-pgdata-on-recovery tries to write to more files than previously

Started by Christoph Bergalmost 11 years ago70 messageshackers
Jump to latest
#1Christoph Berg
myon@debian.org

Hi,

the new fsync-pgdata-on-recovery code tries to open all files using
O_RDWR. At least on 9.1, this can make recovery fail:

* launch postgres, hit ^\ (or otherwise shut down uncleanly)
* touch foo; chmod 444 foo
* launch postgres

LOG: database system was interrupted; last known up at 2015-05-23 19:18:36 CEST
FATAL: could not open file "/home/cbe/9.1/foo": Permission denied
LOG: startup process (PID 27305) exited with exit code 1
LOG: aborting startup due to startup process failure

The code on 9.4 looks similar to me, but I couldn't trigger the
problem there.

I think this is a real-world problem:

1) In older releases, the SSL certs were read from the data directory,
and at least the default Debian installation creates symlinks from
PGDATA/server.* to /etc/ssl/ where PostgreSQL can't write

2) It's probably a pretty common scenario that the root user will edit
postgresql.conf, and make backups or create other random files there
that are not writable. Even a non-writable postgresql.conf itself or
recovery.conf was not a problem previously.

To me, this is a serious regression because it prevents automatic
startup of a server that would otherwise just run.

Christoph
--
cb@df7cb.de | http://www.df7cb.de/

#2Christoph Berg
myon@debian.org
In reply to: Christoph Berg (#1)
Re: fsync-pgdata-on-recovery tries to write to more files than previously

Re: To PostgreSQL Hackers 2015-05-23 <20150523172627.GA24277@msg.df7cb.de>

Hi,

the new fsync-pgdata-on-recovery code tries to open all files using
O_RDWR. At least on 9.1, this can make recovery fail:

* launch postgres, hit ^\ (or otherwise shut down uncleanly)
* touch foo; chmod 444 foo
* launch postgres

LOG: database system was interrupted; last known up at 2015-05-23 19:18:36 CEST
FATAL: could not open file "/home/cbe/9.1/foo": Permission denied
LOG: startup process (PID 27305) exited with exit code 1
LOG: aborting startup due to startup process failure

The code on 9.4 looks similar to me, but I couldn't trigger the
problem there.

Correction: 9.4 is equally broken. (I was still running 9.4.1 when I
tried first.)

I think this is a real-world problem:

1) In older releases, the SSL certs were read from the data directory,
and at least the default Debian installation creates symlinks from
PGDATA/server.* to /etc/ssl/ where PostgreSQL can't write

2) It's probably a pretty common scenario that the root user will edit
postgresql.conf, and make backups or create other random files there
that are not writable. Even a non-writable postgresql.conf itself or
recovery.conf was not a problem previously.

3) The .postgresql.conf.swp files created by (root's) vim are 0600.

To me, this is a serious regression because it prevents automatic
startup of a server that would otherwise just run.

Christoph
--
cb@df7cb.de | http://www.df7cb.de/

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Christoph Berg (#1)
Re: fsync-pgdata-on-recovery tries to write to more files than previously

Christoph Berg <myon@debian.org> writes:

the new fsync-pgdata-on-recovery code tries to open all files using
O_RDWR. At least on 9.1, this can make recovery fail:

Hm. I wonder whether it would be all right to just skip files for which
we get EPERM on open(). The argument being that if we can't write to the
file, we should not be held responsible for fsync'ing it either. But
I'm not sure whether EPERM would be the only relevant errno, or whether
there are cases where this would mask real problems.

regards, tom lane

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

#4Christoph Berg
myon@debian.org
In reply to: Tom Lane (#3)
Re: fsync-pgdata-on-recovery tries to write to more files than previously

Re: Tom Lane 2015-05-23 <2284.1432413209@sss.pgh.pa.us>

Christoph Berg <myon@debian.org> writes:

the new fsync-pgdata-on-recovery code tries to open all files using
O_RDWR. At least on 9.1, this can make recovery fail:

Hm. I wonder whether it would be all right to just skip files for which
we get EPERM on open(). The argument being that if we can't write to the
file, we should not be held responsible for fsync'ing it either. But
I'm not sure whether EPERM would be the only relevant errno, or whether
there are cases where this would mask real problems.

Maybe logging WARNINGs instead of FATAL would be enough of a fix?

Christoph
--
cb@df7cb.de | http://www.df7cb.de/

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

#5Andres Freund
andres@anarazel.de
In reply to: Tom Lane (#3)
Re: fsync-pgdata-on-recovery tries to write to more files than previously

On 2015-05-23 16:33:29 -0400, Tom Lane wrote:

Christoph Berg <myon@debian.org> writes:

the new fsync-pgdata-on-recovery code tries to open all files using
O_RDWR. At least on 9.1, this can make recovery fail:

Hm. I wonder whether it would be all right to just skip files for which
we get EPERM on open(). The argument being that if we can't write to the
file, we should not be held responsible for fsync'ing it either. But
I'm not sure whether EPERM would be the only relevant errno, or whether
there are cases where this would mask real problems.

We could even try doing the a fsync with a readonly fd as a fallback,
but that's also pretty hacky.

How about, to avoid masking actual problems, we have a more
differentiated logic for the toplevel data directory? I think we could
just skip all non-directory files in there data_directory itself. None
of the files in the toplevel directory, with the exception of
postgresql.auto.conf, will ever get written to by PG itself. And if
there's readonly files somewhere in a subdirectory, I won't feel
particularly bad.

Greetings,

Andres Freund

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

#6Christoph Berg
myon@debian.org
In reply to: Andres Freund (#5)
Re: fsync-pgdata-on-recovery tries to write to more files than previously

Re: Andres Freund 2015-05-24 <20150524005245.GD32396@alap3.anarazel.de>

How about, to avoid masking actual problems, we have a more
differentiated logic for the toplevel data directory? I think we could
just skip all non-directory files in there data_directory itself. None
of the files in the toplevel directory, with the exception of
postgresql.auto.conf, will ever get written to by PG itself. And if
there's readonly files somewhere in a subdirectory, I won't feel
particularly bad.

I like that idea.

Christoph
--
cb@df7cb.de | http://www.df7cb.de/

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

#7Christoph Berg
myon@debian.org
In reply to: Christoph Berg (#6)
Re: fsync-pgdata-on-recovery tries to write to more files than previously

Re: To Andres Freund 2015-05-24 <20150524075244.GB27048@msg.df7cb.de>

Re: Andres Freund 2015-05-24 <20150524005245.GD32396@alap3.anarazel.de>

How about, to avoid masking actual problems, we have a more
differentiated logic for the toplevel data directory? I think we could
just skip all non-directory files in there data_directory itself. None
of the files in the toplevel directory, with the exception of
postgresql.auto.conf, will ever get written to by PG itself. And if
there's readonly files somewhere in a subdirectory, I won't feel
particularly bad.

pg_log/ is also admin domain. What about only recursing into
well-known directories + postgresql.auto.conf?

(I've also been wondering if pg_basebackup shouldn't skip pg_log, but
that's a different topic...)

Christoph
--
cb@df7cb.de | http://www.df7cb.de/

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

#8Tom Lane
tgl@sss.pgh.pa.us
In reply to: Christoph Berg (#7)
Re: fsync-pgdata-on-recovery tries to write to more files than previously

Christoph Berg <myon@debian.org> writes:

Re: To Andres Freund 2015-05-24 <20150524075244.GB27048@msg.df7cb.de>

Re: Andres Freund 2015-05-24 <20150524005245.GD32396@alap3.anarazel.de>

How about, to avoid masking actual problems, we have a more
differentiated logic for the toplevel data directory?

pg_log/ is also admin domain. What about only recursing into
well-known directories + postgresql.auto.conf?

The idea that this code would know exactly what's what under $PGDATA
scares me. I can positively guarantee that it would diverge from reality
over time, and nobody would notice until it ate their data, failed to
start, or otherwise behaved undesirably.

pg_log/ is a perfect example, because that is not a hard-wired directory
name; somebody could point the syslogger at a different place very easily.
Wiring in special behavior for that name is just wrong.

I would *much* rather have a uniform rule for how to treat each file
the scan comes across. It might take some tweaking to get to one that
works well; but once we did, we could have some confidence that it
wouldn't break later.

regards, tom lane

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

#9Andres Freund
andres@anarazel.de
In reply to: Tom Lane (#8)
Re: fsync-pgdata-on-recovery tries to write to more files than previously

On May 24, 2015 7:52:53 AM PDT, Tom Lane <tgl@sss.pgh.pa.us> wrote:

Christoph Berg <myon@debian.org> writes:

Re: To Andres Freund 2015-05-24 <20150524075244.GB27048@msg.df7cb.de>

Re: Andres Freund 2015-05-24

<20150524005245.GD32396@alap3.anarazel.de>

How about, to avoid masking actual problems, we have a more
differentiated logic for the toplevel data directory?

pg_log/ is also admin domain. What about only recursing into
well-known directories + postgresql.auto.conf?

The idea that this code would know exactly what's what under $PGDATA
scares me. I can positively guarantee that it would diverge from
reality
over time, and nobody would notice until it ate their data, failed to
start, or otherwise behaved undesirably.

pg_log/ is a perfect example, because that is not a hard-wired
directory
name; somebody could point the syslogger at a different place very
easily.
Wiring in special behavior for that name is just wrong.

I would *much* rather have a uniform rule for how to treat each file
the scan comes across. It might take some tweaking to get to one that
works well; but once we did, we could have some confidence that it
wouldn't break later.

If we'd merge it with initdb's list I think I'd not be that bad. I'm thinking of some header declaring it, roughly like the rmgr list.

Andres

--- 
Please excuse brevity and formatting - I am writing this on my mobile phone.

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

#10Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andres Freund (#9)
Re: fsync-pgdata-on-recovery tries to write to more files than previously

Andres Freund <andres@anarazel.de> writes:

On May 24, 2015 7:52:53 AM PDT, Tom Lane <tgl@sss.pgh.pa.us> wrote:

Christoph Berg <myon@debian.org> writes:

pg_log/ is also admin domain. What about only recursing into
well-known directories + postgresql.auto.conf?

The idea that this code would know exactly what's what under $PGDATA
scares me. I can positively guarantee that it would diverge from
reality over time, and nobody would notice until it ate their data,
failed to start, or otherwise behaved undesirably.

pg_log/ is a perfect example, because that is not a hard-wired
directory name; somebody could point the syslogger at a different place
very easily. Wiring in special behavior for that name is just wrong.

I would *much* rather have a uniform rule for how to treat each file
the scan comes across. It might take some tweaking to get to one that
works well; but once we did, we could have some confidence that it
wouldn't break later.

If we'd merge it with initdb's list I think I'd not be that bad. I'm thinking of some header declaring it, roughly like the rmgr list.

pg_log/ is a counterexample to that idea too; initdb doesn't know about it
(and shouldn't).

regards, tom lane

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

#11Andres Freund
andres@anarazel.de
In reply to: Tom Lane (#10)
Re: fsync-pgdata-on-recovery tries to write to more files than previously

On 2015-05-25 13:38:01 -0400, Tom Lane wrote:

Andres Freund <andres@anarazel.de> writes:

On May 24, 2015 7:52:53 AM PDT, Tom Lane <tgl@sss.pgh.pa.us> wrote:
If we'd merge it with initdb's list I think I'd not be that bad. I'm thinking of some header declaring it, roughly like the rmgr list.

pg_log/ is a counterexample to that idea too; initdb doesn't know about it
(and shouldn't).

The idea would be to *only* directories that initdb knows about. Since
that's where the valuables are. So I don't see how pg_log would be a
counterexample.

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

#12Stephen Frost
sfrost@snowman.net
In reply to: Andres Freund (#11)
Re: fsync-pgdata-on-recovery tries to write to more files than previously

* Andres Freund (andres@anarazel.de) wrote:

On 2015-05-25 13:38:01 -0400, Tom Lane wrote:

Andres Freund <andres@anarazel.de> writes:

On May 24, 2015 7:52:53 AM PDT, Tom Lane <tgl@sss.pgh.pa.us> wrote:
If we'd merge it with initdb's list I think I'd not be that bad. I'm thinking of some header declaring it, roughly like the rmgr list.

pg_log/ is a counterexample to that idea too; initdb doesn't know about it
(and shouldn't).

The idea would be to *only* directories that initdb knows about. Since
that's where the valuables are. So I don't see how pg_log would be a
counterexample.

Indeed, that wouldn't be included in the list of things to fsync and it
isn't listed in initdb, so that works.

I've not followed this thread all that closely, but I do tend to agree
with the idea of "only try to mess with files that are *clearly* ours to
mess with."

Thanks!

Stephen

#13Tom Lane
tgl@sss.pgh.pa.us
In reply to: Stephen Frost (#12)
Re: fsync-pgdata-on-recovery tries to write to more files than previously

Stephen Frost <sfrost@snowman.net> writes:

I've not followed this thread all that closely, but I do tend to agree
with the idea of "only try to mess with files that are *clearly* ours to
mess with."

Well, that opens us to errors of omission, ie failing to fsync things we
should have. Maybe that's an okay risk, but personally I'd judge that
"fsync everything and ignore (some?) errors" is probably a more robust
approach over time.

regards, tom lane

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

#14Andres Freund
andres@anarazel.de
In reply to: Tom Lane (#13)
Re: fsync-pgdata-on-recovery tries to write to more files than previously

On 2015-05-25 14:02:28 -0400, Tom Lane wrote:

Stephen Frost <sfrost@snowman.net> writes:

I've not followed this thread all that closely, but I do tend to agree
with the idea of "only try to mess with files that are *clearly* ours to
mess with."

Well, that opens us to errors of omission, ie failing to fsync things we
should have.

Is that really that likely? I mean we don't normally add data to the top
level directory itself, and subdirectories hopefully won't be added
except via initdb?

Maybe that's an okay risk, but personally I'd judge that
"fsync everything and ignore (some?) errors" is probably a more robust
approach over time.

The over-the-top approach would be to combine the two. Error out in
directories that are in the initdb list, and ignore permission errors
otherwise...

Additionally we could attempt to fsync with a readonly fd before trying
the read-write fd...

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

#15Stephen Frost
sfrost@snowman.net
In reply to: Andres Freund (#14)
Re: fsync-pgdata-on-recovery tries to write to more files than previously

* Andres Freund (andres@anarazel.de) wrote:

On 2015-05-25 14:02:28 -0400, Tom Lane wrote:

Stephen Frost <sfrost@snowman.net> writes:

I've not followed this thread all that closely, but I do tend to agree
with the idea of "only try to mess with files that are *clearly* ours to
mess with."

Well, that opens us to errors of omission, ie failing to fsync things we
should have.

Is that really that likely? I mean we don't normally add data to the top
level directory itself, and subdirectories hopefully won't be added
except via initdb?

That feels like a pretty low risk, to me at least. Certainly better
than having a failure, like what's going on now.

Maybe that's an okay risk, but personally I'd judge that
"fsync everything and ignore (some?) errors" is probably a more robust
approach over time.

The over-the-top approach would be to combine the two. Error out in
directories that are in the initdb list, and ignore permission errors
otherwise...

That seems overly complicated, for my 2c at least. I don't particularly
like trying to mess with files that might be rightfully considered "not
ours" either. This all makes me really wonder about
postgresql.auto.conf too.. Clearly, on the one hand, we consider that
"our" file, and so we should error out if we don't own it, but on the
other hand, I've specifically recommended making that file owned by
root to some folks, to avoid DBAs playing with the startup-time
settings..

Additionally we could attempt to fsync with a readonly fd before trying
the read-write fd...

Not really sure I see that as helping.

Thanks!

Stephen

#16Andres Freund
andres@anarazel.de
In reply to: Stephen Frost (#15)
Re: fsync-pgdata-on-recovery tries to write to more files than previously

On 2015-05-25 14:14:10 -0400, Stephen Frost wrote:

That seems overly complicated, for my 2c at least. I don't particularly
like trying to mess with files that might be rightfully considered "not
ours" either.

I'd not consider an fsync to be "messing" with files, especially if
they're in PGDATA.

Additionally we could attempt to fsync with a readonly fd before trying
the read-write fd...

Not really sure I see that as helping.

On most OSs, except windows and some obscure unixes, a readonly fd is
allowed to fsync a file.

Greetings,

Andres Freund

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

#17Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andres Freund (#16)
Re: fsync-pgdata-on-recovery tries to write to more files than previously

Andres Freund <andres@anarazel.de> writes:

On 2015-05-25 14:14:10 -0400, Stephen Frost wrote:

Additionally we could attempt to fsync with a readonly fd before trying
the read-write fd...

Not really sure I see that as helping.

On most OSs, except windows and some obscure unixes, a readonly fd is
allowed to fsync a file.

Perhaps, but if we didn't have permission to write the file, it's hard to
argue that it's our responsibility to fsync it. So this seems like it's
adding complexity without really adding any safety.

regards, tom lane

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

#18Stephen Frost
sfrost@snowman.net
In reply to: Andres Freund (#16)
Re: fsync-pgdata-on-recovery tries to write to more files than previously

* Andres Freund (andres@anarazel.de) wrote:

On 2015-05-25 14:14:10 -0400, Stephen Frost wrote:

That seems overly complicated, for my 2c at least. I don't particularly
like trying to mess with files that might be rightfully considered "not
ours" either.

I'd not consider an fsync to be "messing" with files, especially if
they're in PGDATA.

I'm not entirely sure I agree.

Additionally we could attempt to fsync with a readonly fd before trying
the read-write fd...

Not really sure I see that as helping.

On most OSs, except windows and some obscure unixes, a readonly fd is
allowed to fsync a file.

I wouldn't have thought otherwise, given that you were suggesting it,
but there's no guarantee we're going to be allowed to read it either, or
even access the directory the symlink points to, etc..

Thanks,

Stephen

#19Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Tom Lane (#13)
Re: fsync-pgdata-on-recovery tries to write to more files than previously

Tom Lane wrote:

Stephen Frost <sfrost@snowman.net> writes:

I've not followed this thread all that closely, but I do tend to agree
with the idea of "only try to mess with files that are *clearly* ours to
mess with."

Well, that opens us to errors of omission, ie failing to fsync things we
should have. Maybe that's an okay risk, but personally I'd judge that
"fsync everything and ignore (some?) errors" is probably a more robust
approach over time.

How is it possible to make errors of omission? The list of directories
in initdb is the complete set of directories that are created for a
newly-initdb'd database, no? Surely there can't be a database that
contains vital directories that are not created there? See "subdirs"
static in initdb.c.

--
�lvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

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

#20Tom Lane
tgl@sss.pgh.pa.us
In reply to: Alvaro Herrera (#19)
Re: fsync-pgdata-on-recovery tries to write to more files than previously

Alvaro Herrera <alvherre@2ndquadrant.com> writes:

Tom Lane wrote:

Well, that opens us to errors of omission, ie failing to fsync things we
should have. Maybe that's an okay risk, but personally I'd judge that
"fsync everything and ignore (some?) errors" is probably a more robust
approach over time.

How is it possible to make errors of omission? The list of directories
in initdb is the complete set of directories that are created for a
newly-initdb'd database, no? Surely there can't be a database that
contains vital directories that are not created there? See "subdirs"
static in initdb.c.

Easy: all you need is to suppose that some of the plain files at top level
of $PGDATA ought to be fsync'd. (I'm fairly sure for example that we took
steps awhile back to force postmaster.pid to be fsync'd.) If there is a
distinction between the fsync requirements of top-level files and
everything else, it is completely accidental and not to be relied on.

And from the other direction, where exactly is it written that
distros/users will only create problematic files at the top level of
$PGDATA? I'd have zero confidence in such an assertion applied to
tablespace directories, for sure.

regards, tom lane

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

#21Josh Berkus
josh@agliodbs.com
In reply to: Tom Lane (#3)
#22Robert Haas
robertmhaas@gmail.com
In reply to: Tom Lane (#17)
#23Stephen Frost
sfrost@snowman.net
In reply to: Robert Haas (#22)
#24Andres Freund
andres@anarazel.de
In reply to: Robert Haas (#22)
#25Abhijit Menon-Sen
ams@2ndQuadrant.com
In reply to: Andres Freund (#24)
#26Stephen Frost
sfrost@snowman.net
In reply to: Abhijit Menon-Sen (#25)
#27Robert Haas
robertmhaas@gmail.com
In reply to: Stephen Frost (#23)
#28Robert Haas
robertmhaas@gmail.com
In reply to: Andres Freund (#24)
#29Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#28)
#30Andrew Dunstan
andrew@dunslane.net
In reply to: Robert Haas (#27)
#31Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#30)
#32Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#31)
#33Magnus Hagander
magnus@hagander.net
In reply to: Andrew Dunstan (#32)
#34Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#32)
#35Andres Freund
andres@anarazel.de
In reply to: Tom Lane (#29)
#36Andres Freund
andres@anarazel.de
In reply to: Andres Freund (#35)
#37Andres Freund
andres@anarazel.de
In reply to: Andres Freund (#35)
#38Abhijit Menon-Sen
ams@2ndQuadrant.com
In reply to: Andres Freund (#35)
#39Abhijit Menon-Sen
ams@2ndQuadrant.com
In reply to: Andres Freund (#37)
#40Abhijit Menon-Sen
ams@2ndQuadrant.com
In reply to: Andres Freund (#37)
#41Abhijit Menon-Sen
ams@2ndQuadrant.com
In reply to: Abhijit Menon-Sen (#40)
#42Tom Lane
tgl@sss.pgh.pa.us
In reply to: Abhijit Menon-Sen (#41)
#43Tom Lane
tgl@sss.pgh.pa.us
In reply to: Tom Lane (#42)
#44Abhijit Menon-Sen
ams@2ndQuadrant.com
In reply to: Tom Lane (#42)
#45Tom Lane
tgl@sss.pgh.pa.us
In reply to: Abhijit Menon-Sen (#44)
#46Abhijit Menon-Sen
ams@2ndQuadrant.com
In reply to: Tom Lane (#45)
#47Abhijit Menon-Sen
ams@2ndQuadrant.com
In reply to: Abhijit Menon-Sen (#44)
#48Robert Haas
robertmhaas@gmail.com
In reply to: Abhijit Menon-Sen (#47)
#49Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#48)
#50Abhijit Menon-Sen
ams@2ndQuadrant.com
In reply to: Abhijit Menon-Sen (#47)
#51Robert Haas
robertmhaas@gmail.com
In reply to: Tom Lane (#49)
#52Tom Lane
tgl@sss.pgh.pa.us
In reply to: Abhijit Menon-Sen (#47)
#53Abhijit Menon-Sen
ams@2ndQuadrant.com
In reply to: Tom Lane (#52)
#54Tom Lane
tgl@sss.pgh.pa.us
In reply to: Abhijit Menon-Sen (#53)
#55Michael Paquier
michael@paquier.xyz
In reply to: Tom Lane (#54)
#56Amit Kapila
amit.kapila16@gmail.com
In reply to: Tom Lane (#54)
#57Michael Paquier
michael@paquier.xyz
In reply to: Amit Kapila (#56)
#58Amit Kapila
amit.kapila16@gmail.com
In reply to: Michael Paquier (#57)
#59Christoph Berg
myon@debian.org
In reply to: Tom Lane (#52)
#60Michael Paquier
michael@paquier.xyz
In reply to: Amit Kapila (#58)
#61Tom Lane
tgl@sss.pgh.pa.us
In reply to: Michael Paquier (#60)
#62Tom Lane
tgl@sss.pgh.pa.us
In reply to: Abhijit Menon-Sen (#53)
#63Abhijit Menon-Sen
ams@2ndQuadrant.com
In reply to: Tom Lane (#62)
#64Andres Freund
andres@anarazel.de
In reply to: Tom Lane (#62)
#65Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andres Freund (#64)
#66Andres Freund
andres@anarazel.de
In reply to: Tom Lane (#65)
#67Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andres Freund (#66)
#68Andres Freund
andres@anarazel.de
In reply to: Tom Lane (#67)
#69Stephen Frost
sfrost@snowman.net
In reply to: Andres Freund (#66)
#70Christoph Berg
myon@debian.org
In reply to: Tom Lane (#65)