Windows installer 16.3-2 fails at initdb if Turkish_Türkiye.1254 selected or is default locale of the OS
Hello,
I am using postgresql-16.3-2-windows-x64.exe as installer.
I get an error message Problem running post-install step. Installation may not complete correctly The database cluster initialization failed.
I tested the same installer on
- Windows 10 x64 English - all settings US English
- Windows 10 x64 Turkish - all settings US English
- Windows 10 x64 Turkish - all settings TR Turkish
- Windows Server 2022 x64 English - all settings US English
All above tests give same error message.
When you read installer log file using UTF8 encoding and cscript parameters are correct in Turkish letters. However, cluster initialization log entry has wrong Turkish letter in it.
The database cluster will be initialized with locale "Turkish_T rkiye.1254".
Above, word Türkiye has character ü (double dot at top) but that letter is not logged correctly in UTF8 encoding. I think that is the root cause for the installer error.
Below is compressed log file for your convenience. installbuilder_installer.zip
Let me know if you need more information.
Thanks & Regards, Ertan
Having the same problem. Unable to install postgre using installer due to this error unless i change the locale.
Problem running post-install step. Installation may not complete correctly The database cluster initialization failed.
Kindly submitted for your information. Regards,
@ertankucukoglu and @Hakkology this is being discussed at https://www.postgresql.org/message-id/flat/[email protected]
apart from it, per https://www.postgresql.org/message-id/dd630b4a-e136-42d4-814e-954f9c03f90a%40dunslane.net Thomas feels installer is re-encoding and should be looked into as well. But, I couldn't reproduce this issue on <=15 so probably there is no bug in the installer and it only needs a source code change. It will be helpful if you could verify PostgreSQL version 15 installer and confirm if the fresh installation worked fine or returned the same locale issue? Thanks
@sandeep-edb I tested 15.7 installer on both Windows English and Windows Turkish. Installation complete without any problem on both systems. Is this problem with 16 because of PostgreSQL source changes?
@ertankucukoglu yes it seems like because the installer scripts around that part of functionality is same across all branches.
We see the same problem in postgresql 17 installation. I was able to perform the installation by changing the regional settings of Windows to English. But this method invalidates some language-related features.
- First, ensure all PostgreSQL files are completely removed from your system. This includes uninstalling any existing PostgreSQL instances and deleting leftover files.
- Run the installer as an administrator.
- During setup, instead of selecting your local default region, choose "English, United States" as the locale.
This error appears to be caused by localization settings, and changing the locale provides a simple solution for now.
I've generated a test installer that allows to provide a locale on the command line. I've uploaded it to EDB ShareFile. The installation was successful with this option:
postgresql-17.2-0.0snapshot12082629519.995.1.23fce2b.1-windows-x64.exe --locale "tr-TR"
I'll need the email address to grant download access to this file on ShareFile if anyone needs it to verify the fix before I generate the release installer.
Hi, We have added a fix for locales containing non-ascii characters and prepared a test/snapshot installer.
Can you please test this installer (not for production) and let us know how is it going:
https://get.enterprisedb.com/test-installers/postgresql-17.2-0.0snapshot13047990552.1097.1.3b995e2.3-windows-x64.exe
Hi,
We have added the support for all locales containing non-ascii characters and prepared this test-installer.
Can you please test this test/snapshot installer and let us know how is it going? https://get.enterprisedb.com/test-installers/postgresql-17.2-0.0snapshot13095136158.1102.1.f6efa78.3-windows-x64.exe
Once you confirm the issue is resolved, this fix will be added to the upcoming maintenance releases.
Apart from this locale issue, this installer is moved away from using any VB Script.
Thanks!
Sorry for the late reply. I was out of city for more than a week.
I just tested new installer on fresh Windows 10 - Turkish system. Selecting "Turkish (Türkiye)" as default locale worked just fine. Cluster initialized and no errors reported. Using pgAdmin to check postgres database, collation and character type is correct
I also tested new installer on another fresh Windows 10 - Turkish system. This time I selected default locale and this installation failed.
Installer log can be found below installbuilder_installer.log
I was expecting installer to work using the default locale since manually selecting "Turkish (Türkiye)" should be same as selecting "Default locale" on a Turkish Windows OS. I don't know technical details though.
Thank you.
Hi @ertankucukoglu,
Thanks for the feedback!
We are working on this issue, and will provide a new test-installer in a couple of hours.
@ertankucukoglu, Please try the installation with this test-installer and let us know how it goes:
https://get.enterprisedb.com/test-installers/postgresql-17.2-0.0snapshot13154625551.1107.1.f6efa78.3-windows-x64.exe
Hello,
This one works in all Turkish locales available in the installation.
Thank you.
Hi @ertankucukoglu,
Thank you for the feedback!
This fix will be included in the upcoming maintenance releases scheduled for 13th Feb'25. You can download the official installer from our website after the release.
The latest PostgreSQL minor releases for the installers with the fix are now available for download. Closing the ticket. Thanks for your patience.