Skip to content

Commit 6fe28a5

Browse files
[BUG FIX] A problem with socket directory is fixed
On non-Windows platform Postgres always looks for socket files in "/tmp" directory.
1 parent 67beb95 commit 6fe28a5

File tree

1 file changed

+29
-1
lines changed

1 file changed

+29
-1
lines changed

Diff for: testgres/node.py

+29-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import subprocess
77
import threading
88
import tempfile
9+
import platform
910
from queue import Queue
1011

1112
import time
@@ -1925,7 +1926,7 @@ def make_simple(
19251926

19261927
# Define delayed propertyes
19271928
if not ("unix_socket_directories" in options.keys()):
1928-
options["unix_socket_directories"] = __class__._gettempdir()
1929+
options["unix_socket_directories"] = __class__._gettempdir_for_socket()
19291930

19301931
# Set config values
19311932
node.set_auto_conf(options)
@@ -1938,6 +1939,33 @@ def make_simple(
19381939

19391940
return node
19401941

1942+
def _gettempdir_for_socket():
1943+
platform_system_name = platform.system().lower()
1944+
1945+
if platform_system_name == "windows":
1946+
return __class__._gettempdir()
1947+
1948+
#
1949+
# [2025-02-17] Hot fix.
1950+
#
1951+
# Let's use hard coded path as Postgres likes.
1952+
#
1953+
# pg_config_manual.h:
1954+
#
1955+
# #ifndef WIN32
1956+
# #define DEFAULT_PGSOCKET_DIR "/tmp"
1957+
# #else
1958+
# #define DEFAULT_PGSOCKET_DIR ""
1959+
# #endif
1960+
#
1961+
# On the altlinux-10 tempfile.gettempdir() may return
1962+
# the path to "private" temp directiry - "/temp/.private/<username>/"
1963+
#
1964+
# But Postgres want to find a socket file in "/tmp" (see above).
1965+
#
1966+
1967+
return "/tmp"
1968+
19411969
def _gettempdir():
19421970
v = tempfile.gettempdir()
19431971

0 commit comments

Comments
 (0)