Re: SIGSEGV in GrantLockLocal() - Mailing list pgsql-hackers

From Heikki Linnakangas
Subject Re: SIGSEGV in GrantLockLocal()
Date
Msg-id e836b6c1-99d6-4d8f-b5d9-24aba41621c8@iki.fi
Whole thread Raw
In response to SIGSEGV in GrantLockLocal()  (Richard Guo <guofenglinux@gmail.com>)
Responses Re: SIGSEGV in GrantLockLocal()
List pgsql-hackers
On 18/12/2024 08:17, Richard Guo wrote:
> Recently, I've encountered a core dump several times on master, with a
> backtrace like the one below.  This one happened on 0f23dedc9.  I was
> running some fuzz testing and had started around 20 sessions
> concurrently.
> 
> (gdb) bt
> #0  in GrantLockLocal at lock.c:1758
> #1  in GrantAwaitedLock at lock.c:1840
> #2  in LockErrorCleanup at proc.c:809
> #3  in AbortTransaction at xact.c:2846
> #4  in AbortCurrentTransactionInternal at xact.c:3520
> #5  in AbortCurrentTransaction at xact.c:3449
> #6  in PostgresMain at postgres.c:4535
> #7  in BackendMain at backend_startup.c:107
> #8  in postmaster_child_launch at launch_backend.c:274
> #9  in BackendStartup at postmaster.c:3391
> #10 in ServerLoop at postmaster.c:1678
> #11 in PostmasterMain at postmaster.c:1376
> #12 in main at main.c:224
> 
> It seems that the lock request is not granted as expected, since
> locallock->lockOwners is a NULL pointer.
> 
> (gdb) p locallock->lockOwners
> $4 = (LOCALLOCKOWNER *) 0x0
> (gdb) p locallock->numLockOwners
> $5 = 0
> (gdb) p locallock->maxLockOwners
> $6 = 8
> 
> Unfortunately, I don't have a reliable way to trigger this issue.  I'm
> wondering if anyone has any insights into what might be happening.

I don't know how that can happen, but I suspect commit 3c0fd64fec 
because it changed things in that area. If you can find a way to 
reproduce that even sporadically, that would be very helpful!

-- 
Heikki Linnakangas
Neon (https://neon.tech)




pgsql-hackers by date:

Previous
From: Bertrand Drouvot
Date:
Subject: Re: per backend I/O statistics
Next
From: Yuki Seino
Date:
Subject: Re: Add “FOR UPDATE NOWAIT” lock details to the log.