Thread: Window2012R2: initdb error: "The current directory is invalid."
Hi all, I have failed in execute initdb in "c:\Windows\Temp\dir" folder as reproduce logs below. The OS's messages "The current directory is invalid." was returned. I think it is a specification of Window2012R2 (because i could not reproduce In Windows 7) but not PostgreSQL's problem. But is it need to be do something in PostgreSQL sir? I found that the ERROR messages produced when bootstrap_template1 (initdb.c) execute PG_CMD_OPEN (_popen function). _popen not failed but OS produced "The current directory is invalid." message, postgres did not start, and _pclose is returned with 1 make initdb failed. May be, Window2012R2 does not permit to execute postgres command with none privilege permission in this case, I think so. --- Reproduce Environment --- OS: Window2012R2 PostgreSQL: 9.5 Command: initdb Execute User: Administrator Execute folder: c:\Windows\Temp\dir ------------------- --- Reproduce log --- c:\Windows\Temp>mkdir dir c:\Windows\Temp>cd dir c:\Windows\Temp\dir> c:\Windows\Temp\dir>cmd /c ""C:\Program Files\PostgreSQL\9.5\bin\initdb" --locale=C -D "c:\testdb" -d -n" Running in debug mode. Running in noclean mode. Mistakes will not be cleaned up. Running in debug mode. Running in noclean mode. Mistakes will not be cleaned up. The files belonging to this database system will be owned by user "Administrator". This user must also own the server process. VERSION=9.5.0 PGDATA=c:/testdb share_path=C:/Program Files/PostgreSQL/9.5/share PGPATH=C:/Program Files/PostgreSQL/9.5/bin POSTGRES_SUPERUSERNAME=Administrator POSTGRES_BKI=C:/Program Files/PostgreSQL/9.5/share/postgres.bki POSTGRES_DESCR=C:/Program Files/PostgreSQL/9.5/share/postgres.description POSTGRES_SHDESCR=C:/Program Files/PostgreSQL/9.5/share/postgres.shdescription POSTGRESQL_CONF_SAMPLE=C:/Program Files/PostgreSQL/9.5/share/postgresql.conf.sample PG_HBA_SAMPLE=C:/Program Files/PostgreSQL/9.5/share/pg_hba.conf.sample PG_IDENT_SAMPLE=C:/Program Files/PostgreSQL/9.5/share/pg_ident.conf.sample The database cluster will be initialized with locale "C". The default database encoding has accordingly been set to "SQL_ASCII". The default text search configuration will be set to "english". Data page checksums are disabled. creating directory c:/testdb ... ok creating subdirectories ... ok selecting default max_connections ... 10 selecting default shared_buffers ... 400kB selecting dynamic shared memory implementation ... windows creating configuration files ... ok creating template1 database in c:/testdb/base/1 ... The current directory is invalid. child process exited with exit code 1 initdb: data directory "c:/testdb" not removed at user's request c:\Windows\Temp\dir> --- Best regards, Dang Minh Huong NEC Solution Innovators, Ltd. http://www.nec-solutioninnovators.co.jp/en/
On 19 January 2016 at 18:49, Huong Dangminh <huo-dangminh@ys.jp.nec.com> wrote:
-- Hi all,
I have failed in execute initdb in "c:\Windows\Temp\dir" folder as
reproduce logs below. The OS's messages "The current directory is invalid."
was returned.
Is that directory or any parent of it a junction point?
Also, why would you possibly run the installer from there? You should be using %TEMP% which should generally resolve to C:\Users\{Username}\AppData\Local\Temp or similar.
creating template1 database in c:/testdb/base/1 ... The current directory is invalid.
It looks like somehow the current working directory is unmapped or cannot be found.
Is there any chance you have mapped network drives in use?