Gitea: Can't create repositories (incorrect read-only file system error)

Created on 22 Feb 2019  路  3Comments  路  Source: go-gitea/gitea

  • Gitea version (or commit ref): 1.7.2
  • Git version: 2.20.1
  • Operating system: Arch Linux
  • Database:

    • [ ] PostgreSQL

    • [x] MySQL

    • [ ] MSSQL

    • [ ] SQLite

  • Can you reproduce the bug at https://try.gitea.io:

    • [ ] Yes (provide example URL)

    • [ ] No

    • [x] Not relevant

  • Log gist:

Description

I have stood up a new instance of Gitea, and when I try to create a new repository I get a 500 server error. The syslog reports the following error:
[...routers/repo/repo.go:146 handleCreateError()] [E] CreatePost: initRepository: InitRepository: chdir /srv/gitea/lb.laboon/test.git: no such file or directory

(I have /srv/gitea configured as the repo directory, and can confirm that it does exist and gitea has appropriate permissions to write to it).

Upon further debugging the code, it appears that something incorrectly thinks that /srv is a read-only filesystem. I modified vendor/code.gitea.io/git/repo.go to print any errors related to os.MkdirAll and got the following:
[...routers/repo/repo.go:146 handleCreateError()] [E] CreatePost: initRepository: InitRepository: mkdir /srv/gitea/lb.laboon: read-only file system

I'm not sure why it is reporting that, because I can run mkdir /srv/gitea/lb.laboon manually as the gitea user and it works just fine, so I'm sort of at a loss here. Any help would be appreciated!

kinquestion

Most helpful comment

I figured out the issue. In Arch's package of gitea the following line is included in the systemd unit file:
ReadWritePaths=/etc/gitea/app.ini

This makes all other filesystem paths non-writable to the gitea process, regardless of filesystem permissions. My solution was to create a unit override file that additionally includes my custom repo path in the ReadWritePaths directive.

All 3 comments

I figured out the issue. In Arch's package of gitea the following line is included in the systemd unit file:
ReadWritePaths=/etc/gitea/app.ini

This makes all other filesystem paths non-writable to the gitea process, regardless of filesystem permissions. My solution was to create a unit override file that additionally includes my custom repo path in the ReadWritePaths directive.

Thank you so very much! I ran into the same error on arch and was wondering why and how to solve it.

@jolheiser I think a note about this could be added to #6524

Was this page helpful?
0 / 5 - 0 ratings

Related issues

internalfx picture internalfx  路  3Comments

flozz picture flozz  路  3Comments

BRMateus2 picture BRMateus2  路  3Comments

kolargol picture kolargol  路  3Comments

tuxfanou picture tuxfanou  路  3Comments