Re: [HACKERS] RFC: Remove contrib entirely

2015-05-29 Thread Pavel Stehule
2015-05-29 8:54 GMT+02:00 Michael Paquier :

> On Fri, May 29, 2015 at 3:20 PM, Guillaume Lelarge
>  wrote:
> > Le 29 mai 2015 8:10 AM, "Pavel Stehule"  a
> écrit :
> >>
> >> Hi
> >>
> >> I am not sure if PGXN can substitute contrib - mainly due deployment -
> It
> >> doesn't helps with MS Windows. Installing necessary software for
> compilation
> >> there is terrible.
> >>
> >
> > I agree it's hard to compile an extension on Windows, but that's already
> > what we have. And I'm sure EDB will put all interesting contrib modules
> in
> > their windows installer to help users. They already go way further than
> any
> > Linux packages.
>
> Speaking with my Windows packager hat on, compiling with MinGW would
> not be that terrible I think for extensions, as all the existing
> Makefile machinery could be used for this purpose. MSVC stuff is more
> complicated though with what we have in-core, but still I think that
> we could do something with them if we refactor a bit the code and make
> easier the declaration of Project objects and have some proper
> documentation in the extension chapter, the idea being that users
> should not need to build more than a simple build.pl file linking to
> some of .pm files of the in-core perl module scripts, basically with a
> switch to src/tools/msvc. You would need to have those modules as well
> as the compiled deliverables to compile the extensions, but that's the
> same deal as any devel-* package on Linux.
>

I had a lot of problems with MSVC installation

Issues:

1. VS requires relatively new MS Windows - problem for people with Ms Win 7
and older

2. After installation you have to find and apply some critical fixes - some
is bad documented.

I have a few customers on MS Win - nobody was able to compile extension
there - and I had lot of trables - (but I worked with MSVC ten years ago)

Regards

Pavel


> --
> Michael
>


Re: [HACKERS] psql tabcomplete - minor bugfix - tabcomplete for SET ROLE TO xxx

2015-05-29 Thread Jeevan Chalke
The following review has been posted through the commitfest application:
make installcheck-world:  not tested
Implements feature:   tested, passed
Spec compliant:   tested, passed
Documentation:not tested

I agree with Peter that "We don't tab-complete everything we possibly could", 
but using tabs after "SET ROLE TO " provides "DEFAULT" as an option which seems 
wrong.
This patch adds list of roles over there, which I guess good to have than 
giving something unusual.

I reviewed this straight forward patch and looks good to me.

Since we might not want this, review is done and thus passing it to committer 
to decide.

The new status of this patch is: Ready for Committer


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


Re: [HACKERS] psql tabcomplete - minor bugfix - tabcomplete for SET ROLE TO xxx

2015-05-29 Thread Pavel Stehule
2015-05-29 9:28 GMT+02:00 Jeevan Chalke :

> The following review has been posted through the commitfest application:
> make installcheck-world:  not tested
> Implements feature:   tested, passed
> Spec compliant:   tested, passed
> Documentation:not tested
>
> I agree with Peter that "We don't tab-complete everything we possibly
> could", but using tabs after "SET ROLE TO " provides "DEFAULT" as an option
> which seems wrong.
> This patch adds list of roles over there, which I guess good to have than
> giving something unusual.
>

Surely, we cannot to support tab-complete everywhere. But if we can do it
simply, we should to do it. Why:

1. It is good help for beginners

2. I am PostgreSQL lecture and evangelist in Czech Republic and Slovak
Republic. The tabcomplete possibility is surprisingly good factor for
accepting PostgreSQL concept, architecture, psql

But back to this topic. I am thinking so it is little bit different due
fact so we support two very syntax for one feature. And looks little bit
strange, so one way is supported by autocomplete and second not.


>
> I reviewed this straight forward patch and looks good to me.
>
> Since we might not want this, review is done and thus passing it to
> committer to decide.


ok


>
> The new status of this patch is: Ready for Committer
>

Thank you very much

Regards

Pavel

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


Re: [HACKERS] RFC: Remove contrib entirely

2015-05-29 Thread Michael Paquier
On Fri, May 29, 2015 at 4:11 PM, Pavel Stehule wrote:
> 1. VS requires relatively new MS Windows - problem for people with Ms Win 7
> and older

Really, I use Win 2k8 stuff and Win7 quite a lot.

> 2. After installation you have to find and apply some critical fixes - some
> is bad documented.

Example? Perhaps we could improve the docs then.

> I have a few customers on MS Win - nobody was able to compile extension
> there - and I had lot of trables - (but I worked with MSVC ten years ago)

Well, FWIW, I have some extensions compiled on Windows using MSVC
modules with stuff like perl -I src/tools/msvc build.pl that are out
of the vanilla scripts and it works... The script is rather simple
even if a bit grotty.
-- 
Michael


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


Re: [HACKERS] RFC: Remove contrib entirely

2015-05-29 Thread Pavel Stehule
2015-05-29 9:42 GMT+02:00 Michael Paquier :

> On Fri, May 29, 2015 at 4:11 PM, Pavel Stehule wrote:
> > 1. VS requires relatively new MS Windows - problem for people with Ms
> Win 7
> > and older
>
> Really, I use Win 2k8 stuff and Win7 quite a lot.
>

On Win 7 you have to search and install now unsupported VS EE 2010.

VS Express 2013 requires Win 8. And finding VS 2010 is not simply - I had
to take install files from some private sources.


> > 2. After installation you have to find and apply some critical fixes -
> some
> > is bad documented.
>
> Example? Perhaps we could improve the docs then.
>

It was a VS 2010 related issues - not PostgreSQL issues


>
> > I have a few customers on MS Win - nobody was able to compile extension
> > there - and I had lot of trables - (but I worked with MSVC ten years ago)
>
> Well, FWIW, I have some extensions compiled on Windows using MSVC
> modules with stuff like perl -I src/tools/msvc build.pl that are out
> of the vanilla scripts and it works... The script is rather simple
> even if a bit grotty.
>

see steps from
http://dba.stackexchange.com/questions/68644/problems-while-building-plpgsql-check-on-windows

It is not hard for Windows C++ developer, It is little bit messy for Linux
developer, and it is out of possibility usual Windows Visual Basic (and
similar level) developers.


> --
> Michael
>


Re: [HACKERS] fsync-pgdata-on-recovery tries to write to more files than previously

2015-05-29 Thread Michael Paquier
On Fri, May 29, 2015 at 12:55 PM, Tom Lane  wrote:
> Abhijit Menon-Sen  writes:
>>> I have to leave shortly, so I'll look at the initdb cleanup tomorrow.
>
>> Here's a revision of that patch that's more along the lines of what you
>> committed.
>
> Will look at that tomorrow ...
>
>> It occurred to me that we should probably also silently skip EACCES on
>> opendir and stat/lstat in walkdir. That's what the attached initdb patch
>> does. If you think it's a good idea, there's also a small fixup attached
>> for the backend version too.
>
> Actually, I was seriously considering removing the don't-log-EACCES
> special case (at least for files, perhaps not for directories).
> The reason being that it's darn hard to verify that the code is doing
> what it's supposed to when there is no simple way to get it to log any
> complaints.  I left it as you wrote it in the committed version, but
> I think both that and the ETXTBSY special case do not really have value
> as long as their only effect is to suppress a LOG entry.
>
> Speaking of which, could somebody test that the committed patch does
> what it's supposed to on Windows?  You were worried upthread about
> whether the tests for symlinks (aka junction points) behaved correctly,
> and I have no way to check that either.

The error can be reproduced by using junction
(https://technet.microsoft.com/en-us/sysinternals/bb896768.aspx) to
define a junction point within PGDATA and then for example mark as
read-only a configuration file included in postgresql.conf through the
junction point.

Using this method, I have checked that 9.4.1 works, reproduced the
permission error with 9.4.2, and checked as well that a3ae3db4 fixed
the problem. So things look to work fine.
Regards,
-- 
Michael


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


Re: [HACKERS] bugfix: incomplete implementation of errhidecontext

2015-05-29 Thread Jeevan Chalke
Pavel, will it be good if you separately submit the
"bugfix: incomplete implementation of errhidecontext"
patch in this commitfest?


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


Re: [HACKERS] bugfix: incomplete implementation of errhidecontext

2015-05-29 Thread Pavel Stehule
2015-05-29 9:53 GMT+02:00 Jeevan Chalke :

> Pavel, will it be good if you separately submit the
> "bugfix: incomplete implementation of errhidecontext"
> patch in this commitfest?
>
>
ok, I'll do it

Pavel


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


Re: [HACKERS] fsync-pgdata-on-recovery tries to write to more files than previously

2015-05-29 Thread Amit Kapila
On Fri, May 29, 2015 at 9:25 AM, Tom Lane  wrote:
>
>
> Speaking of which, could somebody test that the committed patch does
> what it's supposed to on Windows?  You were worried upthread about
> whether the tests for symlinks (aka junction points) behaved correctly,
> and I have no way to check that either.
>

I have done some tests for the committed patch for this issue
(especially to check the behaviour of symlink tests in the
new code) on Windows - 7 and below are results:

Test symlink for pg_xlog
-
Test -1 - Junction point for pg_xlog
1. Create a database (initdb)
2. Start server and forcefully crash it
3. cp E:\PGData\pg_xlog E:\TempLog\xlog_symlink_loc
4. mv E:\PGData\pg_xlog E:\bak_pg_xlog
5. Created a directory junction (equivalent symlink)
mklink /J E:\ PGData\pg_xlog E:\TempLog\xlog_symlink_loc
6.  Restart Server - operation is successful.
I have debugged this operation, it does what it suppose to do,
detects the junction point and does fsync.

Test - 2 - Directory Symlink for pg_xlog
First 4 steps are same as Test-1
5.  mklink /D E:\ PGData\pg_xlog E:\TempLog\xlog_symlink_loc
6.  Restart Server - Error
- FATAL:  required WAL directory "pg_xlog" does not exist
This error occurs in
ValidateXLOGDirectoryStructure()->stat(XLOGDIR, &stat_buf)
7. If I manually step-through that line, it proceeds and in
SyncDataDirectory(), it detects the symlink;
8. After that in SyncDataDirectory(), when it does walkdir for
datadir, for ./pg_xlog it reports the log message and then
proceeds normal and the server is started.

Test-3 - Symlinks in pg_tblspc.
1. Create couple of tablespaces which creates symlinks
in pg_tblspc
2. Crash the server
3. Restart Server - It works fine.

I am not sure Test-2 is a valid thing and we should support it or
not, but the current patch is sane w.r.t that form of symlinks
as well.


With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com


Re: [HACKERS] WIP: Enhanced ALTER OPERATOR

2015-05-29 Thread Alexander Korotkov
On Thu, May 28, 2015 at 6:43 PM, Tom Lane  wrote:

> Alexander Korotkov  writes:
> > Could we address both this problems by denying changing existing
> > commutators and negator? ISTM that setting absent commutator and negator
> is
> > quite enough for ALTER OPERATOR. User extensions could need setting of
> > commutator and negator because they could add new operators which don't
> > exist before. But it's rather uncommon to unset or change commutator or
> > negator.
>
> Note that this functionality is already covered, in that you can specify
> the commutator/negator linkage when you create the second operator.
> I'm not particularly convinced that we need to have it in ALTER OPERATOR.
>

Yeah, I didn't notice that CREATE OPERATOR sets commutator and negator on
opposite side as well. Then we probably can leave ALTER OPERATOR without
altering commutator and negator.

BTW, does DROP OPERATOR works correctly?

# create operator == (procedure = int8eq, leftarg = bigint, rightarg =
bigint);
CREATE OPERATOR
# create operator !== (procedure = int8ne, leftarg = bigint, rightarg =
bigint, negator = ==);
CREATE OPERATOR
# select oid, * from pg_operator where oprnamespace = (select oid from
pg_namespace where nspname = 'public');
  oid  | oprname | oprnamespace | oprowner | oprkind | oprcanmerge |
oprcanhash | oprleft | oprright | oprresult | oprcom | oprnegate | oprcode
| oprrest | oprjoin
---+-+--+--+-+-++-+--+---++---+-+-+-
 46355 | !== | 2200 |   10 | b   | f   | f
 |  20 |   20 |16 |  0 | 46354 | int8ne  | -
| -
 46354 | ==  | 2200 |   10 | b   | f   | f
 |  20 |   20 |16 |  0 | 46355 | int8eq  | -
| -
(2 rows)
# create table test (id bigint);
CREATE TABLE
# explain verbose select * from test where not id == 10::bigint;
  QUERY PLAN
---
 Seq Scan on public.test  (cost=0.00..38.25 rows=1130 width=8)
   Output: id
   Filter: (test.id !== '10'::bigint)
(3 rows)
# drop operator !== (int8, int8);
DROP OPERATOR
# select oid, * from pg_operator where oprnamespace = (select oid from
pg_namespace where nspname = 'public');
  oid  | oprname | oprnamespace | oprowner | oprkind | oprcanmerge |
oprcanhash | oprleft | oprright | oprresult | oprcom | oprnegate | oprcode
| oprrest | oprjoin
---+-+--+--+-+-++-+--+---++---+-+-+-
 46354 | ==  | 2200 |   10 | b   | f   | f
 |  20 |   20 |16 |  0 | 46355 | int8eq  | -
| -
(1 row)
# explain verbose select * from test where not id == 10::bigint;
ERROR:  cache lookup failed for function 0

DROP OPERATOR leaves broken reference in oprnegate. Should we fix it?

--
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company


Re: [HACKERS] RFC: Remove contrib entirely

2015-05-29 Thread Dave Page
On Fri, May 29, 2015 at 7:20 AM, Guillaume Lelarge
 wrote:
> Le 29 mai 2015 8:10 AM, "Pavel Stehule"  a écrit :
>>
>> Hi
>>
>> I am not sure if PGXN can substitute contrib - mainly due deployment - It
>> doesn't helps with MS Windows. Installing necessary software for compilation
>> there is terrible.
>>
>
> I agree it's hard to compile an extension on Windows, but that's already
> what we have. And I'm sure EDB will put all interesting contrib modules in
> their windows installer to help users. They already go way further than any
> Linux packages.

The only extra extension we ship is pl/debugger.


-- 
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


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


Re: [HACKERS] RFC: Remove contrib entirely

2015-05-29 Thread Dave Page
On Fri, May 29, 2015 at 7:27 AM, Pavel Stehule  wrote:
>
>
> 2015-05-29 8:20 GMT+02:00 Guillaume Lelarge :
>>
>> Le 29 mai 2015 8:10 AM, "Pavel Stehule"  a écrit
>> :
>> >
>> > Hi
>> >
>> > I am not sure if PGXN can substitute contrib - mainly due deployment -
>> > It doesn't helps with MS Windows. Installing necessary software for
>> > compilation there is terrible.
>> >
>>
>> I agree it's hard to compile an extension on Windows, but that's already
>> what we have. And I'm sure EDB will put all interesting contrib modules in
>> their windows installer to help users. They already go way further than any
>> Linux packages.
>
> I afraid so dependency on EDB in this case is wrong - I have respect to EDB
> due  work, but installation other extension from EDB stack is difficult,
> unclean, and nothing what I would to use as new base.

The five or six mouse clicks required to install something like Slony
or PostGIS (or both at once) is difficult and unclean?

-- 
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


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


Re: [HACKERS] RFC: Remove contrib entirely

2015-05-29 Thread Dave Page
On Fri, May 29, 2015 at 9:35 AM, Dave Page  wrote:
> On Fri, May 29, 2015 at 7:20 AM, Guillaume Lelarge
>  wrote:
>> Le 29 mai 2015 8:10 AM, "Pavel Stehule"  a écrit :
>>>
>>> Hi
>>>
>>> I am not sure if PGXN can substitute contrib - mainly due deployment - It
>>> doesn't helps with MS Windows. Installing necessary software for compilation
>>> there is terrible.
>>>
>>
>> I agree it's hard to compile an extension on Windows, but that's already
>> what we have. And I'm sure EDB will put all interesting contrib modules in
>> their windows installer to help users. They already go way further than any
>> Linux packages.
>
> The only extra extension we ship is pl/debugger.

