Re: Pgagent is not reading pgpass file either in Windows or Linux.

From: nageswara Bandla <nag(dot)bandla(at)gmail(dot)com>
To: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Pgagent is not reading pgpass file either in Windows or Linux.
Date: 2018-05-30 15:48:11
Message-ID: CADJadRBkfokPYGM=+ptGpK+VGF0ag3iOB=4zVDOR15Xmpz_fSg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Tue, May 29, 2018 at 6:15 PM, Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
wrote:

> On 05/29/2018 03:57 PM, nageswara Bandla wrote:
>
>> #1. Windows:
>>
>> My guess because the LocalSystem user does not have permissions on your:
>> %APPDATA%/postgresql/pgpass.co <http://pgpass.co>nf
>> file. This seems to be confirmed by it working when you run pgagent as
>> the login user.
>> Also:
>> passfile
>> Specifies the name of the file used to store passwords (see Section
>> 33.15). Defaults to ~/.pgpass, or %APPDATA%\postgresql\pgpass.co <
>> http://pgpass.co>nf on Microsoft Windows. (No error is reported if this
>> file does not exist.)
>>
>>
>> Does that mean we can not use pgagent (when installed) as a
>> "LocalSystem" service account and define PGPASSFILE to a valid accessible
>> location. ?
>>
>
> Not sure as I do not use Windows much and do not have a good handle on how
> it handles permissions. You might try raising an issue below to see if you
> can get some guidance:
>
>

Thank you Adrian, let me also try to raise an issue there and see.

> https://github.com/postgres/pgagent/issues
>
> Since I have tried copying pgpass.conf file to C:\pgpass.conf and defined
>> PGPASSFILE=C:\pgpass.conf
>> Still it was throwing no password supplied error.
>>
>>
>> #2. Linux
>> What happens if from the terminal as the postgres user you do?:
>> /path/to/pgagent 'connection string'
>>
>> pgagent is throwing the same error from terminal as a postgres user as
>> well. I have enabled debugging logging mode. It's not showing me which
>> password file it's trying to access.
>>
>
> Remember there is a difference between the postgres system user and the
> postgres database user. So when you did the above where you in the postgres
> system user shell? That is where you set up the .pgpass file. Running as
> the postgres database user in another system account will not work unless
> you create a .pgpass file in that home directory as well.
>
> It also seems that you have more the one instance of Postgres of installed
> and it looks like the 8.4.20 version is being found first. So I wonder if
> there is a library compatibility issue going on, given that 8.4 is well
> past EOL.
>

I am running pgagent command from postgres system user account where
.pgpass is setup.

It’s definitely not a library issue. Since the same pgagent command that I
gave earlier is working fine by appending “password=secret” at the end in
pgagent command line.

* /usr/bin/pgagent_96 -f -l 2 hostaddr=127.0.0.1 dbname=linuxpostgresdb
user=postgres port=5432 password=secret*

Anyway, I have tried your suggestion to clean up old postgres libraries and
tried to keep only one version of postgres libraries exist in the entire
system. It’s still same issue.

And I am trying in the same machine where the postgres is installed.

>
>
>> When I run psql from postgres user; It works fine.
>> *
>> *
>> */usr/bin/pgagent_96 -f -l 2 hostaddr=127.0.0.1 dbname=linuxpostgresdb
>> user=postgres port=5432*
>> DEBUG: Creating primary connection
>> DEBUG: Connection Information:
>> DEBUG: user : postgres
>> DEBUG: port : 5432
>> DEBUG: host : 127.0.0.1
>> DEBUG: dbname : linuxpostgresdb
>> DEBUG: password :
>> DEBUG: conn timeout : 0
>> DEBUG: Connection Information:
>> DEBUG: user : postgres
>> DEBUG: port : 5432
>> DEBUG: host : 127.0.0.1
>> DEBUG: dbname : linuxpostgresdb
>> DEBUG: password :
>> DEBUG: conn timeout : 0
>> DEBUG: Creating DB connection: user=postgres port=5432 hostaddr=127.0.0.1
>> dbname=linuxpostgresdb
>> WARNING: Couldn't create the primary connection (attempt 1): fe_sendauth:
>> no password supplied
>> DEBUG: Clearing all connections
>> DEBUG: Connection stats: total - 1, free - 0, deleted - 1
>>
>> *# psql command is running fine:*
>> psql -h 127.0.0.1 -d linuxpostgresdb -U postgres
>>
>> psql (8.4.20, server 9.6.6)
>> WARNING: psql version 8.4, server version 9.6.
>> Some psql features might not work.
>> Type "help" for help.
>>
>> linuxpostgresdb=#
>>
>>
>>
>>
>>
>
> --
> Adrian Klaver
> adrian(dot)klaver(at)aklaver(dot)com
>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message nageswara Bandla 2018-05-30 15:51:51 Re: Pgagent is not reading pgpass file either in Windows or Linux.
Previous Message Adrian Klaver 2018-05-30 14:44:29 Re: Query running for 12 hours