Re: [HACKERS] Issues with building snap packages and psql

2016-10-27 Thread Robert Haas
On Thu, Oct 27, 2016 at 12:24 PM, Joshua D. Drake  
wrote:
> This problem clearly an improper implementation on our part. We have found a
> work around by wrapping the launch of psql so we can set PSQLRC. At some
> point, perhaps with v10 we could change this. This problem has been noted on
> other ends of the innertubes as well (we submitted this as a potential bug
> to Ubuntu and they too found that we don't handle this correctly).

Yes, I think the evidence is growing that we ought to change this.

-- 
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] Issues with building snap packages and psql

2016-10-27 Thread Joshua D. Drake

On 10/26/2016 12:10 PM, Joshua D. Drake wrote:

On 10/26/2016 11:33 AM, Robert Haas wrote:

On Wed, Oct 26, 2016 at 2:22 PM, Joshua D. Drake



It is also inconsistent with how other programs behave. For example
if psql
uses readline, and you change the value of $HOME, then readline uses
$HOME/.inputrc whereas psql does not use $HOME/.psqlrc.


Sounds like the same issue that Rudolf Gavlas complained about in
https://www.postgresql.org/message-id/CAEH6cQqbdbXoUHJBbX9ixwfjFFsUC-a8hFntKcci=diwgbb...@mail.gmail.com



This problem clearly an improper implementation on our part. We have 
found a work around by wrapping the launch of psql so we can set PSQLRC. 
At some point, perhaps with v10 we could change this. This problem has 
been noted on other ends of the innertubes as well (we submitted this as 
a potential bug to Ubuntu and they too found that we don't handle this 
correctly).


Sincerely,

JD





--
Command Prompt, Inc.  http://the.postgres.company/
+1-503-667-4564
PostgreSQL Centered full stack support, consulting and development.
Everyone appreciates your honesty, until you are honest with them.
Unless otherwise stated, opinions are my own.


--
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] Issues with building snap packages and psql

2016-10-26 Thread Joshua D. Drake

On 10/26/2016 11:33 AM, Robert Haas wrote:

On Wed, Oct 26, 2016 at 2:22 PM, Joshua D. Drake  wrote:

After some further investigation and collaboration with #postgresql it looks
like what we have here is an actual bug or at least improper implementation.
Apparently, we use getpwuid on the euid to locate the 'home directory'. This
is incorrect (as well as inconsistent to our own documentation) [1]. Our
documentation says that dotfiles are ~/.whatever, and ~ on its own in shell
means the value of $HOME, it does NOT mean the current user's homedir from
getpwuid.


It is also inconsistent with how other programs behave. For example if psql
uses readline, and you change the value of $HOME, then readline uses
$HOME/.inputrc whereas psql does not use $HOME/.psqlrc.


Sounds like the same issue that Rudolf Gavlas complained about in
https://www.postgresql.org/message-id/CAEH6cQqbdbXoUHJBbX9ixwfjFFsUC-a8hFntKcci=diwgbb...@mail.gmail.com


It does sound similar, unfortunately the limited response doesn't seem 
to address the issue in that we are doing it in a way that nobody (or at 
least commonly) else does.


To me this sounds strikingly familiar to how we ignored how everyone 
else handled commenting out parameters vs how we thought we were right 
until we finally decided everyone else was already correct and changed 
it. (metaphorically speaking)


That said, I am not interested in a philosophical argument. It appears 
to me that based on the referenced PDF that we are wrong. How do we fix 
it? What are the implications of that? I just want to solve the problem.


Sincerely,

JD




--
Command Prompt, Inc.  http://the.postgres.company/
+1-503-667-4564
PostgreSQL Centered full stack support, consulting and development.
Everyone appreciates your honesty, until you are honest with them.
Unless otherwise stated, opinions are my own.


--
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] Issues with building snap packages and psql

2016-10-26 Thread Robert Haas
On Wed, Oct 26, 2016 at 2:22 PM, Joshua D. Drake  wrote:
> After some further investigation and collaboration with #postgresql it looks
> like what we have here is an actual bug or at least improper implementation.
> Apparently, we use getpwuid on the euid to locate the 'home directory'. This
> is incorrect (as well as inconsistent to our own documentation) [1]. Our
> documentation says that dotfiles are ~/.whatever, and ~ on its own in shell
> means the value of $HOME, it does NOT mean the current user's homedir from
> getpwuid.
>
>
> It is also inconsistent with how other programs behave. For example if psql
> uses readline, and you change the value of $HOME, then readline uses
> $HOME/.inputrc whereas psql does not use $HOME/.psqlrc.

Sounds like the same issue that Rudolf Gavlas complained about in
https://www.postgresql.org/message-id/CAEH6cQqbdbXoUHJBbX9ixwfjFFsUC-a8hFntKcci=diwgbb...@mail.gmail.com

-- 
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] Issues with building snap packages and psql

2016-10-26 Thread Joshua D. Drake

Hello,

After some further investigation and collaboration with #postgresql it 
looks like what we have here is an actual bug or at least improper 
implementation. Apparently, we use getpwuid on the euid to locate the 
'home directory'. This is incorrect (as well as inconsistent to our own 
documentation) [1]. Our documentation says that dotfiles are 
~/.whatever, and ~ on its own in shell means the value of $HOME, it does 
NOT mean the current user's homedir from getpwuid.



It is also inconsistent with how other programs behave. For example if 
psql uses readline, and you change the value of $HOME, then readline 
uses $HOME/.inputrc whereas psql does not use $HOME/.psqlrc.


Sincerely,

JD

1. 
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_06_01


--
Command Prompt, Inc.  http://the.postgres.company/
+1-503-667-4564
PostgreSQL Centered full stack support, consulting and development.
Everyone appreciates your honesty, until you are honest with them.
Unless otherwise stated, opinions are my own.


--
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] Issues with building snap packages and psql

2016-10-26 Thread Joshua D. Drake

On 10/26/2016 10:26 AM, Andres Freund wrote:



On October 26, 2016 8:09:11 PM GMT+03:00, "Joshua D. Drake" 
 wrote:


postgres=# \! export
export HOME='/home/jd/snap/postgresql96/1'


That doesn't do much. Isn't that just spawning a shell in which you set the 
variable, which then immediately exits? And this the value isn't set anywhere 
relevant?


I was assuming (and TGL corrected me) that psql was going to pull the 
$HOME variable to determine where to read/write .psqlrc and .psql_history.


Sincerely,

JD


--
Command Prompt, Inc.  http://the.postgres.company/
+1-503-667-4564
PostgreSQL Centered full stack support, consulting and development.
Everyone appreciates your honesty, until you are honest with them.
Unless otherwise stated, opinions are my own.


--
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] Issues with building snap packages and psql

2016-10-26 Thread Andres Freund


On October 26, 2016 8:09:11 PM GMT+03:00, "Joshua D. Drake" 
 wrote:

>postgres=# \! export
>export HOME='/home/jd/snap/postgresql96/1'

That doesn't do much. Isn't that just spawning a shell in which you set the 
variable, which then immediately exits? And this the value isn't set anywhere 
relevant?

Andres
-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.


-- 
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] Issues with building snap packages and psql

2016-10-26 Thread Joshua D. Drake

On 10/26/2016 10:16 AM, Tom Lane wrote:

"Joshua D. Drake"  writes:

Is psql getting the home directory from /etc/passwd?


Yes, of course.


If so what can we do about that?


Fix your /etc/passwd entry?  Seems unlikely that psql is the only
program that believes that entry.


It isn't that simple. Snap packages are similar to a chroot. My home 
directory *is* /home/jd but snap packages can't write to that because of 
the isolation.


Sincerely,

JD


--
Command Prompt, Inc.  http://the.postgres.company/
+1-503-667-4564
PostgreSQL Centered full stack support, consulting and development.
Everyone appreciates your honesty, until you are honest with them.
Unless otherwise stated, opinions are my own.


--
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] Issues with building snap packages and psql

2016-10-26 Thread Tom Lane
"Joshua D. Drake"  writes:
> Is psql getting the home directory from /etc/passwd?

Yes, of course.

> If so what can we do about that?

Fix your /etc/passwd entry?  Seems unlikely that psql is the only
program that believes that entry.

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] Issues with building snap packages and psql

2016-10-26 Thread Joshua D. Drake

Hello,

CMD has been working on building snap packages. It has been an adventure 
and we are very close to having them complete. In fact they are complete 
enough that we have published them in the snap repo.


jd@jd-wks:~$ snap find postgres
NameVersion  Developer  Notes  Summary
postgresql969.6.0cmd-  PostgreSQL is a powerful, 
open source object-relational database system.
postgresql959.5.3cmd-  PostgreSQL is a powerful, 
open source object-relational database system.
postgresql949.4.9cmd-  PostgreSQL is a powerful, 
open source object-relational database system.
postgresql939.3.14   cmd-  PostgreSQL is a powerful, 
open source object-relational database system.


However, we have found a problem with permissions that we haven't been 
able to overcome. The error presents as a simple:


could not save history to file "/home/jd/.psql_history": Permission denied

We tried the work around as presented here:

https://www.commandprompt.com/blog/psql_tip_change_history_location/

It didn't work and I couldn't figure out why. It was especially 
confusing because if you are in psql via snap $HOME is set correctly:


postgres=# \! export
export HOME='/home/jd/snap/postgresql96/1'

Then I traced it and saw this:

open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 7
lseek(7, 0, SEEK_CUR)   = 0
fstat(7, {st_mode=S_IFREG|0644, st_size=2581, ...}) = 0
mmap(NULL, 2581, PROT_READ, MAP_SHARED, 7, 0) = 0x7f1f9e5fc000
lseek(7, 2581, SEEK_SET)= 2581
munmap(0x7f1f9e5fc000, 2581)= 0
close(7)= 0
[...]
futex(0x1096088, FUTEX_WAIT, 0, NULL)   = 0
futex(0x1096088, FUTEX_WAIT, 0, NULL/home/jd/.psqlrc: Permission denied
psql (9.6.0)
Type "help" for help.

postgres=# \q
could not save history to file "/home/jd/.psql_history": Permission denied
 
+++ exited with 0 +++

Is psql getting the home directory from /etc/passwd? If so what can we 
do about that?


Sincerely,

JD

--
Command Prompt, Inc.  http://the.postgres.company/
+1-503-667-4564
PostgreSQL Centered full stack support, consulting and development.
Everyone appreciates your honesty, until you are honest with them.
Unless otherwise stated, opinions are my own.


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