To clarify - that's the only one we ship in the PostgreSQL installer.
There are many more that we ship (both from EDB and other sources),
but users use StackBuilder to choose, download and install them.

-- 
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


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


Re: [HACKERS] RFC: Remove contrib entirely

2015-05-29 Thread Dave Page
On Fri, May 29, 2015 at 8:50 AM, Pavel Stehule  wrote:
>
>
> 2015-05-29 9:42 GMT+02:00 Michael Paquier :
>>
>> On Fri, May 29, 2015 at 4:11 PM, Pavel Stehule wrote:
>> > 1. VS requires relatively new MS Windows - problem for people with Ms
>> > Win 7
>> > and older
>>
>> Really, I use Win 2k8 stuff and Win7 quite a lot.
>
>
> On Win 7 you have to search and install now unsupported VS EE 2010.

I've been running 2013 on Windows 7 since it came out. Works perfectly
well, and didn't require any unusual installation.

-- 
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


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


Re: [HACKERS] RFC: Remove contrib entirely

2015-05-29 Thread Pavel Stehule
2015-05-29 10:40 GMT+02:00 Dave Page :

> On Fri, May 29, 2015 at 8:50 AM, Pavel Stehule 
> wrote:
> >
> >
> > 2015-05-29 9:42 GMT+02:00 Michael Paquier :
> >>
> >> On Fri, May 29, 2015 at 4:11 PM, Pavel Stehule wrote:
> >> > 1. VS requires relatively new MS Windows - problem for people with Ms
> >> > Win 7
> >> > and older
> >>
> >> Really, I use Win 2k8 stuff and Win7 quite a lot.
> >
> >
> > On Win 7 you have to search and install now unsupported VS EE 2010.
>
> I've been running 2013 on Windows 7 since it came out. Works perfectly
> well, and didn't require any unusual installation.
>

I had different experience - When I did it year ago, I had to searching and
install VS 2010.

Pavel


>
> --
> Dave Page
> Blog: http://pgsnake.blogspot.com
> Twitter: @pgsnake
>
> EnterpriseDB UK: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>


Re: [HACKERS] RFC: Remove contrib entirely

2015-05-29 Thread Pavel Stehule
2015-05-29 10:37 GMT+02:00 Dave Page :

> On Fri, May 29, 2015 at 7:27 AM, Pavel Stehule 
> wrote:
> >
> >
> > 2015-05-29 8:20 GMT+02:00 Guillaume Lelarge :
> >>
> >> Le 29 mai 2015 8:10 AM, "Pavel Stehule"  a
> écrit
> >> :
> >> >
> >> > Hi
> >> >
> >> > I am not sure if PGXN can substitute contrib - mainly due deployment -
> >> > It doesn't helps with MS Windows. Installing necessary software for
> >> > compilation there is terrible.
> >> >
> >>
> >> I agree it's hard to compile an extension on Windows, but that's already
> >> what we have. And I'm sure EDB will put all interesting contrib modules
> in
> >> their windows installer to help users. They already go way further than
> any
> >> Linux packages.
> >
> > I afraid so dependency on EDB in this case is wrong - I have respect to
> EDB
> > due  work, but installation other extension from EDB stack is difficult,
> > unclean, and nothing what I would to use as new base.
>
> The five or six mouse clicks required to install something like Slony
> or PostGIS (or both at once) is difficult and unclean?
>

I had a problem with downloading isolated packages with stackbuilder - but
it was specific, because comp where some packages was installed was not
access to internet.


>
> --
> Dave Page
> Blog: http://pgsnake.blogspot.com
> Twitter: @pgsnake
>
> EnterpriseDB UK: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>


Re: [HACKERS] fsync-pgdata-on-recovery tries to write to more files than previously

2015-05-29 Thread Michael Paquier
On Fri, May 29, 2015 at 5:01 PM, Amit Kapila  wrote:
> On Fri, May 29, 2015 at 9:25 AM, Tom Lane  wrote:
>>
>>
>> Speaking of which, could somebody test that the committed patch does
>> what it's supposed to on Windows?  You were worried upthread about
>> whether the tests for symlinks (aka junction points) behaved correctly,
>> and I have no way to check that either.
>>
>
> I have done some tests for the committed patch for this issue
> (especially to check the behaviour of symlink tests in the
> new code) on Windows - 7 and below are results:
>
> Test symlink for pg_xlog
> -
> Test -1 - Junction point for pg_xlog
> 1. Create a database (initdb)
> 2. Start server and forcefully crash it
> 3. cp E:\PGData\pg_xlog E:\TempLog\xlog_symlink_loc
> 4. mv E:\PGData\pg_xlog E:\bak_pg_xlog
> 5. Created a directory junction (equivalent symlink)
> mklink /J E:\ PGData\pg_xlog E:\TempLog\xlog_symlink_loc
> 6.  Restart Server - operation is successful.
> I have debugged this operation, it does what it suppose to do,
> detects the junction point and does fsync.
>
> Test - 2 - Directory Symlink for pg_xlog
> First 4 steps are same as Test-1
> 5.  mklink /D E:\ PGData\pg_xlog E:\TempLog\xlog_symlink_loc
> 6.  Restart Server - Error
> - FATAL:  required WAL directory "pg_xlog" does not exist
> This error occurs in
> ValidateXLOGDirectoryStructure()->stat(XLOGDIR, &stat_buf)
> 7. If I manually step-through that line, it proceeds and in
> SyncDataDirectory(), it detects the symlink;
> 8. After that in SyncDataDirectory(), when it does walkdir for
> datadir, for ./pg_xlog it reports the log message and then
> proceeds normal and the server is started.
>
> Test-3 - Symlinks in pg_tblspc.
> 1. Create couple of tablespaces which creates symlinks
> in pg_tblspc
> 2. Crash the server
> 3. Restart Server - It works fine.
>
> I am not sure Test-2 is a valid thing and we should support it or
> not, but the current patch is sane w.r.t that form of symlinks
> as well.

It is always good to check, but is that relevant to the bug fixed? I
mean, you need to symlink a file in PGDATA that server has no write
permission on... For example tablespaces can be written to in test 3,
so that would work even with 9.4.2 after crashing the server with -m
immediate.
-- 
Michael


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


Re: [HACKERS] RFC: Remove contrib entirely

2015-05-29 Thread Michael Paquier
On Fri, May 29, 2015 at 5:52 PM, Pavel Stehule  wrote:
>
>
> 2015-05-29 10:40 GMT+02:00 Dave Page :
>>
>> On Fri, May 29, 2015 at 8:50 AM, Pavel Stehule 
>> wrote:
>> >
>> >
>> > 2015-05-29 9:42 GMT+02:00 Michael Paquier :
>> >>
>> >> On Fri, May 29, 2015 at 4:11 PM, Pavel Stehule wrote:
>> >> > 1. VS requires relatively new MS Windows - problem for people with Ms
>> >> > Win 7
>> >> > and older
>> >>
>> >> Really, I use Win 2k8 stuff and Win7 quite a lot.
>> >
>> >
>> > On Win 7 you have to search and install now unsupported VS EE 2010.
>>
>> I've been running 2013 on Windows 7 since it came out. Works perfectly
>> well, and didn't require any unusual installation.
>
>
> I had different experience - When I did it year ago, I had to searching and
> install VS 2010.

And it is not mandatory to use or install visual basic, a simple
Windows SDK with perl installed is enough to build and install PG from
a command prompt.
-- 
Michael


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


Re: [HACKERS] RFC: Remove contrib entirely

2015-05-29 Thread Dave Page
On Fri, May 29, 2015 at 9:55 AM, Pavel Stehule  wrote:
>
>
> 2015-05-29 10:37 GMT+02:00 Dave Page :
>>
>> On Fri, May 29, 2015 at 7:27 AM, Pavel Stehule 
>> wrote:
>> >
>> >
>> > 2015-05-29 8:20 GMT+02:00 Guillaume Lelarge :
>> >>
>> >> Le 29 mai 2015 8:10 AM, "Pavel Stehule"  a
>> >> écrit
>> >> :
>> >> >
>> >> > Hi
>> >> >
>> >> > I am not sure if PGXN can substitute contrib - mainly due deployment
>> >> > -
>> >> > It doesn't helps with MS Windows. Installing necessary software for
>> >> > compilation there is terrible.
>> >> >
>> >>
>> >> I agree it's hard to compile an extension on Windows, but that's
>> >> already
>> >> what we have. And I'm sure EDB will put all interesting contrib modules
>> >> in
>> >> their windows installer to help users. They already go way further than
>> >> any
>> >> Linux packages.
>> >
>> > I afraid so dependency on EDB in this case is wrong - I have respect to
>> > EDB
>> > due  work, but installation other extension from EDB stack is difficult,
>> > unclean, and nothing what I would to use as new base.
>>
>> The five or six mouse clicks required to install something like Slony
>> or PostGIS (or both at once) is difficult and unclean?
>
>
> I had a problem with downloading isolated packages with stackbuilder - but
> it was specific, because comp where some packages was installed was not
> access to internet.

Run SB on a machine that is connected and:

- Select "remote server" on the first step. This will disable any
filtering based on database server version, which is normally applied
if you're installing to the local machine (it will only offer packages
compatible with the database servers you have installed). This is not
required if you have the appropriate DB server installed on the
internet connected machine as well.

- Make a note of the Download Directory on step 3

- Check "Skip installation" on step 4.

Copy the downloaded installed from the Download Directory to your
server machine, and run them.

-- 
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


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


Re: [HACKERS] RFC: Remove contrib entirely

2015-05-29 Thread Pavel Stehule
2015-05-29 11:02 GMT+02:00 Dave Page :

> On Fri, May 29, 2015 at 9:55 AM, Pavel Stehule 
> wrote:
> >
> >
> > 2015-05-29 10:37 GMT+02:00 Dave Page :
> >>
> >> On Fri, May 29, 2015 at 7:27 AM, Pavel Stehule  >
> >> wrote:
> >> >
> >> >
> >> > 2015-05-29 8:20 GMT+02:00 Guillaume Lelarge :
> >> >>
> >> >> Le 29 mai 2015 8:10 AM, "Pavel Stehule"  a
> >> >> écrit
> >> >> :
> >> >> >
> >> >> > Hi
> >> >> >
> >> >> > I am not sure if PGXN can substitute contrib - mainly due
> deployment
> >> >> > -
> >> >> > It doesn't helps with MS Windows. Installing necessary software for
> >> >> > compilation there is terrible.
> >> >> >
> >> >>
> >> >> I agree it's hard to compile an extension on Windows, but that's
> >> >> already
> >> >> what we have. And I'm sure EDB will put all interesting contrib
> modules
> >> >> in
> >> >> their windows installer to help users. They already go way further
> than
> >> >> any
> >> >> Linux packages.
> >> >
> >> > I afraid so dependency on EDB in this case is wrong - I have respect
> to
> >> > EDB
> >> > due  work, but installation other extension from EDB stack is
> difficult,
> >> > unclean, and nothing what I would to use as new base.
> >>
> >> The five or six mouse clicks required to install something like Slony
> >> or PostGIS (or both at once) is difficult and unclean?
> >
> >
> > I had a problem with downloading isolated packages with stackbuilder -
> but
> > it was specific, because comp where some packages was installed was not
> > access to internet.
>
> Run SB on a machine that is connected and:
>
> - Select "remote server" on the first step. This will disable any
> filtering based on database server version, which is normally applied
> if you're installing to the local machine (it will only offer packages
> compatible with the database servers you have installed). This is not
> required if you have the appropriate DB server installed on the
> internet connected machine as well.
>
> - Make a note of the Download Directory on step 3
>
> - Check "Skip installation" on step 4.
>
> Copy the downloaded installed from the Download Directory to your
> server machine, and run them.
>

Dave, I didn't say so it is difficult task - I solved it relatively simply
- but my customer - long year Oracle DBA, Postgres beginner was messy and
needed help and access to EDB support. He expected and searched a web page
with download, what is much more usual.

Regards

Pavel


>
> --
> Dave Page
> Blog: http://pgsnake.blogspot.com
> Twitter: @pgsnake
>
> EnterpriseDB UK: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>


Re: [HACKERS] fsync-pgdata-on-recovery tries to write to more files than previously

2015-05-29 Thread Amit Kapila
On Fri, May 29, 2015 at 2:28 PM, Michael Paquier 
wrote:
>
> On Fri, May 29, 2015 at 5:01 PM, Amit Kapila 
wrote:
> >
> > Test-3 - Symlinks in pg_tblspc.
> > 1. Create couple of tablespaces which creates symlinks
> > in pg_tblspc
> > 2. Crash the server
> > 3. Restart Server - It works fine.
> >
> > I am not sure Test-2 is a valid thing and we should support it or
> > not, but the current patch is sane w.r.t that form of symlinks
> > as well.
>
> It is always good to check, but is that relevant to the bug fixed? I
> mean, you need to symlink a file in PGDATA that server has no write
> permission on... For example tablespaces can be written to in test 3,
> so that would work even with 9.4.2 after crashing the server with -m
> immediate.

I have just tried to cover the paths which has symlink related code
in the new commit (in functions SyncDataDirectory() and walkdir()),
because thats what I understood from Tom's mail.  Without test-3, it
won't cover walkdir symlink test path, I didn't knew that there was any
confusion about verification of permissions problem on Windows
and I haven't looked to verify the whole patch.

With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com


Re: [HACKERS] Free indexed_tlist memory explicitly within set_plan_refs()

2015-05-29 Thread Peter Geoghegan
On Thu, May 28, 2015 at 6:31 PM, Peter Geoghegan  wrote:
> This concerns a thinko in unique index inference. See the commit
> message for full details.

It seems I missed a required defensive measure here. Attached patch
adds it, too.

-- 
Peter Geoghegan
From c5aee669bbdf58f38f1063934a1d93286506de7b Mon Sep 17 00:00:00 2001
From: Peter Geoghegan 
Date: Fri, 29 May 2015 02:53:41 -0700
Subject: [PATCH 4/4] Additional defensive measure

---
 src/backend/optimizer/util/plancat.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/backend/optimizer/util/plancat.c b/src/backend/optimizer/util/plancat.c
index 1b81f4c..4f38972 100644
--- a/src/backend/optimizer/util/plancat.c
+++ b/src/backend/optimizer/util/plancat.c
@@ -758,7 +758,7 @@ infer_collation_opclass_match(InferenceElem *elem, Relation idxRel,
 			if (((Var *) elem->expr)->varattno == attno)
 return true;
 		}
