ok pls ignore.
i think this flag has to be used along with trace_locks = on flag.
now it works.
sorry for the noise.
/*
postgres=# show trace_lock_oidmin;
LOG: LockReleaseAll: lockmethod=1
LOG: LockReleaseAll done
trace_lock_oidmin
-------------------
16406
(1 row)
postgres=# show trace_locks;
LOG: LockReleaseAll: lockmethod=1
LOG: LockReleaseAll done
trace_locks
-------------
on
(1 row)
postgres=# select 't'::regclass::oid;
LOG: LockReleaseAll: lockmethod=1
LOG: LockReleaseAll done
oid
-------
16401
(1 row)
postgres=# drop table t;
LOG: LockReleaseAll: lockmethod=1
LOG: LockReleaseAll done
DROP TABLE
*/
On Mon, 14 Oct 2024 at 16:30, Vijaykumar Jain <vijaykumarjain.github@xxxxxxxxx> wrote:
I do not see logs for locks linked to attaching and detaching partitions if I use thetrace_lock_oidmin config set to oid below the table of concern, basically any locking on objects above the threshold oid do not log.from the doc:trace_lock_oidmin (integer)
If set, do not trace locks for tables below this OID (used to avoid output on system tables).
This parameter is only available if the LOCK_DEBUG macro was defined when PostgreSQL was compiledi compiled my postgres with LOCK_DEBUG macro/*postgres@ubuntu:/tmp$ pg_configBINDIR = /opt/postgresql/binDOCDIR = /opt/postgresql/share/docHTMLDIR = /opt/postgresql/share/docINCLUDEDIR = /opt/postgresql/includePKGINCLUDEDIR = /opt/postgresql/includeINCLUDEDIR-SERVER = /opt/postgresql/include/serverLIBDIR = /opt/postgresql/libPKGLIBDIR = /opt/postgresql/libLOCALEDIR = /opt/postgresql/share/localeMANDIR = /opt/postgresql/share/manSHAREDIR = /opt/postgresql/shareSYSCONFDIR = /opt/postgresql/etcPGXS = /opt/postgresql/lib/pgxs/src/makefiles/pgxs.mkCONFIGURE = '--prefix=/opt/postgresql' '--with-openssl' '--enable-debug' '--enable-profiling' '--enable-cassert' '--enable-tap-tests' 'CFLAGS=-ggdb -Og -g3 -fno-omit-frame-pointer -DLOCK_DEBUG -DBTREE_BUILD_STATS -DWAL_DEBUG 'CC = gccCPPFLAGS = -D_GNU_SOURCECFLAGS = -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -g -pg -DLINUX_PROFILE -ggdb -Og -g3 -fno-omit-frame-pointer -DLOCK_DEBUG -DBTREE_BUILD_STATS -DWAL_DEBUGCFLAGS_SL = -fPICLDFLAGS = -Wl,--as-needed -Wl,-rpath,'/opt/postgresql/lib',--enable-new-dtagsLDFLAGS_EX =LDFLAGS_SL =LIBS = -lpgcommon -lpgport -lssl -lcrypto -lz -lreadline -lmVERSION = PostgreSQL 18develpostgres@ubuntu:/tmp$ psqlpsql (18devel)Type "help" for help.postgres=# show client_min_messages;client_min_messages---------------------log(1 row)postgres=# show trace_lock_oidmin;trace_lock_oidmin-------------------16400(1 row)postgres=# select 't'::regclass::oid;oid-------16401(1 row)postgres=# select 't1'::regclass::oid;oid-------16404(1 row)postgres=# alter table t detach partition t1;ALTER TABLEpostgres=# alter table t attach partition t1 for values in (0);ALTER TABLE*/but if i map the trace_lock_table to the oid of one table, it logs locking fine./*postgres=# alter system set trace_lock_table = 16401;ALTER SYSTEMpostgres=# select pg_reload_conf();pg_reload_conf----------------t(1 row)postgres=# alter table t detach partition t1;LOG: LockAcquire: lock [5,16401] AccessExclusiveLockLOG: LockAcquire: new: lock(0x708b6d12ae78) id(5,16401,0,0,0,1) grantMask(0) req(0,0,0,0,0,0,0)=0 grant(0,0,0,0,0,0,0)=0 wait(0) type(AccessExclusiveLock)LOG: LockAcquire: new: proclock(0x708b6d1da680) lock(0x708b6d12ae78) method(1) proc(0x708b6d4b8250) hold(0)LOG: LockCheckConflicts: no conflict: proclock(0x708b6d1da680) lock(0x708b6d12ae78) method(1) proc(0x708b6d4b8250) hold(0)LOG: GrantLock: lock(0x708b6d12ae78) id(5,16401,0,0,0,1) grantMask(100) req(0,0,0,0,0,0,0)=1 grant(0,0,0,0,0,0,0)=1 wait(0) type(AccessExclusiveLock)LOG: LockAcquire: lock [5,16401] AccessExclusiveLockLOG: LockReleaseAll: proclock(0x708b6d1da680) lock(0x708b6d12ae78) method(1) proc(0x708b6d4b8250) hold(100)LOG: LockReleaseAll: lock(0x708b6d12ae78) id(5,16401,0,0,0,1) grantMask(100) req(0,0,0,0,0,0,0)=1 grant(0,0,0,0,0,0,0)=1 wait(0) type(INVALID)LOG: UnGrantLock: updated: lock(0x708b6d12ae78) id(5,16401,0,0,0,1) grantMask(0) req(0,0,0,0,0,0,0)=0 grant(0,0,0,0,0,0,0)=0 wait(0) type(AccessExclusiveLock)LOG: UnGrantLock: updated: proclock(0x708b6d1da680) lock(0x708b6d12ae78) method(1) proc(0x708b6d4b8250) hold(0)LOG: LockReleaseAll: updated: lock(0x708b6d12ae78) id(5,16401,0,0,0,1) grantMask(0) req(0,0,0,0,0,0,0)=0 grant(0,0,0,0,0,0,0)=0 wait(0) type(INVALID)LOG: CleanUpLock: deleting: proclock(0x708b6d1da680) lock(0x708b6d12ae78) method(1) proc(0x708b6d4b8250) hold(0)LOG: CleanUpLock: deleting: lock(0x708b6d12ae78) id(5,16401,0,0,0,1) grantMask(0) req(0,0,0,0,0,0,0)=0 grant(0,0,0,0,0,0,0)=0 wait(0) type(INVALID)ALTER TABLE*/--