Thread: Error while executing initdb...
Dear All
I put a printf statement in the "main.c" code and built it. Later when I tried to execute INITDB, I got the following error
The program "postgres" was found by xxxx but was not the same version as initdb.Check your installation
After some analysis, I figured out that this error is being generated because "ret" code from "PG_CTL.c" is returning a non zero return code while it is comparing the line and versionstr in "exec.c". It looks like while reading the line in "pipe_read_line" method, it is concatenating the printf statement with the postgres version(postgres (PostgreSQL)xxxxx).
I thought this probably is a defect and maybe the buffer needs to be flushed out before reading it in "pipe_read_line" method. Before doing further investigation and putting a possible fix, I thought to check with this group if it is worth putting the effort.
Thanks
Rajib
On Mon, 31 Dec 2018 at 17:43, Rajib Deb <Rajib_Deb@infosys.com> wrote: > > Dear All > I put a printf statement in the "main.c" code and built it. Later when I tried to execute INITDB, I got the following error > > The program "postgres" was found by xxxx but was not the same version as initdb.Check your installation > > After some analysis, I figured out that this error is being generated because "ret" code from "PG_CTL.c" is returning anon zero return code while it is comparing the line and versionstr in "exec.c". It looks like while reading the line in"pipe_read_line" method, it is concatenating the printf statement with the postgres version(postgres (PostgreSQL)xxxxx). > > I thought this probably is a defect and maybe the buffer needs to be flushed out before reading it in "pipe_read_line"method. Before doing further investigation and putting a possible fix, I thought to check with this groupif it is worth putting the effort. From looking at the code, it appears what happens is that find_other_exec() calls "postgres -V" and reads the first line of the output, so probably what's going on is you're printing out your additional line even when postgres is called with -V or --version... Would it not be easier just not to do that? -- David Rowley http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services