-		else
+		else if (attno == 0)
 		{
 			Node	   *nattExpr = list_nth(idxExprs, (natt - 1) - nplain);
 
-- 
1.9.1


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


Re: [HACKERS] bugfix: incomplete implementation of errhidecontext

2015-05-29 Thread Pavel Stehule
Done

https://commitfest.postgresql.org/5/257/

2015-05-29 9:56 GMT+02:00 Pavel Stehule :

>
>
> 2015-05-29 9:53 GMT+02:00 Jeevan Chalke :
>
>> Pavel, will it be good if you separately submit the
>> "bugfix: incomplete implementation of errhidecontext"
>> patch in this commitfest?
>>
>>
> ok, I'll do it
>
> Pavel
>
>
>>
>> --
>> Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
>> To make changes to your subscription:
>> http://www.postgresql.org/mailpref/pgsql-hackers
>>
>
>


Re: [HACKERS] Re: [GENERAL] 9.4.1 -> 9.4.2 problem: could not access status of transaction 1

2015-05-29 Thread Thomas Munro
On Fri, May 29, 2015 at 11:24 AM, Robert Haas  wrote:
> A. Most obviously, we should fix pg_upgrade so that it installs
> chkpnt_oldstMulti instead of chkpnt_nxtmulti into datfrozenxid, so
> that we stop creating new instances of this problem.  That won't get
> us out of the hole we've dug for ourselves, but we can at least try to
> stop digging.  (This is assuming I'm right that chkpnt_nxtmulti is the
> wrong thing - anyone want to double-check me on that one?)

Yes, it seems like this could lead to truncation of multixacts still
referenced by tuples, leading to errors when updating, locking,
vacuuming.  Why don't we have reports of that?

> B. We need to change find_multixact_start() to fail softly.  This is
> important because it's legitimate for it to fail in recovery, as
> discussed upthread, and also because we probably want to eliminate the
> fail-to-start hazard introduced in 9.4.2 and 9.3.7.
> find_multixact_start() is used in three places, and they each require
> separate handling:

Here is an experimental WIP patch that changes StartupMultiXact and
SetMultiXactIdLimit to find the oldest multixact that exists on disk
(by scanning the directory), and uses that if it is more recent than
the oldestMultiXactId from shmem, when calling
DetermineSafeOldestOffset.  I'm not all that happy with it, see below,
but let me know what you think.

Using unpatched master, I reproduced the startup error with a bit of a
short cut:

1.  initdb, generate enough multixacts to get more than one offsets file
2.  ALTER DATABASE template0 ALLOW_CONNECTION = true;, vacuumdb
--freeze --all, CHECKPOINT
3.  verify that pg_control now holds a large oldestMultiXactId, and
note NextMultiXactId
4.  shutdown, pg_resetxlog -m (NextMultiXactId from 3),1 pg_data
5.  start up: fails

Apply this patch, and it starts up successfully.

What are the repro steps for the replay problem?  Is a basebackup of a
large database undergoing truncation and some good timing needed?

> - In SetMultiXactIdLimit, find_multixact_start() is used to set
> MultiXactState->oldestOffset, which is used to determine how
> aggressively to vacuum.  If find_multixact_start() fails, we don't
> know how aggressively we need to vacuum to prevent members wraparound;
> it's probably best to decide to vacuum as aggressively as possible.
> Of course, if we're in recovery, we won't vacuum either way; the fact
> that it fails softly is good enough.

Isn't it enough to use the start offset for the most recent of the
oldest multixact ID and the oldest multixact found by scanning
pg_multixact/offsets?  In this patch, it does that, but I'm not happy
with the time the work is done, it just doesn't seem right for
SetMultiXactIdLimit to be scanning that directory.  The result of that
operation should only change when files have been truncated anyway,
and the truncate code was already doing a filesystem scan.  Maybe the
truncate code should store the earliest multixact ID found on disk in
shared memory, so that SetMultiXactIdLimit can use it for free.  I
tried to get that working but couldn't figure out where it should be
initialised -- StartupMultiXact is too late (StartupXLOG calls
SetMultiXactIdLimit before that), but BootstrapMultiXact and
MultiXactShmemInit didn't seem like the right places either.

> - In DetermineSafeOldestOffset, find_multixact_start() is used to set
> MultiXactState->offsetStopLimit.  If it fails here, we don't know when
> to refuse multixact creation to prevent wraparound.  Again, in
> recovery, that's fine.  If it happens in normal running, it's not
> clear what to do.  Refusing multixact creation is an awfully blunt
> instrument.  Maybe we can scan pg_multixact/offsets to determine a
> workable stop limit: the first file greater than the current file that
> exists, minus two segments, is a good stop point.  Perhaps we ought to
> use this mechanism here categorically, not just when
> find_multixact_start() fails.  It might be more robust than what we
> have now.

Done in this patch -- the truncate code calls
DetermineSafeOldestOffset with the earliest SLRU found by scanning if
that's more recent than the shmem value, and then
DetermineSafeOldestOffset applies the step-back-one-whole-segment
logic to that as before.

> - In TruncateMultiXact, find_multixact_start() is used to set the
> truncation point for the members SLRU.  If it fails here, I'm guessing
> the right solution is not to truncate anything - instead, rely on
> intense vacuuming to eventually advance oldestMXact to a value whose
> member data still exists; truncate then.

TruncateMultiXact already contained logic to do nothing at all if
oldestMXact is older than the earliest it can find on disk.  I moved
that code into find_earliest_multixact_on_disk() to be able to use it
elsewhere too, in this patch.

> C. I think we should also change TruncateMultiXact() to truncate
> offsets first, and then members.  As things stand, if we truncate
> members first, we increase the risk of seeing an off

Re: [HACKERS] fsync-pgdata-on-recovery tries to write to more files than previously

2015-05-29 Thread Christoph Berg
Re: Tom Lane 2015-05-28 <5740.1432849...@sss.pgh.pa.us>
> Abhijit Menon-Sen  writes:
> > Here's an updated patch for the fsync problem(s).
> 
> I've committed this after some mostly-cosmetic rearrangements.

Fwiw, I can confirm that the problem is fixed for 9.5. The regression
tests I've added to postgresql-common pass. Thanks!

Christoph
-- 
c...@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


Re: [HACKERS] Re: [GENERAL] 9.4.1 -> 9.4.2 problem: could not access status of transaction 1

2015-05-29 Thread Christoph Berg
Re: Robert Haas 2015-05-29 

> > FTR: Robert, you have been a Samurai on this issue. Our many thanks.
> 
> Thanks!  I really appreciate the kind words.

I'm still watching with admiration. This list of steps-to-reproduce is
the longest and at the same time best I've ever seen.

If anyone ever asks me why debugging in open source projects is better
than closed source, I'll point them to this thread.

Christoph
-- 
c...@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


Re: [HACKERS] fsync-pgdata-on-recovery tries to write to more files than previously

2015-05-29 Thread Michael Paquier
On Fri, May 29, 2015 at 6:49 PM, Amit Kapila  wrote:
> On Fri, May 29, 2015 at 2:28 PM, Michael Paquier 
> wrote:
>>
>> On Fri, May 29, 2015 at 5:01 PM, Amit Kapila 
>> wrote:
>> >
>> > Test-3 - Symlinks in pg_tblspc.
>> > 1. Create couple of tablespaces which creates symlinks
>> > in pg_tblspc
>> > 2. Crash the server
>> > 3. Restart Server - It works fine.
>> >
>> > I am not sure Test-2 is a valid thing and we should support it or
>> > not, but the current patch is sane w.r.t that form of symlinks
>> > as well.
>>
>> It is always good to check, but is that relevant to the bug fixed? I
>> mean, you need to symlink a file in PGDATA that server has no write
>> permission on... For example tablespaces can be written to in test 3,
>> so that would work even with 9.4.2 after crashing the server with -m
>> immediate.
>
> I have just tried to cover the paths which has symlink related code
> in the new commit (in functions SyncDataDirectory() and walkdir()),
> because thats what I understood from Tom's mail.  Without test-3, it
> won't cover walkdir symlink test path, I didn't knew that there was any
> confusion about verification of permissions problem on Windows
> and I haven't looked to verify the whole patch.

Reading once again this thread (after some good red wine + alpha), it
looks that you are right: not many checks with Windows junctions have
actually been with what has been committed...

> Test - 2 - Directory Symlink for pg_xlog
> First 4 steps are same as Test-1
> 5.  mklink /D E:\ PGData\pg_xlog E:\TempLog\xlog_symlink_loc
> 6.  Restart Server - Error
> - FATAL:  required WAL directory "pg_xlog" does not exist
> This error occurs in
> ValidateXLOGDirectoryStructure()->stat(XLOGDIR, &stat_buf)
> 7. If I manually step-through that line, it proceeds and in
> SyncDataDirectory(), it detects the symlink;
> 8. After that in SyncDataDirectory(), when it does walkdir for
> datadir, for ./pg_xlog it reports the log message and then
> proceeds normal and the server is started.

Regarding this test, I just tested initdb -X and it works correctly
after crashing the server, so there is at least a workaround for the
error you are triggering here. Now, shouldn't we improve things as
well with mklink? That's a rather narrow case and we have a workaround
for it at initialization with initdb. I haven't looked much at the
code so I don't have a patch at hand but thoughts on this matter are
welcome.
-- 
Michael


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


Re: [HACKERS] proleakproof vs opr_sanity test

2015-05-29 Thread Michael Paquier
On Fri, May 29, 2015 at 12:09 AM, Tom Lane wrote:
> So I think we ought to fix xideqint4 to be marked leakproof and then
> add this test.  That would only be in HEAD though since it'd require
> an initdb.  Any objections?

FWIW, this makes sense.

> Is there a reason to believe that a
> built-in function might be leakproof when invoked from one function
> OID but not another?

I can't think about one after pondering about that a bit...
-- 
Michael


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


Re: [HACKERS] RFC: Remove contrib entirely

2015-05-29 Thread Joshua D. Drake

On 05/28/2015 11:01 PM, Fabien COELHO wrote:


Also, removing a feature is a regression, and someone is always bound to
complain...


We aren't removing any features. These are all items that are NOT 
installed or functional by default.


Sincerely,

JD



--
The most kicking donkey PostgreSQL Infrastructure company in existence.
The oldest, the most experienced, the consulting company to the stars.
Command Prompt, Inc. http://www.commandprompt.com/ +1 -503-667-4564 -
24x7 - 365 - Proactive and Managed Professional Services!


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


Re: [HACKERS] RFC: Remove contrib entirely

2015-05-29 Thread Joshua D. Drake

On 05/28/2015 11:08 PM, Pavel Stehule wrote:

Hi

I am not sure if PGXN can substitute contrib - mainly due deployment -
It doesn't helps with MS Windows. Installing necessary software for
compilation there is terrible.


Anyone who is building for Windows won't have that problem. They already 
have the environment setup. Windows users for the most part are going to 
download our stackbuilder distro and go from there. They are not going 
to compile modules. What I am suggesting doesn't stop that.


JD

--
The most kicking donkey PostgreSQL Infrastructure company in existence.
The oldest, the most experienced, the consulting company to the stars.
Command Prompt, Inc. http://www.commandprompt.com/ +1 -503-667-4564 -
24x7 - 365 - Proactive and Managed Professional Services!


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


Re: [HACKERS] Re: [GENERAL] 9.4.1 -> 9.4.2 problem: could not access status of transaction 1

2015-05-29 Thread Tom Lane
Thomas Munro  writes:
> On Fri, May 29, 2015 at 11:24 AM, Robert Haas  wrote:
>> B. We need to change find_multixact_start() to fail softly.

> Here is an experimental WIP patch that changes StartupMultiXact and
> SetMultiXactIdLimit to find the oldest multixact that exists on disk
> (by scanning the directory), and uses that if it is more recent than
> the oldestMultiXactId from shmem,

Not sure about the details of this patch, but I was planning to propose
what I think is the same thing: the way to make find_multixact_start()
fail softly is to have it find the oldest actually existing file if the
one that should be there isn't.

This would preserve the idea that we aren't trusting the multixact
tracking data to be completely right, which was the point of 78db307bb
and which evidently is still essential.  It would also obviate the need
for other places to contain similar logic.

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


Re: [HACKERS] fsync-pgdata-on-recovery tries to write to more files than previously

2015-05-29 Thread Tom Lane
Michael Paquier  writes:
> On Fri, May 29, 2015 at 6:49 PM, Amit Kapila  wrote:
>> Test - 2 - Directory Symlink for pg_xlog
>> First 4 steps are same as Test-1
>> 5.  mklink /D E:\ PGData\pg_xlog E:\TempLog\xlog_symlink_loc
>> 6.  Restart Server - Error
>> - FATAL:  required WAL directory "pg_xlog" does not exist
>> This error occurs in
>> ValidateXLOGDirectoryStructure()->stat(XLOGDIR, &stat_buf)
>> 7. If I manually step-through that line, it proceeds and in
>> SyncDataDirectory(), it detects the symlink;
>> 8. After that in SyncDataDirectory(), when it does walkdir for
>> datadir, for ./pg_xlog it reports the log message and then
>> proceeds normal and the server is started.

> Regarding this test, I just tested initdb -X and it works correctly
> after crashing the server, so there is at least a workaround for the
> error you are triggering here. Now, shouldn't we improve things as
> well with mklink? That's a rather narrow case and we have a workaround
> for it at initialization with initdb. I haven't looked much at the
> code so I don't have a patch at hand but thoughts on this matter are
> welcome.

My (vague) recollection is that what mklink creates is not the same
as a junction point and we intentionally only support the latter as
pseudo-symlinks.  You'd need to trawl the archives for more detail,
unless someone else remembers.

So I think we're good here.  Thanks for all the testing!

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


Re: [HACKERS] RFC: Remove contrib entirely

2015-05-29 Thread Stephen Frost
* Joshua D. Drake (j...@commandprompt.com) wrote:
> On 05/28/2015 11:01 PM, Fabien COELHO wrote:
> >Also, removing a feature is a regression, and someone is always bound to
> >complain...
> 
> We aren't removing any features. These are all items that are NOT
> installed or functional by default.

Uh, we've already had reports by Debian users about problems upgrading
when they forgot to install the contrib package for the version they're
moving to, so I'm not sure it's quite that simple.  Or, at least, it
won't be for the packagers, who I do believe this would be creating a
fair bit of work for.

That work will be much less if we simply split what's in contrib now
into extension and contrib directories, as it's still all one source
repo to the packagers.  If we punt things out (unless they're being
formally deprecated/removed) to another repo somewhere, then the
packagers are going to have to deal with new source repos and related
complexity.  I'm not saying that's a horrible thing and it might make
sense in some cases, but generally it's a lot easier to go from one
soruce package to a bunch of binary ones than from lots of tiny source
packages to lots of tiny packages.

The versioning aspect of this does come into play though, as having
everything with one relatively slow versioning cycle (on the order of
months) is actually keeping the load on the packagers down.  Lots of
little releases, all at different times, from lots of different source
packages, would increase the workload.

I'm not sure where I ultimately come down on the question about in-repo
vs. out-of-repo.  My gut feeling is that if the community is willing to
continue maintaining contrib modules, then that's ultimately a good
thing and many of them are relatively low-maintenance anyway.  Having a
high barrier to entry for new modules looks a bit odd, given the
definition of contrib, but would be more understandable with a proper
'extensions' directory.  Of course, we'd have to collectivly agree that
we feel comfortable with a lower barrier for contrib that what is being
done now, if the distinction is going to have any meaning.

Thanks!

Stephen


signature.asc
Description: Digital signature


Re: [HACKERS] [PATCH] Document that directly callable functions may use fn_extra

2015-05-29 Thread Peter Eisentraut
On 5/28/15 10:15 PM, Craig Ringer wrote:
> I was a puzzled by  src/backend/utils/fmgr/README and fmgr.h's
> descriptions of fcinfo->flinfo->fn_extra (FmgrInfo.fn_extra) as they
> seem to conflict with actual usage.
> 
> The docs suggest that fl_extra is for the use of function call handlers,
> but in practice it's also used heavily by function implementations as a
> cache space.

The documentation could also be updated about this.  It mentions using
fn_extra for PL handlers, gist functions, and set-returning functions,
but it doesn't say that you can use it any old function for anything you
want.

I'm not sure how up to date that README actually is.  It looks more like
a historical document describing the original proposal.



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


Re: [HACKERS] Re: [GENERAL] 9.4.1 -> 9.4.2 problem: could not access status of transaction 1

2015-05-29 Thread Robert Haas
On Fri, May 29, 2015 at 10:17 AM, Tom Lane  wrote:
> Thomas Munro  writes:
>> On Fri, May 29, 2015 at 11:24 AM, Robert Haas  wrote:
>>> B. We need to change find_multixact_start() to fail softly.
>
>> Here is an experimental WIP patch that changes StartupMultiXact and
>> SetMultiXactIdLimit to find the oldest multixact that exists on disk
>> (by scanning the directory), and uses that if it is more recent than
>> the oldestMultiXactId from shmem,
>
> Not sure about the details of this patch, but I was planning to propose
> what I think is the same thing: the way to make find_multixact_start()
> fail softly is to have it find the oldest actually existing file if the
> one that should be there isn't.

Working on that now.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


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


Re: [HACKERS] [Proposal] More Vacuum Statistics

2015-05-29 Thread Jeff Janes
On Thu, May 28, 2015 at 4:08 AM, Naoya Anzai 
wrote:

>
> 2. Page visibility rate of each table
> There is no way to know how many page-bits are them of each tables stored
> in their visibility maps. If we can show this information, then we will be
> able to guess vacuum overhead for the table. For example, if this table is
> a
> very big table but page visibility rate is high, then we can advise
> pg-users
> that vacuum for this table will execute faster than they think by low I/O
> overhead.
> Furthermore, this information can also be used in order to inform pg-users
> about "real" index-only-scan usability.
>

Isn't this already pg_class.relallvisible?


Cheers,

Jeff


Re: [HACKERS] fsync-pgdata-on-recovery tries to write to more files than previously

2015-05-29 Thread Tom Lane
Abhijit Menon-Sen  writes:
> At 2015-05-28 17:37:16 -0400, t...@sss.pgh.pa.us wrote:
>> I have to leave shortly, so I'll look at the initdb cleanup tomorrow.

> Here's a revision of that patch that's more along the lines of what you
> committed.

Pushed with minor revisions.

> It occurred to me that we should probably also silently skip EACCES on
> opendir and stat/lstat in walkdir. That's what the attached initdb patch
> does. If you think it's a good idea, there's also a small fixup attached
> for the backend version too.

As I mentioned yesterday, I'm not really on board with ignoring EACCES,
except for the directories-on-Windows case.  Since we're only logging
the failures anyway, I think it is reasonable to log a complaint for any
unwritable file in the data directory.  I've not done it yet, but what
I think we oughta do is revert

if (errno == EACCES || (isdir && errno == EISDIR))

back to the former logic

if (isdir && (errno == EISDIR || errno == EACCES))

and even then, maybe the EACCES exclusion ought to be Windows only?

Also I want to get rid of the ETXTBSY special cases.  That one doesn't
seem like something that we should silently ignore: what the heck are
executables doing in the data directory?  Or is there some other meaning
on Windows?

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


[HACKERS] Need Force flag for pg_drop_replication_slot()

2015-05-29 Thread Josh Berkus
Hackers,

pg_drop_replication_slot() can be a time-critical function when the
master is running out of disk space because the replica is falling
behind.  So I was a little startled by this:

cio=# select
pg_drop_replication_slot('bdr_24577_6147720645156311471_1_25383__');
ERROR:  replication slot "bdr_24577_6147720645156311471_1_25383__" is
already active

You have to first terminate the replication connection before you can
delete the slot ... and do it fast enough that the replica doesn't
reconnect before you drop the slot.

While I'm just doing this during testing, it could be a critical fail in
production.  I think the simplest way to resolve this would be to add a
boolean flag to pg_drop_replication_slot(), which would terminate the
replication connection and delete the slot as a single operation.

-- 
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com


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


[HACKERS] pgindent vs emacs

2015-05-29 Thread Andrew Dunstan
One of the annoying inconsistencies between emacs and pgindent is that 
emacs refuses to offset a block following a case label, while pgindent 
does. Is there anything we can do to induce emacs to do what pgindent does?


cheers

andrew



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


Re: [HACKERS] Need Force flag for pg_drop_replication_slot()

2015-05-29 Thread Andres Freund
Hi,

On 2015-05-29 10:15:56 -0700, Josh Berkus wrote:
> pg_drop_replication_slot() can be a time-critical function when the
> master is running out of disk space because the replica is falling
> behind.

I don't buy this argument. The same is true for DROP TABLE, TRUNCATE,
DROP DATABASE etc.

I mean, I agree it'd be convenient, but I can't see it as "critical".

> While I'm just doing this during testing, it could be a critical fail in
> production.  I think the simplest way to resolve this would be to add a
> boolean flag to pg_drop_replication_slot(), which would terminate the
> replication connection and delete the slot as a single operation.

There's no "single operation" for terminating a backend *and* doing
something...

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


Re: [HACKERS] fsync-pgdata-on-recovery tries to write to more files than previously

2015-05-29 Thread Abhijit Menon-Sen
At 2015-05-29 13:14:18 -0400, t...@sss.pgh.pa.us wrote:
>
> Pushed with minor revisions.

Thanks, looks good.

> Since we're only logging the failures anyway, I think it is reasonable
> to log a complaint for any unwritable file in the data directory. 

Sounds reasonable, patch attached. ETXTBSY has no special meaning that I
can find under Windows, so I included that change as well.

-- Abhijit
diff --git a/src/backend/storage/file/fd.c b/src/backend/storage/file/fd.c
index b4f6590..70e2347 100644
--- a/src/backend/storage/file/fd.c
+++ b/src/backend/storage/file/fd.c
@@ -2646,11 +2646,12 @@ pre_sync_fname(const char *fname, bool isdir, int elevel)
 
 	if (fd < 0)
 	{
-		if (errno == EACCES || (isdir && errno == EISDIR))
+		/* Some platforms don't support opening directories at all. */
+		if (isdir && errno == EISDIR)
 			return;
 
-#ifdef ETXTBSY
-		if (errno == ETXTBSY)
+#ifdef WIN32
+		if (isdir && errno == EACCES)
 			return;
 #endif
 
@@ -2701,11 +2702,12 @@ fsync_fname_ext(const char *fname, bool isdir, int elevel)
 	fd = OpenTransientFile((char *) fname, flags, 0);
 	if (fd < 0)
 	{
-		if (errno == EACCES || (isdir && errno == EISDIR))
+		/* Some platforms don't support opening directories at all. */
+		if (isdir && errno == EISDIR)
 			return;
 
-#ifdef ETXTBSY
-		if (errno == ETXTBSY)
+#ifdef WIN32
+		if (isdir && errno == EACCES)
 			return;
 #endif
 
diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c
index f0d66fa..f343168 100644
--- a/src/bin/initdb/initdb.c
+++ b/src/bin/initdb/initdb.c
@@ -617,11 +617,12 @@ pre_sync_fname(const char *fname, bool isdir)
 
 	if (fd < 0)
 	{
-		if (errno == EACCES || (isdir && errno == EISDIR))
+		/* Some platforms don't support opening directories at all. */
+		if (isdir && errno == EISDIR)
 			return;
 
-#ifdef ETXTBSY
-		if (errno == ETXTBSY)
+#ifdef WIN32
+		if (isdir && errno == EACCES)
 			return;
 #endif
 
@@ -682,11 +683,12 @@ fsync_fname_ext(const char *fname, bool isdir)
 	fd = open(fname, flags);
 	if (fd < 0)
 	{
-		if (errno == EACCES || (isdir && errno == EISDIR))
+		/* Some platforms don't support opening directories at all. */
+		if (isdir && errno == EISDIR)
 			return;
 
-#ifdef ETXTBSY
-		if (errno == ETXTBSY)
+#ifdef WIN32
+		if (isdir && errno == EACCES)
 			return;
 #endif
 

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


Re: [HACKERS] fsync-pgdata-on-recovery tries to write to more files than previously

2015-05-29 Thread Andres Freund
On 2015-05-29 13:14:18 -0400, Tom Lane wrote:
> Abhijit Menon-Sen  writes:
> As I mentioned yesterday, I'm not really on board with ignoring EACCES,
> except for the directories-on-Windows case.  Since we're only logging
> the failures anyway, I think it is reasonable to log a complaint for any
> unwritable file in the data directory.

That sounds like a potentially nontrivial amount of repetitive log bleat
after every crash start? One which the user can't really stop?

> Also I want to get rid of the ETXTBSY special cases.  That one doesn't
> seem like something that we should silently ignore: what the heck are
> executables doing in the data directory?  Or is there some other meaning
> on Windows?

I've seen a bunch of binaries placed in the data directory as
archive/restore commands. Those will be busy a good amount of the
time. While it'd not be my choice to do that, it's not entirely
unreasonable.

Andres


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


Re: [HACKERS] Need Force flag for pg_drop_replication_slot()

2015-05-29 Thread Stephen Frost
Andres,

* Andres Freund (and...@anarazel.de) wrote:
> On 2015-05-29 10:15:56 -0700, Josh Berkus wrote:
> > pg_drop_replication_slot() can be a time-critical function when the
> > master is running out of disk space because the replica is falling
> > behind.
> 
> I don't buy this argument. The same is true for DROP TABLE, TRUNCATE,
> DROP DATABASE etc.

I disagree about that being the same.

> I mean, I agree it'd be convenient, but I can't see it as "critical".

Just a random thought- do we check the LOGIN attribute for replication
connections?  If so, you could tweak that, but that may be an issue if
you have multiple replicas using the same role.

I'm not sure that it's *critical*, but I could see an argument for
adding this post-feature-freeze, which I'm guessing is what Josh was
getting at.

> > While I'm just doing this during testing, it could be a critical fail in
> > production.  I think the simplest way to resolve this would be to add a
> > boolean flag to pg_drop_replication_slot(), which would terminate the
> > replication connection and delete the slot as a single operation.
> 
> There's no "single operation" for terminating a backend *and* doing
> something...

That's a good point, we'd need to figure out how to make this actually
work reliably in the face of a very fast reconnecting process, if we're
going to do it.

Thanks!

Stephen


signature.asc
Description: Digital signature


[HACKERS] [PATCH, TRIVIAL] don't specify S_IRUSR|S_IWUSR without O_CREAT

2015-05-29 Thread Abhijit Menon-Sen
Just for the record: a minor nit I noticed yesterday.

-- Abhijit
>From 07353c86483f7e26d44a9bbe94b32315537cee73 Mon Sep 17 00:00:00 2001
From: Abhijit Menon-Sen 
Date: Fri, 29 May 2015 23:15:15 +0530
Subject: The file mode is ignored without O_CREAT, so set it to 0

---
 src/backend/storage/file/fd.c | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/backend/storage/file/fd.c b/src/backend/storage/file/fd.c
index b4f6590..2f313ff 100644
--- a/src/backend/storage/file/fd.c
+++ b/src/backend/storage/file/fd.c
@@ -416,6 +416,7 @@ void
 fsync_fname(char *fname, bool isdir)
 {
 	int			fd;
+	int			flags;
 	int			returncode;
 
 	/*
@@ -423,14 +424,13 @@ fsync_fname(char *fname, bool isdir)
 	 * systems don't allow us to fsync files opened read-only; so we need both
 	 * cases here
 	 */
+	flags = PG_BINARY;
 	if (!isdir)
-		fd = OpenTransientFile(fname,
-			   O_RDWR | PG_BINARY,
-			   S_IRUSR | S_IWUSR);
+		flags |= O_RDWR;
 	else
-		fd = OpenTransientFile(fname,
-			   O_RDONLY | PG_BINARY,
-			   S_IRUSR | S_IWUSR);
+		flags |= O_RDONLY;
+
+	fd = OpenTransientFile(fname, flags, 0);
 
 	/*
 	 * Some OSs don't allow us to open directories at all (Windows returns
-- 
1.9.1


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


Re: [HACKERS] pgindent vs emacs

2015-05-29 Thread Andres Freund
On 2015-05-29 13:37:40 -0400, Andrew Dunstan wrote:
> One of the annoying inconsistencies between emacs and pgindent is that emacs
> refuses to offset a block following a case label, while pgindent does. Is
> there anything we can do to induce emacs to do what pgindent does?

Are you using the logic from src/tools/editors/emacs.samples

I don't see that problem here. I've further tuned my emacs for pPG, but
afaics nothing but relevant for this but the above.


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


Re: [HACKERS] fsync-pgdata-on-recovery tries to write to more files than previously

2015-05-29 Thread Tom Lane
Andres Freund  writes:
> On 2015-05-29 13:14:18 -0400, Tom Lane wrote:
>> Abhijit Menon-Sen  writes:
>> As I mentioned yesterday, I'm not really on board with ignoring EACCES,
>> except for the directories-on-Windows case.  Since we're only logging
>> the failures anyway, I think it is reasonable to log a complaint for any
>> unwritable file in the data directory.

> That sounds like a potentially nontrivial amount of repetitive log bleat
> after every crash start? One which the user can't really stop?

Why can't the user stop it?  We won't be bleating about the case of a
symlink to a non-writable file someplace else, which is the Debian use
case.  I don't see a very good excuse to have a non-writable file right
in the data directory.

>> Also I want to get rid of the ETXTBSY special cases.  That one doesn't
>> seem like something that we should silently ignore: what the heck are
>> executables doing in the data directory?  Or is there some other meaning
>> on Windows?

> I've seen a bunch of binaries placed in the data directory as
> archive/restore commands. Those will be busy a good amount of the
> time. While it'd not be my choice to do that, it's not entirely
> unreasonable.

I'd say it's a pretty damn-fool arrangement: for starters, it's
an unnecessary security hazard.

In any case, if the cost of such a file is one more line of log output
during a crash restart, most people would have no problem at all in
ignoring that log output.

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


Re: [HACKERS] Need Force flag for pg_drop_replication_slot()

2015-05-29 Thread Josh Berkus
On 05/29/2015 10:45 AM, Stephen Frost wrote:
> Andres,
> 
> * Andres Freund (and...@anarazel.de) wrote:
>> On 2015-05-29 10:15:56 -0700, Josh Berkus wrote:
>>> pg_drop_replication_slot() can be a time-critical function when the
>>> master is running out of disk space because the replica is falling
>>> behind.
>>
>> I don't buy this argument. The same is true for DROP TABLE, TRUNCATE,
>> DROP DATABASE etc.
> 
> I disagree about that being the same.
> 
>> I mean, I agree it'd be convenient, but I can't see it as "critical".

So, here's they scenario:

1. you're almost out of disk space due to a replica falling behind, like
down to 16mb left.  Or maybe you are out of disk space.

2. You need to drop the laggy replication slots in a hurry to get your
master working again.

3. Now you have to do this timing-sensitive two-stage drop to make it work.

When our users are having production emergencies, I don't think that
it's helpful for us to make the process of getting out of those
situations more complicated than it absolutely has to be.

> Just a random thought- do we check the LOGIN attribute for replication
> connections?  If so, you could tweak that, but that may be an issue if
> you have multiple replicas using the same role.
> 
> I'm not sure that it's *critical*, but I could see an argument for
> adding this post-feature-freeze, which I'm guessing is what Josh was
> getting at.

Well, I'll let others decide that.  If we could come up with a script
which would reliably do the terminate-then-drop, it would be fine for
9.5.  I'm not sure that's possible though, because I don't see any way
to infallibly relate the pg_stat_replication entry with the
pg_replication_slot entry.  Imagine having 3 slots and 6 replicas, and
only one slot is behind; how do you figure out what to terminate?

> 
>>> While I'm just doing this during testing, it could be a critical fail in
>>> production.  I think the simplest way to resolve this would be to add a
>>> boolean flag to pg_drop_replication_slot(), which would terminate the
>>> replication connection and delete the slot as a single operation.
>>
>> There's no "single operation" for terminating a backend *and* doing
>> something...
> 
> That's a good point, we'd need to figure out how to make this actually
> work reliably in the face of a very fast reconnecting process, if we're
> going to do it.

Yeah, which means that this is probably something for 9.6.  Although if
we can at least come up with something for the documentation for 9.5, it
would be really helpful.

-- 
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com


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


Re: [HACKERS] fsync-pgdata-on-recovery tries to write to more files than previously

2015-05-29 Thread Andres Freund
On 2015-05-29 13:49:16 -0400, Tom Lane wrote:
> Andres Freund  writes:
> > On 2015-05-29 13:14:18 -0400, Tom Lane wrote:
> >> Abhijit Menon-Sen  writes:
> >> As I mentioned yesterday, I'm not really on board with ignoring EACCES,
> >> except for the directories-on-Windows case.  Since we're only logging
> >> the failures anyway, I think it is reasonable to log a complaint for any
> >> unwritable file in the data directory.
> 
> > That sounds like a potentially nontrivial amount of repetitive log bleat
> > after every crash start? One which the user can't really stop?
> 
> Why can't the user stop it?

Because it makes a good amount of sense to have e.g. certificates not
owned by postgres and not writeable? You don't necessarily want to
symlink them somewhere else, because that makes moving clusters around
harder than when they're self contained.

> I'd say it's a pretty damn-fool arrangement: for starters, it's an
> unnecessary security hazard.

I don't buy the security argument at all. You likely have
postgresql.conf in the data directoy. You can write to at least .auto,
which will definitely reside the data directory. That contains
archive_command.

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


Re: [HACKERS] Need Force flag for pg_drop_replication_slot()

2015-05-29 Thread Stephen Frost
* Josh Berkus (j...@agliodbs.com) wrote:
> 1. you're almost out of disk space due to a replica falling behind, like
> down to 16mb left.  Or maybe you are out of disk space.

This right here is a real issue.  What I'd personally like to see is an
option which says "you have X GB of disk space.  Once it's gone, forget
about all replicas or failing archive commands or whatever, and just
stop holding on to ancient WAL that you no longer need to operate."

Perhaps there would be a warning threshold there too, where you start
getting complaints in the log if things are falling too far behind.
Ideally, you'd have a monitoring system which is checking for that, but
it'd be trivial to include and could be useful for environments that
don't have proper monitoring yet.

Having this work on the replicas would be nice too.  I realize we have
time-based constraints there which say "kill off queries which are
blocking us from moving forward after X time", but it'd be awful nice to
have a size-based way too, to avoid having PG crash when it runs out of
space.  I have to admit that I'm getting quite tired of the ways in
which PG can crash due to out of memory (yes, I know, it's the OOM
killer because of a misconfigured Linux box, but still), out of disk
space on the master, out of space on the replica, etc, etc.

Thanks!

Stephen


signature.asc
Description: Digital signature


[HACKERS] postpone next week's release

2015-05-29 Thread Robert Haas
Hi,

I think we should postpone next week's release.  I have been hard at
work on the multixact-related bugs that were reported in 9.4.2 and
9.3.7, and the subsequent bugs found by code-reading, but getting them
all fixed by Monday doesn't seem realistic.  Such fixes should have
careful review, and not be dashed into the tree under time pressure.

We could do the release anyway to relieve the pain caused by the
fsync-pgdata hard-failure problem, but it seems to me that if we do
that, we're just going to end up having to do yet another release
almost right away.  I think it would be better to wait and do one
release that fixes both sets of issues.

Thoughts?

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


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


Re: [HACKERS] Need Force flag for pg_drop_replication_slot()

2015-05-29 Thread Josh Berkus
On 05/29/2015 11:01 AM, Stephen Frost wrote:
> * Josh Berkus (j...@agliodbs.com) wrote:
>> > 1. you're almost out of disk space due to a replica falling behind, like
>> > down to 16mb left.  Or maybe you are out of disk space.
> This right here is a real issue.  What I'd personally like to see is an
> option which says "you have X GB of disk space.  Once it's gone, forget
> about all replicas or failing archive commands or whatever, and just
> stop holding on to ancient WAL that you no longer need to operate."

The substantial challenge here is how do we determine that you're
"almost out of disk space"?

-- 
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com


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


Re: [HACKERS] RFC: Remove contrib entirely

2015-05-29 Thread Jeff Janes
On Thu, May 28, 2015 at 11:01 PM, Fabien COELHO  wrote:

>
>  FWIW, I don't mind which one we put in core and which one we put out of
>> core. But I like Joshua's idea of getting rid of contribs and pushing them
>> out as any other extensions.
>>
>
> Hmmm.
>
> I like the contrib directory as a living example of "how to do an
> extension" directly available in the source tree. It also allows to test
> in-tree that the extension mechanism works. So I think it should be kept at
> least with a minimum set of dummy examples for this purpose, even if all
> current extensions are moved out.
>

It is mostly an example of "How to do an contrib module" rather than "how
to do an extension".  There are differences between those things regarding
the the USE_PGXS and some other things.  If we want to keep it as an
example of what we want people to do in the future, it needs be a really
good example.  And if we want to step new things from going into contrib,
we wouldn't want to provide an example of how to put new things into it.


>
> Also, removing a feature is a regression, and someone is always bound to
> complain... What is the real benefit? ISTM that it is a solution that fixes
> no important problem. Reaching a consensus about what to move here or there
> will consume valuable time that could be spent on more important tasks...
> Is it worth it?
>

Yeah, I don't really see the benefit either.  Some could be moved to core,
and some could just be removed, but many of them it just seems like we
would end up inventing a new 'contrib' to which is the same as the old, but
with a different name.

Cheers,

Jeff


Re: [HACKERS] Need Force flag for pg_drop_replication_slot()

2015-05-29 Thread Andres Freund
On 2015-05-29 10:53:30 -0700, Josh Berkus wrote:
> On 05/29/2015 10:45 AM, Stephen Frost wrote:
> So, here's they scenario:
> 
> 1. you're almost out of disk space due to a replica falling behind, like
> down to 16mb left.  Or maybe you are out of disk space.
> 
> 2. You need to drop the laggy replication slots in a hurry to get your
> master working again.
> 
> 3. Now you have to do this timing-sensitive two-stage drop to make it work.

How is this measurably worse than trying to truncate a log table that
has grown too large? That's often harder to fight actually, because
there's dozens of other processes that might be using the relation?  In
one case you don't have wait ordering, but only one locker, in the other
case you have multiple waiters, and to benefit from wait ordering you
need multiple sessions.

Again, I'm not against improving either situation, it's just that the
urgency argument doesn't seem worth its weight.


Note that all of this is 9.4 code, not 9.5.


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


Re: [HACKERS] fsync-pgdata-on-recovery tries to write to more files than previously

2015-05-29 Thread Tom Lane
Andres Freund  writes:
> On 2015-05-29 13:49:16 -0400, Tom Lane wrote:
>> Why can't the user stop it?

> Because it makes a good amount of sense to have e.g. certificates not
> owned by postgres and not writeable? You don't necessarily want to
> symlink them somewhere else, because that makes moving clusters around
> harder than when they're self contained.

Meh.  Well, I'm willing to yield on the EACCES point, but I still find
the exclusion for ETXTBSY to be ugly and inappropriate.

>> I'd say it's a pretty damn-fool arrangement: for starters, it's an
>> unnecessary security hazard.

> I don't buy the security argument at all. You likely have
> postgresql.conf in the data directoy. You can write to at least .auto,
> which will definitely reside the data directory. That contains
> archive_command.

The fact that a superuser might have multiple ways to subvert things
doesn't make it a good idea to add another one: the attack surface
could be larger, or at least different.  But even if you don't buy
that it's a security hazard, why would it be a good idea to have
executables inside $PGDATA?  That would for example lead to them getting
copied by pg_basebackup, which seems unlikely to be a good thing.
And if you did have such executables there, why would they be active
during a postmaster restart?

I really seriously doubt that this is either common enough or useful
enough to justify suppressing warning messages about it.

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


Re: [HACKERS] fsync-pgdata-on-recovery tries to write to more files than previously

2015-05-29 Thread Andres Freund
On 2015-05-29 14:15:48 -0400, Tom Lane wrote:
> Andres Freund  writes:
> > On 2015-05-29 13:49:16 -0400, Tom Lane wrote:
> >> Why can't the user stop it?
> 
> > Because it makes a good amount of sense to have e.g. certificates not
> > owned by postgres and not writeable? You don't necessarily want to
> > symlink them somewhere else, because that makes moving clusters around
> > harder than when they're self contained.
> 
> Meh.  Well, I'm willing to yield on the EACCES point, but I still find
> the exclusion for ETXTBSY to be ugly and inappropriate.

Ok.


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


Re: [HACKERS] pgindent vs emacs

2015-05-29 Thread Andrew Dunstan


On 05/29/2015 01:49 PM, Andres Freund wrote:

On 2015-05-29 13:37:40 -0400, Andrew Dunstan wrote:

One of the annoying inconsistencies between emacs and pgindent is that emacs
refuses to offset a block following a case label, while pgindent does. Is
there anything we can do to induce emacs to do what pgindent does?

Are you using the logic from src/tools/editors/emacs.samples

I don't see that problem here. I've further tuned my emacs for pPG, but
afaics nothing but relevant for this but the above.




Hmm, yes, you're right, I was missing something. It also turns out it 
depends on stuff we can't put in .dir-locals.el.


Sorry for the noise.

cheers

andrew


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


Re: [HACKERS] RFC: Remove contrib entirely

2015-05-29 Thread Jeff Janes
On Thu, May 28, 2015 at 11:26 PM, Guillaume Lelarge 
wrote:

> Le 29 mai 2015 8:01 AM, "Fabien COELHO"  a écrit :
> >
> >
> >> FWIW, I don't mind which one we put in core and which one we put out of
> >> core. But I like Joshua's idea of getting rid of contribs and pushing
> them
> >> out as any other extensions.
> >
> >
> > Hmmm.
> >
> > I like the contrib directory as a living example of "how to do an
> extension" directly available in the source tree. It also allows to test
> in-tree that the extension mechanism works. So I think it should be kept at
> least with a minimum set of dummy examples for this purpose, even if all
> current extensions are moved out.
> >
>
> Agreed.
>
> > Also, removing a feature is a regression, and someone is always bound to
> complain... What is the real benefit? ISTM that it is a solution that fixes
> no important problem. Reaching a consensus about what to move here or there
> will consume valuable time that could be spent on more important tasks...
> Is it worth it?
> >
>
> It would be less confusing for users. Contrib modules seem to be first
> class extensions, leaving doubt on other extensions.
>

Presumably there are still going to be some extensions maintained by
-hackers, and some not.  I don't think we are going to change that, so the
difference will still need to be explained, regardless of what words are
used.  And people *should* have doubts about other extensions.  Couldn't
any talented programmer write an extension which gives them a backdoor into
the deployer's system, and then upload it to github?

I would certainly be cautious about installing any old extension I found
some some place on the internet.


> But the fact they aren't in core make them not fully trusted by some
> users.
>
Would it help if we called it "base" or "minimal" rather than "core" in the
docs?  (And called 'contrib' something different as well?  The docs already
do call it "Additional Supplied Modules" and use "contrib" only when
referring the the directory, not the concept.)


> Trying to explain all that in a training is a PITA. It would be much less
> confusing if they were either in core or in their own repository.
>

Several of the contrib modules should be kept in tight sync with src or
else testing and debugging would be a disaster. Putting them in different
git repositories wouldn't work well.  Unless those would among the ones
moved to "core".

Cheers,

Jeff


Re: [HACKERS] fsync-pgdata-on-recovery tries to write to more files than previously

2015-05-29 Thread Stephen Frost
* Andres Freund (and...@anarazel.de) wrote:
> On 2015-05-29 13:49:16 -0400, Tom Lane wrote:
> > > That sounds like a potentially nontrivial amount of repetitive log bleat
> > > after every crash start? One which the user can't really stop?
> > 
> > Why can't the user stop it?
> 
> Because it makes a good amount of sense to have e.g. certificates not
> owned by postgres and not writeable? You don't necessarily want to
> symlink them somewhere else, because that makes moving clusters around
> harder than when they're self contained.

A certain other file might be non-writable by PG too... (*cough* .auto
*cough*).

> > I'd say it's a pretty damn-fool arrangement: for starters, it's an
> > unnecessary security hazard.
> 
> I don't buy the security argument at all. You likely have
> postgresql.conf in the data directoy. You can write to at least .auto,
> which will definitely reside the data directory. That contains
> archive_command.

I'm not sure that I see the security issue here either..  We're not
talking about setuid shell scripts or anything that isn't running as the
PG user, which a superuser could take over anyway..

Thanks!

Stephen


signature.asc
Description: Digital signature


Re: [HACKERS] Need Force flag for pg_drop_replication_slot()

2015-05-29 Thread Stephen Frost
* Josh Berkus (j...@agliodbs.com) wrote:
> On 05/29/2015 11:01 AM, Stephen Frost wrote:
> > * Josh Berkus (j...@agliodbs.com) wrote:
> >> > 1. you're almost out of disk space due to a replica falling behind, like
> >> > down to 16mb left.  Or maybe you are out of disk space.
> > This right here is a real issue.  What I'd personally like to see is an
> > option which says "you have X GB of disk space.  Once it's gone, forget
> > about all replicas or failing archive commands or whatever, and just
> > stop holding on to ancient WAL that you no longer need to operate."
> 
> The substantial challenge here is how do we determine that you're
> "almost out of disk space"?

Eh?  That "X GB" above was intended to be the value of a GUC.

I know how big my WAL partition is.  Let me tell PG how big it is and to
not do anything that'll end up going over that amount, and we'll never
see a crash due to out of disk space for WAL again.

Thanks!

Stephen


signature.asc
Description: Digital signature


Re: [HACKERS] Need Force flag for pg_drop_replication_slot()

2015-05-29 Thread Josh Berkus
On 05/29/2015 11:07 AM, Andres Freund wrote:
> On 2015-05-29 10:53:30 -0700, Josh Berkus wrote:
>> On 05/29/2015 10:45 AM, Stephen Frost wrote:
>> So, here's they scenario:
>>
>> 1. you're almost out of disk space due to a replica falling behind, like
>> down to 16mb left.  Or maybe you are out of disk space.
>>
>> 2. You need to drop the laggy replication slots in a hurry to get your
>> master working again.
>>
>> 3. Now you have to do this timing-sensitive two-stage drop to make it work.
> 
> How is this measurably worse than trying to truncate a log table that
> has grown too large? That's often harder to fight actually, because
> there's dozens of other processes that might be using the relation?  In
> one case you don't have wait ordering, but only one locker, in the other
> case you have multiple waiters, and to benefit from wait ordering you
> need multiple sessions.
> 
> Again, I'm not against improving either situation, it's just that the
> urgency argument doesn't seem worth its weight.

Well, I wouldn't mind a solution for drop table and drop database,
either. I'm pretty sure that's on our TODO list.

Oh, I see the confusion.  When I say "time-critical", I was referring to
the situation where someone is running out of disk space.  Not coming up
with a patch.  AFAIK, hardly anyone is using replication slots, still.

> 
> Note that all of this is 9.4 code, not 9.5.

Yes, but I'm not suggesting backporting it, just maybe a backported doc
patch.

-- 
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com


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


Re: [HACKERS] Need Force flag for pg_drop_replication_slot()

2015-05-29 Thread Stephen Frost
* Andres Freund (and...@anarazel.de) wrote:
> How is this measurably worse than trying to truncate a log table that
> has grown too large? That's often harder to fight actually, because
> there's dozens of other processes that might be using the relation?  In
> one case you don't have wait ordering, but only one locker, in the other
> case you have multiple waiters, and to benefit from wait ordering you
> need multiple sessions.

Because we don't fall over if we can't extend a relation.

We do fall over if we can't write WAL.

Thanks!

Stephen


signature.asc
Description: Digital signature


Re: [HACKERS] RFC: Remove contrib entirely

2015-05-29 Thread Josh Berkus
All,

So there are currently three kinds of things in contrib:

A. Extra commands and tools which aren't considered general enough, or
reliable enough, to be included by default, e.g. pg_standby, pgbench and
vacuumlo.

B. Developer tools, like spi, start-scripts, and oid2name.

C. "Core Extensions", which fall into three further groups:
C1: encryption extensions we can't include in core
for legal reasons (pg_crypto)
C2: example extensions which show useful things about
how to build an extension
C3: Admin extensions which are not core because they carry
risks (e.g. pgstattuple, auto_explain)
C4: Extensions which are generally useful, used, and
maintained with Postgres (e.g. hstore, citext)

So A and B need to stay somewhere in the source distribution.  I would
like to see them go into /admin-tools and /developer-tools directories;
I believe that Greg Smith came up with a patch to do just this at
sometime in the past.  C2 could also go into /developer-tools, and C3
are really just more admin-tools.  C1 would need to stick around as a
special case.

To move C4, you'd have to solve the problem of "how do we turn a former
external extension into a core feature", which nobody yet has solved.

All of this ignores the critical part of this, which is packaging.
Right now packagers ship a "contrib" package which includes everything
in /contrib.  Shifting to having any other arrangement is going to
involve working with them and convincing them that a change to packaging
is worthwhile.  And then getting the news to our users.

Given that, there needs to be significant benefit to our users in the
change.  So, what's the benefit?

-- 
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com


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


Re: [HACKERS] postpone next week's release

2015-05-29 Thread Bruce Momjian
On Fri, May 29, 2015 at 02:02:43PM -0400, Robert Haas wrote:
> Hi,
> 
> I think we should postpone next week's release.  I have been hard at
> work on the multixact-related bugs that were reported in 9.4.2 and
> 9.3.7, and the subsequent bugs found by code-reading, but getting them
> all fixed by Monday doesn't seem realistic.  Such fixes should have
> careful review, and not be dashed into the tree under time pressure.
> 
> We could do the release anyway to relieve the pain caused by the
> fsync-pgdata hard-failure problem, but it seems to me that if we do
> that, we're just going to end up having to do yet another release
> almost right away.  I think it would be better to wait and do one
> release that fixes both sets of issues.

It does seem wise to make sure we have all these items fixed.  We have
PR'ed the recovery failure issue so I think we are good at this point. 
I see having to put out another multi-xact-only fix release the week
after as being a bigger negative.

-- 
  Bruce Momjian  http://momjian.us
  EnterpriseDB http://enterprisedb.com

  + Everyone has their own god. +


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


Re: [HACKERS] postpone next week's release

2015-05-29 Thread Stephen Frost
* Robert Haas (robertmh...@gmail.com) wrote:
> I think we should postpone next week's release.  I have been hard at
> work on the multixact-related bugs that were reported in 9.4.2 and
> 9.3.7, and the subsequent bugs found by code-reading, but getting them
> all fixed by Monday doesn't seem realistic.  Such fixes should have
> careful review, and not be dashed into the tree under time pressure.
> 
> We could do the release anyway to relieve the pain caused by the
> fsync-pgdata hard-failure problem, but it seems to me that if we do
> that, we're just going to end up having to do yet another release
> almost right away.  I think it would be better to wait and do one
> release that fixes both sets of issues.

Agreed.

I just caution that we appreciate PGCon coming up and that we do our
best to avoid running into a case where we have to push it further due
to everyone being at the conference.

Thanks!

Stephen


signature.asc
Description: Digital signature


Re: [CORE] [HACKERS] postpone next week's release

2015-05-29 Thread Bruce Momjian
On Fri, May 29, 2015 at 02:54:31PM -0400, Stephen Frost wrote:
> * Robert Haas (robertmh...@gmail.com) wrote:
> > I think we should postpone next week's release.  I have been hard at
> > work on the multixact-related bugs that were reported in 9.4.2 and
> > 9.3.7, and the subsequent bugs found by code-reading, but getting them
> > all fixed by Monday doesn't seem realistic.  Such fixes should have
> > careful review, and not be dashed into the tree under time pressure.
> > 
> > We could do the release anyway to relieve the pain caused by the
> > fsync-pgdata hard-failure problem, but it seems to me that if we do
> > that, we're just going to end up having to do yet another release
> > almost right away.  I think it would be better to wait and do one
> > release that fixes both sets of issues.
> 
> Agreed.
> 
> I just caution that we appreciate PGCon coming up and that we do our
> best to avoid running into a case where we have to push it further due
> to everyone being at the conference.

This brings up the issue of when we want to do 9.5 beta.  Ideas?

-- 
  Bruce Momjian  http://momjian.us
  EnterpriseDB http://enterprisedb.com

  + Everyone has their own god. +


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


Re: [HACKERS] fsync-pgdata-on-recovery tries to write to more files than previously

2015-05-29 Thread Christoph Berg
Re: Tom Lane 2015-05-29 <13871.1432921...@sss.pgh.pa.us>
> Why can't the user stop it?  We won't be bleating about the case of a
> symlink to a non-writable file someplace else, which is the Debian use
> case.  I don't see a very good excuse to have a non-writable file right
> in the data directory.

I've repeatedly seen PGDATA or pg_xlog been put directly on a
mountpoint, which means there well be a non-writable lost+found
directory there. (A case with pg_xlog was also reported as a support
case at credativ.) I'm usually advising against using the top level
directory directly, but it's not uncommon to encounter it.

> In any case, if the cost of such a file is one more line of log output
> during a crash restart, most people would have no problem at all in
> ignoring that log output.

Nod.

Christoph
-- 
c...@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


Re: [HACKERS] Need Force flag for pg_drop_replication_slot()

2015-05-29 Thread Josh Berkus
So, here's an example of why it's hard to give our users a workaround.

cio=# select * from pg_replication_slots;
slot_name| plugin | slot_type | datoid |
database | active | xmin | catalog_xmin | restart_lsn
-++---++--++--+--+-
 bdr_24577_6147720645156311471_1_26507__ | bdr| logical   |  24577 |
cio  | t  |  |  906 | 0/1C4F410
(1 row)

cio=# select
pg_drop_replication_slot('bdr_24577_6147720645156311471_1_26507__');
ERROR:  replication slot "bdr_24577_6147720645156311471_1_26507__" is
already active
cio=# select * from pg_stat_replication;
-[ RECORD 1 ]+---
pid  | 28481
usesysid | 10
usename  | postgres
application_name | bdr (6147720645156311471,1,26507,):receive
client_addr  | 172.17.0.11
client_hostname  |
client_port  | 44583
backend_start| 2015-05-29 18:10:34.601796+00
backend_xmin |
state| streaming
sent_location| 0/1C4F448
write_location   | 0/1C4F448
flush_location   | 0/1C4F448
replay_location  | 0/1C4F448
sync_priority| 0
sync_state   | async

Now, BDR is good because it sets an application_name which lets me
figure out what's using the replication slot.  But that's by no means
required; other LC plug-ins, I expect, do not do so.  So there's no way
for the user to figure out which replication connection relates to which
slots, as far as I can tell.

In this test, it's easy because there's only one replication connection
and one slot.  But imagine the case of 14 replication connections with
their own slots.  How could you possibly figure out which one was the
laggy one?

-- 
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com


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


Re: [HACKERS] Re: [GENERAL] 9.4.1 -> 9.4.2 problem: could not access status of transaction 1

2015-05-29 Thread Robert Haas
On Fri, May 29, 2015 at 12:43 PM, Robert Haas  wrote:
> Working on that now.

OK, here's a patch.  Actually two patches, differing only in
whitespace, for 9.3 and for master (ha!).  I now think that the root
of the problem here is that DetermineSafeOldestOffset() and
SetMultiXactIdLimit() were largely ignorant of the possibility that
they might be called at points in time when the cluster was
inconsistent.  SetMultiXactIdLimit() bracketed certain parts of its
logic with if (!InRecovery), but those guards were ineffective because
it gets called before InRecovery is set in the first place.

It seems pretty clear that we can't effectively determine anything
about member wraparound until the cluster is consistent.  Before then,
there might be files missing from the offsets or members SLRUs which
get put back during replay.  There could even be gaps in the sequence
of files, with some things having made it to disk before the crash (or
having made it into the backup) and others not.  So all the work of
determining what the safe stop points and vacuum thresholds for
members are needs to be postponed until TrimMultiXact() time.  And
that's fine, because we don't need this information in recovery anyway
- it only affects behavior in normal running.

So this patch does the following:

1. Moves the call to DetermineSafeOldestOffset() that appears in
StartupMultiXact() to TrimMultiXact(), so that we don't try to do this
until we're consistent.  Also, instead of passing
MultiXactState->oldestMultiXactId, pass the newer of that value and
the earliest offset that exists on disk.  That way, it won't try to
read data that's not there.  Note that the second call to
DetermineSafeOldestOffset() in TruncateMultiXact() doesn't need a
similar guard, because we already bail out of that function early if
the multixacts we're going to truncate away don't exist.

2. Adds a new flag MultiXactState->didTrimMultiXact indicate whether
we've finished TrimMultiXact(), and arranges for SetMultiXactIdLimit()
to use that rather than InRecovery to test whether it's safe to do
complicated things that might require that the cluster is consistent.
This is a slight behavior change, since formerly we would have tried
to do that stuff very early in the startup process, and now it won't
happen until somebody completes a vacuum operation.  If that's a
problem, we could consider doing it in TrimMultiXact(), but I don't
think it's safe the way it was.  The new flag also prevents
oldestOffset from being set while in recovery; I think it would be
safe to do that in recovery once we've reached consistency, but I
don't believe it's necessary.

3. Arranges for TrimMultiXact() to set oldestOffset.  This is
necessary because, previously, we relied on SetMultiXactIdLimit doing
that during early startup or during recovery, and that's no longer
true.  Here too we set oldestOffset keeping in mind that our notion of
the oldest multixact may point to something that doesn't exist; if so,
we use the oldest MXID that does.

4. Modifies TruncateMultiXact() so that it doesn't re-scan the SLRU
directory on every call to find the oldest file that exists.  Instead,
it arranges to remember the value from the first scan and then updates
it thereafter to reflect its own truncation activity.  This isn't
absolutely necessary, but because this oldest-file logic is used in
multiple places (TrimMultiXact, SetMultiXactIdLimit, and
TruncateMultiXact all need it directly or indirectly) caching the
value seems like a better idea than recomputing it frequently.

I have tested that this patch fixes Steve Kehlet's problem, or at
least what I believe to be Steve Kehlet's problem based on the
reproduction scenario I described upthread.  I believe it will also
fix the problems with starting up from a base backup with Alvaro
mentioned upthread.  It won't fix the fact that pg_upgrade is putting
a wrong value into everybody's datminmxid field, which should really
be addressed too, but I've been working on this for about three days
virtually non-stop and I don't have the energy to tackle it right now.
If anyone feels the urge to step into that breech, I think what it
needs to do is: when upgrading from a 9.3-or-later instance, copy over
each database's datminmxid into the corresponding database in the new
cluster.

Aside from that, it's very possible that despite my best efforts this
has serious bugs.  Review and testing would be very much appreciated.

Thanks,

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
diff --git a/src/backend/access/transam/multixact.c b/src/backend/access/transam/multixact.c
index 699497c..8d28a5c 100644
--- a/src/backend/access/transam/multixact.c
+++ b/src/backend/access/transam/multixact.c
@@ -197,8 +197,9 @@ typedef struct MultiXactStateData
 	MultiXactOffset nextOffset;
 
 	/*
-	 * Oldest multixact that is still on disk.  Anything older than this
-	 * should not be consulted.  These values are updated by vacuum.
+	 * Old

Re: [HACKERS] [CORE] postpone next week's release

2015-05-29 Thread Magnus Hagander
On Fri, May 29, 2015 at 8:02 PM, Robert Haas  wrote:

> Hi,
>
> I think we should postpone next week's release.  I have been hard at
> work on the multixact-related bugs that were reported in 9.4.2 and
> 9.3.7, and the subsequent bugs found by code-reading, but getting them
> all fixed by Monday doesn't seem realistic.  Such fixes should have
> careful review, and not be dashed into the tree under time pressure.
>
> We could do the release anyway to relieve the pain caused by the
> fsync-pgdata hard-failure problem, but it seems to me that if we do
> that, we're just going to end up having to do yet another release
> almost right away.  I think it would be better to wait and do one
> release that fixes both sets of issues.
>
> Thoughts?
>

I'm a bit split on this.

We *definitely* don't want to release the multixact fix without it being
carefully reviewed, that's the part I'm not split about :) And I fully
appreciate we can't have that done by monday.

However, the file-permission thing seems to hit quite a few people (have we
ever had this many bug reports after a minor release), which means wed
really want to get that out quickly.

Do you have any feeling of how likely people are to actually hit the
multixact one? I've followed some of that impressive debugging you guys
did, and I know it's a pretty critical bug if you hit it, but how
wide-spread will it be?

I guess one option we could do is encourage packagers to push updated
packages (-2 versions) basically. But if we do that, perhaps we might as
well release anyway?

AIUI, the permission thing won't actually be very likely to affect Windows
users. And Windows packages are the ones that take by far the most work to
make. Perhaps we should consider skipping making packages of that version
on Windows, and then plan to push yet another minor one or two weeks later,
that goes out on all platforms?

-- 
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/


Re: [CORE] [HACKERS] postpone next week's release

2015-05-29 Thread Magnus Hagander
On Fri, May 29, 2015 at 8:54 PM, Stephen Frost  wrote:

> * Robert Haas (robertmh...@gmail.com) wrote:
> > I think we should postpone next week's release.  I have been hard at
> > work on the multixact-related bugs that were reported in 9.4.2 and
> > 9.3.7, and the subsequent bugs found by code-reading, but getting them
> > all fixed by Monday doesn't seem realistic.  Such fixes should have
> > careful review, and not be dashed into the tree under time pressure.
> >
> > We could do the release anyway to relieve the pain caused by the
> > fsync-pgdata hard-failure problem, but it seems to me that if we do
> > that, we're just going to end up having to do yet another release
> > almost right away.  I think it would be better to wait and do one
> > release that fixes both sets of issues.
>
> Agreed.
>
> I just caution that we appreciate PGCon coming up and that we do our
> best to avoid running into a case where we have to push it further due
> to everyone being at the conference.
>

If we plan it, we certainly *can* make a release during pgcon. If that's
what the reasonable timing comes down to, I think getting these fixes out
definitely has to be considered more important than the conference, so a
few of us will just have to take a break...


-- 
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/


Re: [HACKERS] RFC: Remove contrib entirely

2015-05-29 Thread Joshua D. Drake


On 05/29/2015 11:02 AM, Jeff Janes wrote:



Also, removing a feature is a regression, and someone is always
bound to complain... What is the real benefit? ISTM that it is a
solution that fixes no important problem. Reaching a consensus about
what to move here or there will consume valuable time that could be
spent on more important tasks... Is it worth it?


Yeah, I don't really see the benefit either.  Some could be moved to
core, and some could just be removed, but many of them it just seems
like we would end up inventing a new 'contrib' to which is the same as
the old, but with a different name.


Name one.

Sincerely,

JD
--
Command Prompt, Inc. - http://www.commandprompt.com/  503-667-4564
PostgreSQL Centered full stack support, consulting and development.
Announcing "I'm offended" is basically telling the world you can't
control your own emotions, so everyone else should do it for you.


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


Re: [HACKERS] [CORE] postpone next week's release

2015-05-29 Thread Robert Haas
On Fri, May 29, 2015 at 3:09 PM, Magnus Hagander  wrote:
> Do you have any feeling of how likely people are to actually hit the
> multixact one? I've followed some of that impressive debugging you guys did,
> and I know it's a pretty critical bug if you hit it, but how wide-spread
> will it be?

That precise problem has been reported a few times, but it may not be
widespread.  I don't know.  My bigger concern is that, at present,
taking a base backup is broken.  I haven't figured out the exact
reproduction scenario, but I think it's something like this:

- begin base backup
- checkpoint happens, truncating pg_multixact
- at this point pg_multixact gets copied
- end base backup

I think what will happen on replay is that replaying the checkpoint,
it will try to reference pg_multixact files that don't exist any more
and die with a fatal error.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


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


Re: [HACKERS] RFC: Remove contrib entirely

2015-05-29 Thread Joshua D. Drake


On 05/29/2015 11:27 AM, Jeff Janes wrote:


It would be less confusing for users. Contrib modules seem to be
first class extensions, leaving doubt on other extensions.


Presumably there are still going to be some extensions maintained by
-hackers, and some not.  I don't think we are going to change that, so
the difference will still need to be explained, regardless of what words
are used.  And people *should* have doubts about other extensions.
Couldn't any talented programmer write an extension which gives them a
backdoor into the deployer's system, and then upload it to github?


Yes, it is called Open Source development.



I would certainly be cautious about installing any old extension I found
some some place on the internet.

But the fact they aren't in core make them not fully trusted by some
users.


No. This is completely wrong thinking. If you are compiling this stuff 
from source you are taking that risk on yourself.


Most people are not compiling from source, they are installing from a 
distribution (or downloading a distribution package).




Trying to explain all that in a training is a PITA. It would be much
less confusing if they were either in core or in their own repository.

Several of the contrib modules should be kept in tight sync with src or
else testing and debugging would be a disaster. Putting them in
different git repositories wouldn't work well.  Unless those would among
the ones moved to "core".



Note: I actually don't care if the current contrib gets pushed into core 
proper and is default installed.


I care about this idea that contrib exists. It isn't needed and leads to 
a discussion like this one (or the pg_audit), almost every release.


Contrib made sense years ago. It does not any longer. Let's put the old 
horse down and raise a new herd of ponies on a new pasture.


JD

--
Command Prompt, Inc. - http://www.commandprompt.com/  503-667-4564
PostgreSQL Centered full stack support, consulting and development.
Announcing "I'm offended" is basically telling the world you can't
control your own emotions, so everyone else should do it for you.


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


Re: [HACKERS] Need Force flag for pg_drop_replication_slot()

2015-05-29 Thread Joshua D. Drake


On 05/29/2015 12:08 PM, Josh Berkus wrote:


Now, BDR is good because it sets an application_name which lets me
figure out what's using the replication slot.  But that's by no means
required; other LC plug-ins, I expect, do not do so.  So there's no way
for the user to figure out which replication connection relates to which
slots, as far as I can tell.

In this test, it's easy because there's only one replication connection
and one slot.  But imagine the case of 14 replication connections with
their own slots.  How could you possibly figure out which one was the
laggy one?


The client_addr?

JD






--
Command Prompt, Inc. - http://www.commandprompt.com/  503-667-4564
PostgreSQL Centered full stack support, consulting and development.
Announcing "I'm offended" is basically telling the world you can't
control your own emotions, so everyone else should do it for you.


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


Re: [HACKERS] Need Force flag for pg_drop_replication_slot()

2015-05-29 Thread Andres Freund
On 2015-05-29 14:39:02 -0400, Stephen Frost wrote:
> * Andres Freund (and...@anarazel.de) wrote:
> > How is this measurably worse than trying to truncate a log table that
> > has grown too large? That's often harder to fight actually, because
> > there's dozens of other processes that might be using the relation?  In
> > one case you don't have wait ordering, but only one locker, in the other
> > case you have multiple waiters, and to benefit from wait ordering you
> > need multiple sessions.
> 
> Because we don't fall over if we can't extend a relation.
> 
> We do fall over if we can't write WAL.

As nearly everybody uses the same filesystem for pg_xlog and the actual
databases, that distinction isn't worth much. You'll still fail when
writing the WAL, even if the disk space has been used by a relation
instead of WAL.


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


Re: [HACKERS] Need Force flag for pg_drop_replication_slot()

2015-05-29 Thread Andres Freund
On 2015-05-29 12:08:24 -0700, Josh Berkus wrote:
> Now, BDR is good because it sets an application_name which lets me
> figure out what's using the replication slot.  But that's by no means
> required; other LC plug-ins, I expect, do not do so.  So there's no way
> for the user to figure out which replication connection relates to which
> slots, as far as I can tell.
> 
> In this test, it's easy because there's only one replication connection
> and one slot.  But imagine the case of 14 replication connections with
> their own slots.  How could you possibly figure out which one was the
> laggy one?

9.5 shows the pid.


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


Re: [CORE] [HACKERS] postpone next week's release

2015-05-29 Thread Stephen Frost
* Magnus Hagander (mag...@hagander.net) wrote:
> On Fri, May 29, 2015 at 8:54 PM, Stephen Frost  wrote:
> 
> > * Robert Haas (robertmh...@gmail.com) wrote:
> > > I think we should postpone next week's release.  I have been hard at
> > > work on the multixact-related bugs that were reported in 9.4.2 and
> > > 9.3.7, and the subsequent bugs found by code-reading, but getting them
> > > all fixed by Monday doesn't seem realistic.  Such fixes should have
> > > careful review, and not be dashed into the tree under time pressure.
> > >
> > > We could do the release anyway to relieve the pain caused by the
> > > fsync-pgdata hard-failure problem, but it seems to me that if we do
> > > that, we're just going to end up having to do yet another release
> > > almost right away.  I think it would be better to wait and do one
> > > release that fixes both sets of issues.
> >
> > Agreed.
> >
> > I just caution that we appreciate PGCon coming up and that we do our
> > best to avoid running into a case where we have to push it further due
> > to everyone being at the conference.
> 
> If we plan it, we certainly *can* make a release during pgcon. If that's
> what the reasonable timing comes down to, I think getting these fixes out
> definitely has to be considered more important than the conference, so a
> few of us will just have to take a break...

I don't disagree with you about any of that, just wanted to make mention
of the timing.

Thanks!

Stephen


signature.asc
Description: Digital signature


Re: [HACKERS] RFC: Remove contrib entirely

2015-05-29 Thread Pavel Stehule
2015-05-29 21:20 GMT+02:00 Joshua D. Drake :

>
> On 05/29/2015 11:27 AM, Jeff Janes wrote:
>
>  It would be less confusing for users. Contrib modules seem to be
>> first class extensions, leaving doubt on other extensions.
>>
>>
>> Presumably there are still going to be some extensions maintained by
>> -hackers, and some not.  I don't think we are going to change that, so
>> the difference will still need to be explained, regardless of what words
>> are used.  And people *should* have doubts about other extensions.
>> Couldn't any talented programmer write an extension which gives them a
>> backdoor into the deployer's system, and then upload it to github?
>>
>
> Yes, it is called Open Source development.
>
>
>> I would certainly be cautious about installing any old extension I found
>> some some place on the internet.
>>
>> But the fact they aren't in core make them not fully trusted by some
>> users.
>>
>
> No. This is completely wrong thinking. If you are compiling this stuff
> from source you are taking that risk on yourself.
>
> Most people are not compiling from source, they are installing from a
> distribution (or downloading a distribution package).
>
>
>> Trying to explain all that in a training is a PITA. It would be much
>> less confusing if they were either in core or in their own repository.
>>
>> Several of the contrib modules should be kept in tight sync with src or
>> else testing and debugging would be a disaster. Putting them in
>> different git repositories wouldn't work well.  Unless those would among
>> the ones moved to "core".
>>
>>
> Note: I actually don't care if the current contrib gets pushed into core
> proper and is default installed.
>
> I care about this idea that contrib exists. It isn't needed and leads to a
> discussion like this one (or the pg_audit), almost every release.
>
> Contrib made sense years ago. It does not any longer. Let's put the old
> horse down and raise a new herd of ponies on a new pasture.
>

Still there is strong sense - it is a referential implementation of our
extension API. We need it to find regressions, changes. I don't believe so
external extensions can do it. Only PostGIS is massively accepted and
developed by more than few people. Personally I am thinking so removing
contrib is not good idea.

Pavel


>
> JD
>
> --
> Command Prompt, Inc. - http://www.commandprompt.com/  503-667-4564
> PostgreSQL Centered full stack support, consulting and development.
> Announcing "I'm offended" is basically telling the world you can't
> control your own emotions, so everyone else should do it for you.
>
>
> --
> Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-hackers
>


Re: [HACKERS] [CORE] postpone next week's release

2015-05-29 Thread Joshua D. Drake


On 05/29/2015 12:18 PM, Robert Haas wrote:


On Fri, May 29, 2015 at 3:09 PM, Magnus Hagander  wrote:

Do you have any feeling of how likely people are to actually hit the
multixact one? I've followed some of that impressive debugging you guys did,
and I know it's a pretty critical bug if you hit it, but how wide-spread
will it be?


That precise problem has been reported a few times, but it may not be
widespread.  I don't know.  My bigger concern is that, at present,
taking a base backup is broken.


This I think is the bigger issue. They both are horrible but basebackup 
being broken is rather... egregious.


JD


--
Command Prompt, Inc. - http://www.commandprompt.com/  503-667-4564
PostgreSQL Centered full stack support, consulting and development.
Announcing "I'm offended" is basically telling the world you can't
control your own emotions, so everyone else should do it for you.


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


Re: [CORE] [HACKERS] postpone next week's release

2015-05-29 Thread Tom Lane
Magnus Hagander  writes:
> On Fri, May 29, 2015 at 8:54 PM, Stephen Frost  wrote:
>> I just caution that we appreciate PGCon coming up and that we do our
>> best to avoid running into a case where we have to push it further due
>> to everyone being at the conference.

> If we plan it, we certainly *can* make a release during pgcon. If that's
> what the reasonable timing comes down to, I think getting these fixes out
> definitely has to be considered more important than the conference, so a
> few of us will just have to take a break...

I think there's no way that we wait more than one additional week to push
the fsync fix.  So the problem is not with scheduling the update releases,
it's with whether we can also fit in a 9.5 beta release before PGCon.

(I can't see doing a beta *during* PGCon week.  I for one am going to be
on an airplane at the time I'd normally have to be Doing Release Stuff.)

I know Josh doesn't like to do beta1 releases concurrently with back
branches because it confuses the PR messaging.  But we could make an
exception perhaps; or do all those releases the same week but announce
the beta the day after the bugfix releases.

Or we just let the beta slide till after PGCon, but then I think we're
missing some excitement factor.

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


Re: [CORE] [HACKERS] postpone next week's release

2015-05-29 Thread Magnus Hagander
On Fri, May 29, 2015 at 9:32 PM, Tom Lane  wrote:

> Magnus Hagander  writes:
> > On Fri, May 29, 2015 at 8:54 PM, Stephen Frost 
> wrote:
> >> I just caution that we appreciate PGCon coming up and that we do our
> >> best to avoid running into a case where we have to push it further due
> >> to everyone being at the conference.
>
> > If we plan it, we certainly *can* make a release during pgcon. If that's
> > what the reasonable timing comes down to, I think getting these fixes out
> > definitely has to be considered more important than the conference, so a
> > few of us will just have to take a break...
>
> I think there's no way that we wait more than one additional week to push
> the fsync fix.  So the problem is not with scheduling the update releases,
> it's with whether we can also fit in a 9.5 beta release before PGCon.
>

I think 9.5 beta has to stand back. The question is what we do with the
potentially two minor releases. Then we can slot in the beta whenever.

If we do the minor as currently planned, can we do another one the week
after to deal with the multixact issues? (scheduling wise we're going to
have to do one the week after *regardless*, the question is if we can make
two different ones, or if we need to fold them into one)


(I can't see doing a beta *during* PGCon week.  I for one am going to be
> on an airplane at the time I'd normally have to be Doing Release Stuff.)
>

Agreed. We can push a *minor* during pgcon, but not beta.


I know Josh doesn't like to do beta1 releases concurrently with back
> branches because it confuses the PR messaging.  But we could make an
> exception perhaps; or do all those releases the same week but announce
> the beta the day after the bugfix releases.
>


I can't comment on the PR parts, I'll leave that to Josh.



>
> Or we just let the beta slide till after PGCon, but then I think we're
> missing some excitement factor.
>

Well, most of the people going to pgcon know it already. And most of the
excitement affects people who are not at pgcon (simply based on that most
of our users are not at pgcon). If doing it the week after pgcon is what
ends up making sense once weve figured out what to do with the minors, then
so be it, IMNSHO.


-- 
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/


Re: [CORE] [HACKERS] postpone next week's release

2015-05-29 Thread Stephen Frost
* Tom Lane (t...@sss.pgh.pa.us) wrote:
> (I can't see doing a beta *during* PGCon week.  I for one am going to be
> on an airplane at the time I'd normally have to be Doing Release Stuff.)
[...]
> Or we just let the beta slide till after PGCon, but then I think we're
> missing some excitement factor.

Personally, I'd be all for a "watch Tom do the 9.5 beta release!"
Unconference slot...

:)

(mostly kidding, but I'm 100% sure it'd draw a huge crowd..)

Thanks!

Stephen


signature.asc
Description: Digital signature


Re: [HACKERS] Need Force flag for pg_drop_replication_slot()

2015-05-29 Thread Josh Berkus
On 05/29/2015 12:27 PM, Andres Freund wrote:
> On 2015-05-29 12:08:24 -0700, Josh Berkus wrote:
>> Now, BDR is good because it sets an application_name which lets me
>> figure out what's using the replication slot.  But that's by no means
>> required; other LC plug-ins, I expect, do not do so.  So there's no way
>> for the user to figure out which replication connection relates to which
>> slots, as far as I can tell.
>>
>> In this test, it's easy because there's only one replication connection
>> and one slot.  But imagine the case of 14 replication connections with
>> their own slots.  How could you possibly figure out which one was the
>> laggy one?
> 
> 9.5 shows the pid.

OK, will test, thanks.

--Josh Berkus


-- 
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com


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


Re: [CORE] [HACKERS] postpone next week's release

2015-05-29 Thread Tom Lane
Magnus Hagander  writes:
> On Fri, May 29, 2015 at 9:32 PM, Tom Lane  wrote:
>> I think there's no way that we wait more than one additional week to push
>> the fsync fix.  So the problem is not with scheduling the update releases,
>> it's with whether we can also fit in a 9.5 beta release before PGCon.

> I think 9.5 beta has to stand back. The question is what we do with the
> potentially two minor releases. Then we can slot in the beta whenever.

> If we do the minor as currently planned, can we do another one the week
> after to deal with the multixact issues? (scheduling wise we're going to
> have to do one the week after *regardless*, the question is if we can make
> two different ones, or if we need to fold them into one)

I suppose we could, but it doubles the amount of release gruntwork
involved, and it doesn't exactly make us look good to our users either.

I believe Christoph indicated that he was going to cherry-pick the fsync
patch and push out an intermediate Debian package with that fix, so at
least for that community there is not an urgent reason to get out a set
of releases with only the fsync fixes and not the multixact fixes.  I'm
not clear though on how many of the other reports we heard came from
Debian users.  (Some of them did, but maybe not all.)

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


Re: [CORE] [HACKERS] postpone next week's release

2015-05-29 Thread Stephen Frost
* Tom Lane (t...@sss.pgh.pa.us) wrote:
> Magnus Hagander  writes:
> > On Fri, May 29, 2015 at 9:32 PM, Tom Lane  wrote:
> >> I think there's no way that we wait more than one additional week to push
> >> the fsync fix.  So the problem is not with scheduling the update releases,
> >> it's with whether we can also fit in a 9.5 beta release before PGCon.
> 
> > I think 9.5 beta has to stand back. The question is what we do with the
> > potentially two minor releases. Then we can slot in the beta whenever.
> 
> > If we do the minor as currently planned, can we do another one the week
> > after to deal with the multixact issues? (scheduling wise we're going to
> > have to do one the week after *regardless*, the question is if we can make
> > two different ones, or if we need to fold them into one)
> 
> I suppose we could, but it doubles the amount of release gruntwork
> involved, and it doesn't exactly make us look good to our users either.

Agreed.  Makes it look like we can't manage to figure out our bugs and
put fixes for them together in sensible releases..

Thanks!

Stephen


signature.asc
Description: Digital signature


Re: [CORE] [HACKERS] postpone next week's release

2015-05-29 Thread Magnus Hagander
On Fri, May 29, 2015 at 9:46 PM, Stephen Frost  wrote:

> * Tom Lane (t...@sss.pgh.pa.us) wrote:
> > Magnus Hagander  writes:
> > > On Fri, May 29, 2015 at 9:32 PM, Tom Lane  wrote:
> > >> I think there's no way that we wait more than one additional week to
> push
> > >> the fsync fix.  So the problem is not with scheduling the update
> releases,
> > >> it's with whether we can also fit in a 9.5 beta release before PGCon.
> >
> > > I think 9.5 beta has to stand back. The question is what we do with the
> > > potentially two minor releases. Then we can slot in the beta whenever.
> >
> > > If we do the minor as currently planned, can we do another one the week
> > > after to deal with the multixact issues? (scheduling wise we're going
> to
> > > have to do one the week after *regardless*, the question is if we can
> make
> > > two different ones, or if we need to fold them into one)
> >
> > I suppose we could, but it doubles the amount of release gruntwork
> > involved, and it doesn't exactly make us look good to our users either.
>
> Agreed.  Makes it look like we can't manage to figure out our bugs and
> put fixes for them together in sensible releases..
>

The flipside of that is that we have a bug fix that's preventing peoples
databases from starting, and we're the intentionally delaying the shipment
of it. Though i guess a mitigating fact there is that it is very easy to
manually recover from that. But it's painful if your db server restarts
awhen you're not around...

-- 
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/


Re: [HACKERS] Re: [GENERAL] 9.4.1 -> 9.4.2 problem: could not access status of transaction 1

2015-05-29 Thread Bruce Momjian
On Thu, May 28, 2015 at 07:24:26PM -0400, Robert Haas wrote:
> On Thu, May 28, 2015 at 4:06 PM, Joshua D. Drake  
> wrote:
> > FTR: Robert, you have been a Samurai on this issue. Our many thanks.
> 
> Thanks!  I really appreciate the kind words.
> 
> So, in thinking through this situation further, it seems to me that
> the situation is pretty dire:
> 
> 1. If you pg_upgrade to 9.3 before 9.3.5, then you may have relminmxid
> or datminmxid values which are 1 instead of the correct value.
> Setting the value to 1 was too far in the past if your MXID counter is
> < 2B, and too far in the future if your MXID counter is > 2B.
> 
> 2. If you pg_upgrade to 9.3.7 or 9.4.2, then you may have datminmxid
> values which are equal to the next-mxid counter instead of the correct
> value; in other words, they are two new.
> 
> 3. If you pg_upgrade to 9.3.5, 9.3.6, 9.4.0, or 9.4.1, then you will
> have the first problem for tables in template databases, and the
> second one for the rest. (See 866f3017a.)

I think we need to step back and look at the brain power required to
unravel the mess we have made regarding multi-xact and fixes.  (I bet
few people can even remember which multi-xact fixes went into which
releases --- I can't.)  Instead of working on actual features, we are
having to do this complex diagnosis because we didn't do a thorough
analysis at the time a pattern of multi-xact bugs started to appear. 
Many projects deal with this compound bug debt regularly, but we have
mostly avoided this fate.

-- 
  Bruce Momjian  http://momjian.us
  EnterpriseDB http://enterprisedb.com

  + Everyone has their own god. +


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


Re: [CORE] [HACKERS] postpone next week's release

2015-05-29 Thread Stephen Frost
* Magnus Hagander (mag...@hagander.net) wrote:
> On Fri, May 29, 2015 at 9:46 PM, Stephen Frost  wrote:
> 
> > * Tom Lane (t...@sss.pgh.pa.us) wrote:
> > > Magnus Hagander  writes:
> > > > On Fri, May 29, 2015 at 9:32 PM, Tom Lane  wrote:
> > > >> I think there's no way that we wait more than one additional week to
> > push
> > > >> the fsync fix.  So the problem is not with scheduling the update
> > releases,
> > > >> it's with whether we can also fit in a 9.5 beta release before PGCon.
> > >
> > > > I think 9.5 beta has to stand back. The question is what we do with the
> > > > potentially two minor releases. Then we can slot in the beta whenever.
> > >
> > > > If we do the minor as currently planned, can we do another one the week
> > > > after to deal with the multixact issues? (scheduling wise we're going
> > to
> > > > have to do one the week after *regardless*, the question is if we can
> > make
> > > > two different ones, or if we need to fold them into one)
> > >
> > > I suppose we could, but it doubles the amount of release gruntwork
> > > involved, and it doesn't exactly make us look good to our users either.
> >
> > Agreed.  Makes it look like we can't manage to figure out our bugs and
> > put fixes for them together in sensible releases..
> >
> 
> The flipside of that is that we have a bug fix that's preventing peoples
> databases from starting, and we're the intentionally delaying the shipment
> of it. Though i guess a mitigating fact there is that it is very easy to
> manually recover from that. But it's painful if your db server restarts
> awhen you're not around...

And we have *another* fix for a *data corruption* bug which is coming in
the following *week*.

Yes, I think delaying a week to get both in is better than putting out a
fix for one bug when we *know* there's a data corruption bug sitting in
that code, and we're putting out a fix for it the following week.

If we were talking about a month-long delay, that'd be one thing, but
that isn't the impression I've got about what we're talking about.

Thanks!

Stephen


signature.asc
Description: Digital signature


Re: [CORE] [HACKERS] postpone next week's release

2015-05-29 Thread Bruce Momjian
On Fri, May 29, 2015 at 03:32:57PM -0400, Tom Lane wrote:
> I know Josh doesn't like to do beta1 releases concurrently with back
> branches because it confuses the PR messaging.  But we could make an
> exception perhaps; or do all those releases the same week but announce
> the beta the day after the bugfix releases.
> 
> Or we just let the beta slide till after PGCon, but then I think we're
> missing some excitement factor.

I am unclear if we are anywhere near ready for beta1 even in June.  Are
we?

-- 
  Bruce Momjian  http://momjian.us
  EnterpriseDB http://enterprisedb.com

  + Everyone has their own god. +


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


Re: [CORE] [HACKERS] postpone next week's release

2015-05-29 Thread Stephen Frost
* Bruce Momjian (br...@momjian.us) wrote:
> On Fri, May 29, 2015 at 03:32:57PM -0400, Tom Lane wrote:
> > I know Josh doesn't like to do beta1 releases concurrently with back
> > branches because it confuses the PR messaging.  But we could make an
> > exception perhaps; or do all those releases the same week but announce
> > the beta the day after the bugfix releases.
> > 
> > Or we just let the beta slide till after PGCon, but then I think we're
> > missing some excitement factor.
> 
> I am unclear if we are anywhere near ready for beta1 even in June.  Are
> we?

I'm all about having that discussion...  but can we do it on another
thread or at least wait til we've decided about the back-branch
releases?  They are clearly the more important issue to consider.

Thanks!

Stephen


signature.asc
Description: Digital signature


Re: [HACKERS] RFC: Remove contrib entirely

2015-05-29 Thread Joshua D. Drake


On 05/29/2015 12:30 PM, Pavel Stehule wrote:


Contrib made sense years ago. It does not any longer. Let's put the
old horse down and raise a new herd of ponies on a new pasture.


Still there is strong sense - it is a referential implementation of our
extension API. We need it to find regressions, changes. I don't believe


No, then we need a proper test suite for the extension API.


so external extensions can do it. Only PostGIS is massively accepted and
developed by more than few people. Personally I am thinking so removing
contrib is not good idea.


Is there an extension/contrib module in the last decade that more than 
once has shown to help us with that?



Sincerely,

JD



--
Command Prompt, Inc. - http://www.commandprompt.com/  503-667-4564
PostgreSQL Centered full stack support, consulting and development.
Announcing "I'm offended" is basically telling the world you can't
control your own emotions, so everyone else should do it for you.


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


Re: [CORE] [HACKERS] postpone next week's release

2015-05-29 Thread Tom Lane
Stephen Frost  writes:
> * Bruce Momjian (br...@momjian.us) wrote:
>> I am unclear if we are anywhere near ready for beta1 even in June.  Are
>> we?

> I'm all about having that discussion...  but can we do it on another
> thread or at least wait til we've decided about the back-branch
> releases?  They are clearly the more important issue to consider.

It's the same discussion though, ie what releases are we expecting to
get out in the next couple of weeks.

It's possible that we ought to give up on a pre-conference beta.
Certainly a whole lot of time that I'd hoped would go into reviewing
9.5 feature commits has instead gone into back-branch bug chasing this
week.

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


Re: [CORE] [HACKERS] postpone next week's release

2015-05-29 Thread Stephen Frost
* Tom Lane (t...@sss.pgh.pa.us) wrote:
> It's possible that we ought to give up on a pre-conference beta.
> Certainly a whole lot of time that I'd hoped would go into reviewing
> 9.5 feature commits has instead gone into back-branch bug chasing this
> week.

I guess that's what I'm getting at.  We need to take care of the
back-branches and that means pushing beta back.  I fully expect a good
discussion on when to release beta when we get closer on that, but we're
not going to be close while we have outstanding big back-branch bugs.

Thanks!

Stephen


signature.asc
Description: Digital signature


Re: [CORE] [HACKERS] postpone next week's release

2015-05-29 Thread Bruce Momjian
On Fri, May 29, 2015 at 04:01:00PM -0400, Tom Lane wrote:
> Stephen Frost  writes:
> > * Bruce Momjian (br...@momjian.us) wrote:
> >> I am unclear if we are anywhere near ready for beta1 even in June.  Are
> >> we?
> 
> > I'm all about having that discussion...  but can we do it on another
> > thread or at least wait til we've decided about the back-branch
> > releases?  They are clearly the more important issue to consider.
> 
> It's the same discussion though, ie what releases are we expecting to
> get out in the next couple of weeks.

Agreed.  If we want to put out beta1 before PGCon, I need to start on
the release notes on Monday.

> It's possible that we ought to give up on a pre-conference beta.
> Certainly a whole lot of time that I'd hoped would go into reviewing
> 9.5 feature commits has instead gone into back-branch bug chasing this
> week.

Based on what has transpired in the past two weeks, I am thinking we
need to move _slower_, not faster.  I am concerned we have focused so
much on new features that we have taken our eye off of reliability.

-- 
  Bruce Momjian  http://momjian.us
  EnterpriseDB http://enterprisedb.com

  + Everyone has their own god. +


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


Re: [CORE] [HACKERS] postpone next week's release

2015-05-29 Thread Joshua D. Drake

On 05/29/2015 01:03 PM, Stephen Frost wrote:

* Tom Lane (t...@sss.pgh.pa.us) wrote:

It's possible that we ought to give up on a pre-conference beta.
Certainly a whole lot of time that I'd hoped would go into reviewing
9.5 feature commits has instead gone into back-branch bug chasing this
week.


I guess that's what I'm getting at.  We need to take care of the
back-branches and that means pushing beta back.


+1

JD


--
The most kicking donkey PostgreSQL Infrastructure company in existence.
The oldest, the most experienced, the consulting company to the stars.
Command Prompt, Inc. http://www.commandprompt.com/ +1 -503-667-4564 -
24x7 - 365 - Proactive and Managed Professional Services!


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


Re: [HACKERS] Need Force flag for pg_drop_replication_slot()

2015-05-29 Thread Josh Berkus
On 05/29/2015 11:30 AM, Stephen Frost wrote:
> I know how big my WAL partition is.  Let me tell PG how big it is and to
> not do anything that'll end up going over that amount, and we'll never
> see a crash due to out of disk space for WAL again.

H.  Do we have a clear idea anywhere in server memory how many WAL
segments there are?

-- 
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com


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


Re: [CORE] [HACKERS] postpone next week's release

2015-05-29 Thread Robert Haas
On Fri, May 29, 2015 at 4:01 PM, Tom Lane  wrote:
> It's possible that we ought to give up on a pre-conference beta.
> Certainly a whole lot of time that I'd hoped would go into reviewing
> 9.5 feature commits has instead gone into back-branch bug chasing this
> week.

I'm personally kind of astonished that we're even thinking about beta
so soon.  I mean, we at least need to go through the stuff listed
here, I think:

https://wiki.postgresql.org/wiki/PostgreSQL_9.5_Open_Items

The bigger issue is: what's NOT on that list that should be?  I think
we need to devote some cycles to figuring that out, and I sure haven't
had any this week.

In any case, I think the negative PR that we're going to get from not
getting this multixact stuff taken care of is going to far outweigh
any positive PR from getting 9.5beta1 out a little sooner, especially
if 9.5beta1 is bug-ridden because we gave it no time to settle.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


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


Re: [HACKERS] Need Force flag for pg_drop_replication_slot()

2015-05-29 Thread Stephen Frost
* Josh Berkus (j...@agliodbs.com) wrote:
> On 05/29/2015 11:30 AM, Stephen Frost wrote:
> > I know how big my WAL partition is.  Let me tell PG how big it is and to
> > not do anything that'll end up going over that amount, and we'll never
> > see a crash due to out of disk space for WAL again.
> 
> H.  Do we have a clear idea anywhere in server memory how many WAL
> segments there are?

Why does it need to be in shared memory..?

Clearly, when we're looking at cleaning up the WAL files, we know if the
archive command is failing and what file we're trying to archive, or if
we're not able to recycle a given file because we have logical
replication slots that want it, etc.

We certainly know where we're currently at in the WAL stream and we know
how big each WAL file is..

We just need a knob to be able to say "alright, this WAL file might
still be desired by something, but we're running out of room for *new*
WAL and, therefore, that's just too bad for those process that want it"
and recycle it anyway.  There are probably error conditions we have to
consider for replication slots when that happens, etc, but I don't think
we lack the info to make the decision, except for what value to set the
knob to, which is clearly system-dependent.

Thanks!

Stephen


signature.asc
Description: Digital signature


Re: [CORE] [HACKERS] postpone next week's release

2015-05-29 Thread Tom Lane
Robert Haas  writes:
> I'm personally kind of astonished that we're even thinking about beta
> so soon.  I mean, we at least need to go through the stuff listed
> here, I think:
> https://wiki.postgresql.org/wiki/PostgreSQL_9.5_Open_Items

Well, maybe we ought to call it an alpha not a beta, but I think we ought
to put out some kind of release that we can encourage people to test.
What you are suggesting is that we serialize resolution of the known
issues with discovery of new issues, and that's not an efficient use of
time.  Especially seeing that we're approaching the summer season where
we won't get much input at all.

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


Re: [HACKERS] RFC: Remove contrib entirely

2015-05-29 Thread Pavel Stehule
2015-05-29 21:59 GMT+02:00 Joshua D. Drake :

>
> On 05/29/2015 12:30 PM, Pavel Stehule wrote:
>
>  Contrib made sense years ago. It does not any longer. Let's put the
>> old horse down and raise a new herd of ponies on a new pasture.
>>
>>
>> Still there is strong sense - it is a referential implementation of our
>> extension API. We need it to find regressions, changes. I don't believe
>>
>
> No, then we need a proper test suite for the extension API.
>

maybe partially, but it is.

>
>  so external extensions can do it. Only PostGIS is massively accepted and
>> developed by more than few people. Personally I am thinking so removing
>> contrib is not good idea.
>>
>
> Is there an extension/contrib module in the last decade that more than
> once has shown to help us with that?
>

What I know - 9.5 transformations for testing on more platforms.

It is hard to calculate how often the code from contrib helps - but any
feature last four years has not to break contrib test too, so I believe it
enforce better API stability.

It is hard to imagine to design and maintaining any extension API without
platform like contrib. It can be renamed, divided, but some like contrib
must exists in core code base if PostgreSQL should be extensible database.


>
>
> Sincerely,
>
>
> JD
>
>
>
> --
> Command Prompt, Inc. - http://www.commandprompt.com/  503-667-4564
> PostgreSQL Centered full stack support, consulting and development.
> Announcing "I'm offended" is basically telling the world you can't
> control your own emotions, so everyone else should do it for you.
>


  1   2   >