gnunet-developers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: requiring PostgreSQL superuser


From: Christian Grothoff
Subject: Re: requiring PostgreSQL superuser
Date: Sun, 13 Oct 2024 11:23:51 +0200
User-agent: Mozilla Thunderbird

Hi Daniel,

I've removed the LOCK statement, it was there to deal with a rare edge case where the versioning.sql was loaded concurrently, which is bad as the IF NOT EXISTS on the SCHEMA doesn't work without the lock, resulting in a hard failure. AFAIK the rare case where we needed this was resolved differently since then, so I guess it's fine to reduce the privilege requirement.

As for using transactions instead: did you see the "BEGIN"? We are, doesn't help if you have to concurrent transactions try to create the same SCHEMA.

That said, it means loading versioning by two processes concurrently can fail badly now. So don't parallelize your database setup ;-).

Happy hacking!

Christian

On 10/12/24 19:38, Daniel Golle wrote:
Hi!

I've been playing with recent GNUnet releases and noticed that GNUnet
now requirs PostgreSQL super user privileges.
This is problematic and GNUnet should be able to run with only a more
limited set of PostgreSQL permissions.

The reason for that new requirement is
LOCK TABLE pg_catalog.pg_namespace;
being done in src/lib/pq/versioning.sql

The stackoverflow link provided in the comment above suggests that
locking internal tables is generally not a good idea, and that
transactions should rather be used instead.
Did you consider using transactions? Or is there a good reason not to?


Cheers


Daniel




reply via email to

[Prev in Thread] Current Thread [Next in Thread]