dbdpg
dbdpg copied to clipboard
Tests fail to start new DB: pg_ctl: unrecognized operation mode
I'm trying to install DBD::Pg on a Windows 11 machine (64-bit). The installation fails every time because the tests fail.
Installation command: cpanm DBD::[email protected] --quiet
Console error message: ! Installing DBD::Pg failed. See C:\Users\[username]\.cpanm\work\1669705333.8180\build.log for details. Retry with --force to force install it.
Last several lines from the build.log file:
t/00_signature.t ....... skipped: Set the environment variable TEST_SIGNATURE to enable this test
t/00basic.t ............ ok
Please wait, creating new database (version 14.5) for testing
pg_ctl: unrecognized operation mode "C:/Users/[username]/.cpanm/work/1669705333.8180/DBD-Pg-3.16.0/dbdpg_test_database/data/socket'"
Try "pg_ctl --help" for more information.
#
# DBI Version 1.643
# DBD::Pg Version 3.16.0
# Perl Version 5.32.1
# OS MSWin32
# PostgreSQL (compiled) ?
# PostgreSQL (target) ?
# PostgreSQL (reported) ?
# Default port ?
# DBI_DSN ?
# DBI_USER <not set>
# Test schema dbd_pg_testschema
# LANG C
# Adjusted: initdb
# Error was: Could not startup new database (pg_ctl -o '-k C:/Users/[username]/.cpanm/work/1669705333.8180/DBD-Pg-3.16.0/dbdpg_test_database/data/socket' -l C:/Users/[username]/.cpanm/work/1669705333.8180/DBD-Pg-3.16.0/dbdpg_test_database/dbdpg_test.logfile -D C:/Users/[username]/.cpanm/work/1669705333.8180/DBD-Pg-3.16.0/dbdpg_test_database/data start) () ()
Bailout called. Further testing stopped: Cannot continue: connection failed
FAILED--Further testing stopped: Cannot continue: connection failed
gmake: *** [Makefile:983: test_dynamic] Error 255
-> FAIL Installing DBD::Pg failed. See C:\Users\[username]\.cpanm\work\1669705333.8180\build.log for details. Retry with --force to force install it.
Additional info about my machine:
- The machine itself has been alive for over a year. I upgraded from Windows 10 to Windows 11 a couple weeks ago.
- I installed Perl, cpanminus, PostgreSQL, and Sqitch for the first time EVER today. I installed HeidiSQL a couple weeks ago (not sure if that matters).
- The command
perl -e 'use DBI; DBI->installed_versions();'
says that I have DBD::Pg version 3.8.0 installed. I don't know where that version of DBD::Pg came from. - Earlier today I also hit issue #96. I resolved that issue by installing PostgreSQL and adding the PostgreSQL bin folder to my Path.
I've never used PostgreSQL before, so feel free to share as much "obvious" beginner information with me as you want. I won't think that you are being condescending. 😄
I haven't used a Windows computer in over 25 years, so take what I write with a grain of salt, but, based on my googling, I think the pg_ctl: unrecognized operation mode
error means you need to run the tests in a shell with administrator privileges, or at least that's what someone wrote on the pgsql-novice(at)postgresql(dot)org mailing list.
I haven't used a Windows computer in over 25 years, so take what I write with a grain of salt, but, based on my googling, I think the
pg_ctl: unrecognized operation mode
error means you need to run the tests in a shell with administrator privileges, or at least that's what someone wrote on the pgsql-novice(at)postgresql(dot)org mailing list.
I guess I should have mentioned that I was running the command in an elevated PowerShell command prompt (powershell.exe). I tried executing cpanm DBD::[email protected] --quiet
in an elevated cmd.exe instance just now too. Same error. 😞
Thank you for sharing your hunch, though!! Much appreciated.
Something else I should have shared:
The "socket" folder mentioned in the error message "pg_ctl: unrecognized operation mode "C:/Users/[username]/.cpanm/work/1669705333.8180/DBD-Pg-3.16.0/dbdpg_test_database/data/socket'
" doesn't exist on my machine. Is that socket folder supposed to be created on the fly later, or should it exist at the time this error is hit?
Other folders that do exist at "C:/Users/[username]/.cpanm/work/1669705333.8180/DBD-Pg-3.16.0/dbdpg_test_database/data/":
- base
- global
- pg_commit_ts
- pg_dynshmem
- pg_logical
- pg_multixact
- pg_notify
- pg_replslot
- pg_serial
- pg_snapshots
- pg_stat
- pg_stat_tmp
- pg_subtrans
- pg_tblspc
- pg_twophase
- pg_wal
- pg_xact
Files that exist in the data folder:
- pg_hba.conf
- pg_ident.conf
- PG_VERSION
- postgresql.auto.conf
- postgresql.conf
A total of 22 folders & files.
This means that pg_ctl is not getting the final argument, 'start', as probably the other arguments are somehow intercepting it. Does the actual username contain spaces or anything odd? You could try from the command line and putting the "start" as the very first argument, and seeing if the output can give us a clue where the problem is.