[pgpool-hackers: 2390] Problems with the relative paths in daemon mode

Muhammad Usama m.usama at gmail.com
Wed Jun 14 06:44:45 JST 2017


Hi

Pgpool-II does not properly handle the relative paths especially when the
pgpool.conf file is explicitly specified using the command line (-f switch)
while its patch is given relative to the current directory.

For example:

Suppose we invoke pgpool-II from "/home/work/installed/pgpool/bin" directory

$ pwd
/home/work//installed/pgpool/bin
$ ./pgpool -f simple_conf/pgpool.conf

Now we are expecting here is that the Pgpool-II will look for pgpool.conf
file in the
/home/work/installed/pgpool/bin/simple_conf/ directory, which it does
correctly :-), and also latter in the startup phase when it will require
the pool_passwd file it will look in the same (
/home/work/installed/pgpool/bin/simple_conf/)directory.
So in the code what Pgpool-II does is, it take out the directory portion
from the command line option provided to it for specifying the pgpool.conf
file and look for the pool_passwd file in that directory. which in this
case is just simple_conf/

Now the problem here is since the pgpool.conf path used in the command line
option was a relative path, so it will only be able to go to the correct
directory location if the current directory of Pgpool-II remains the same
from where it was invoked from.

And since we do not change the current directory when Pgpool-II is started
with "-n" switch ( non daemon mode) so everything works as expected in that
mode.
But when the Pgpool-II is started in the daemon mode the daemonize()
function changes the current directory to "/"

main.c:380 if(chdir("/"))

and after that all relative path becomes invalid and Pgpool-II will start
looking for files in invalid or non-existent location. which as per our
example in daemon mode it will try to find the pool_passwd file in

/simple_conf/pool_passed

instead of

/home/work//installed/pgpool/bin/simple_conf/pool_passwd
The solution to this is to convert the relative path of the pgpool.conf to
the absolute path at the startup and later use that absolute path for all
other path calculations.

If you do not have any reservation, than I will start working on the fix.

Thanks
Best Regards
Muhammad Usama
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.sraoss.jp/pipermail/pgpool-hackers/attachments/20170614/d3d5d7b7/attachment-0001.html>


More information about the pgpool-hackers mailing list