Skip to content

HOST setting in app.ini incorrectly used. #24552

Closed
@lelanthran

Description

@lelanthran

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions