Description
Description
My app.ini file has the following line:
HOST = /var/run/postgresql/.s.PGSQL.27541
Gitea logs the following messages to syslog:
May 5 20:36:53 small-repo gitea[37607]: 2023/05/05 20:36:53 routers/common/db.go:34:InitDBEngine() [E] ORM engine initialization attempt #1/10 failed. Error: dial unix /var/run/postgresql/.s.PGSQL.27541/.s.PGSQL.5432: connect: not a directory
The documentation (over here) says:
HOST: 127.0.0.1:3306: Database host address and port or absolute path for unix socket [mysql, postgres] (ex: /var/run/mysqld/mysqld.sock).
When I change the app.ini to have only the directory name, it doesn't find the file .s.PGSQL.27541
(because postgresql creates the socket file based on the port that it is listening on, which in my installation is not the standard port).
HOST = /var/run/postgresql
Now the logs say:
May 5 20:44:51 small-repo gitea[38047]: 2023/05/05 20:44:51 routers/common/db.go:34:InitDBEngine() [E] ORM engine initialization attempt #1/10 failed. Error: dial unix /var/run/postgresql/.s.PGSQL.5432: connect: no such file or directory
As a temporary fix I have soft-linked the expected filename (.s.PGSQL.5432
) to the actual file (.s.PGSQL.27541
), and it works as expected when the file .s.PGSQL.5432
is soft-linked to the file created by postgresql.
The expected behaviour is what the documentation says, that the HOST value is used as-is, and gitea does not append the hardcoded .s.PGSQL.5432
to it.
The hardcoded value appears to be returned by parsePostgreSQLHostPort()
in the port
variable. The pq
library function open()
receives a string, and builds the final string by appending .s.PGSQL.<port>
, which results in the incorrect filename being used.
Gitea Version
1.19.3
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
n/a
Screenshots
n/a
Git Version
n/a
Operating System
Bullseye
How are you running Gitea?
Bullseye repo.
Database
PostgreSQL