| From: | Nico Heller <nico(dot)heller(at)posteo(dot)de> |
|---|---|
| To: | Greg Sabino Mullane <htamfids(at)gmail(dot)com> |
| Cc: | pgsql-general(at)postgresql(dot)org |
| Subject: | Re: Guarantee order of batched pg_advisory_xact_lock |
| Date: | 2026-02-18 21:19:36 |
| Message-ID: | 0b0c6412-9191-4804-8df7-fc9421ef245d@posteo.de |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
On 2/17/26 15:55, Greg Sabino Mullane wrote:
> On Mon, Feb 16, 2026 at 12:45 PM Nico Heller <nico(dot)heller(at)posteo(dot)de>
> wrote:
>
> Does anyone have any idea what the root cause of my issue is? I
> appreciate any insight.
> As I said, hash collisions can be rules out, sadly.
>
>
> Well, you could set log_statement to 'all' for a bit to see *exactly*
> what each of the deadlocking processes are doing. Alternatively,
> perhaps you can write a hashextendedkey() function that outputs
> arguments and results to a log and/or a table.
I will give that a shot, thank you
>
> keysToLock is a text[] parameter which is pre-sorted in our
> application
>
>
> Would not hurt to triple-check this part as well. Could show us the
> app code? Maybe put in some sort of global assert in the app to verify
> that things are indeed sorted as you think they are.
I am 100% sure this is the case, as the code base isn't huge and we have
central component which is *always* used to acquire advisory locks.
It looks as follows, in pseudo Kotlin code:
class LockingRepository(val sqlClient: SqlClient) {
@Transactional(propagation = MANDATORY) // enforces a transaction
is already active, using pg_advisory_xact_lock is senseless otherwise
fun acquireLocks(keys: List<String>) =
sqlClient.query(<QUERY_HERE>).param(:keys, sort(keys)).execute()
private fun sort(keys: List<String>) = keys.sort() // as I said,
it's sorted in some arbitrary way
}
>
> Cheers,
> Greg
>
> --
> Crunchy Data - https://www.crunchydata.com
> Enterprise Postgres Software Products & Tech Support
>
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Michael Paquier | 2026-02-19 04:11:43 | Re: Bug: PG 14 recovery failure |
| Previous Message | Linus Heckemann | 2026-02-18 18:02:10 | Re: Can we get sha* function over text, that could be used in index? |