dbwrap_check_lock_order ctdb oops

Michael Adam obnox at samba.org
Thu Jul 14 12:55:05 UTC 2016


Hi Steve,

this is exactly the lock oder issue that I pointed out
a few days ago and that is discussed in another thread.

It is not fixed in master yet, and we are currently
discussing how to fix it propoerly.

The issue is that xattr.tdb and g_lock.tdb
have the same lock order, and the code
tries to do a ctdb transaction (which requires
a lock of g_lock.tdb, at order 2), when triggered
from a fetch_lock (already order 2) on xattr.tdb.

It seems we can not use vfs_xattr_tdb in a cluster
currently.

Cheers - Michael


On 2016-07-14 at 07:48 -0500, Steve French wrote:
> Noticed this ctdb oops on fairly recent 4.4 (this is 4.4-stable from
> about two to three weeks ago just before 4.4.5).   Any ideas whether
> this has been fixed in master or what the issue is?
> 
> Core was generated by `/usr/sbin/smbd'.
> Program terminated with signal 6, Aborted.
> #0  0x00007f47d00985f7 in raise () from /lib64/libc.so.6
> Missing separate debuginfos, use: debuginfo-install
> audit-libs-2.4.1-5.el7.x86_64 cyrus-sasl-lib-2.1.26-19.2.el7.x86_64
> glibc-2.17-106.el7_2.4.x86_64 keyutils-libs-1.5.8-3.el7.x86_64
> krb5-libs-1.13.2-10.el7.x86_64 libattr-2.4.46-12.el7.x86_64
> libbsd-0.6.0-3.el7.x86_64 libcap-2.22-8.el7.x86_64
> libcom_err-1.42.9-7.el7.x86_64 libgcc-4.8.5-4.el7.x86_64
> libselinux-2.2.2-6.el7.x86_64 liburcu0-0.8.7-1.el7.x86_64
> lttng-ust-2.6.2-1.el7.x86_64 nspr-4.10.8-2.el7_1.x86_64
> nss-3.19.1-18.el7.x86_64 nss-softokn-freebl-3.16.2.3-13.el7_1.x86_64
> nss-util-3.19.1-4.el7_1.x86_64 openldap-2.4.40-8.el7.x86_64
> pam-1.1.8-12.el7_1.1.x86_64 pcre-8.32-15.el7.x86_64
> popt-1.13-16.el7.x86_64 xz-libs-5.1.2-12alpha.el7.x86_64
> zlib-1.2.7-15.el7.x86_64
> (gdb) bt
> #0  0x00007f47d00985f7 in raise () from /lib64/libc.so.6
> #1  0x00007f47d0099ce8 in abort () from /lib64/libc.so.6
> #2  0x00007f47d15d8b9b in dump_core () at ../source3/lib/dumpcore.c:322
> #3  0x00007f47d15cbf97 in smb_panic_s3 (why=<optimized out>) at
> ../source3/lib/util.c:814
> #4  0x00007f47d3ec8adf in smb_panic (why=why at entry=0x7f47cdce95a1
> "invalid lock_order") at ../lib/util/fault.c:166
> #5  0x00007f47cdce5e5d in dbwrap_check_lock_order
> (mem_ctx=0x55b66768d740, db=0x55b667696d50) at
> ../lib/dbwrap/dbwrap.c:186
> #6  dbwrap_fetch_locked_internal (db=0x55b667696d50,
> mem_ctx=0x55b66768d740, key=..., db_fn=<optimized out>) at
> ../lib/dbwrap/dbwrap.c:216
> #7  0x00007f47cdce6088 in dbwrap_fetch_locked (db=<optimized out>,
> mem_ctx=<optimized out>, key=...) at ../lib/dbwrap/dbwrap.c:235
> #8  0x00007f47d15d32fc in g_lock_lock_send
> (mem_ctx=mem_ctx at entry=0x55b66768d740, ev=ev at entry=0x55b66768d7a0,
> ctx=ctx at entry=0x55b667695ed0, name=name at entry=0x55b6676857d0
> "transaction_db_0x8eaa29d6",
>     type=type at entry=G_LOCK_WRITE) at ../source3/lib/g_lock.c:221
> #9  0x00007f47d15d354d in g_lock_lock (ctx=0x55b667695ed0,
> name=0x55b6676857d0 "transaction_db_0x8eaa29d6",
> type=type at entry=G_LOCK_WRITE, timeout=...) at
> ../source3/lib/g_lock.c:331
> #10 0x00007f47d139f348 in db_ctdb_transaction_start (db=<optimized
> out>) at ../source3/lib/dbwrap/dbwrap_ctdb.c:334
> #11 0x00007f47d13a090d in db_ctdb_fetch_locked_persistent
> (ctx=0x55b667696590, mem_ctx=0x55b66768d400, key=...) at
> ../source3/lib/dbwrap/dbwrap_ctdb.c:528
> #12 0x00007f47cdce5df0 in dbwrap_fetch_locked_internal
> (db=db at entry=0x55b667693080, mem_ctx=mem_ctx at entry=0x55b66768d400,
> key=..., db_fn=<optimized out>) at ../lib/dbwrap/dbwrap.c:221
> #13 0x00007f47cdce6088 in dbwrap_fetch_locked
> (db=db at entry=0x55b667693080, mem_ctx=mem_ctx at entry=0x55b66768d400,
> key=...) at ../lib/dbwrap/dbwrap.c:235
> #14 0x00007f47b50f4637 in xattr_tdb_lock_attrs
> (mem_ctx=0x55b66768d400, db_ctx=db_ctx at entry=0x55b667693080,
> id=id at entry=0x7ffd08a0d700) at ../source3/lib/xattr_tdb.c:138
> #15 0x00007f47b50f52e6 in xattr_tdb_remove_all_attrs
> (db_ctx=0x55b667693080, id=0x7ffd08a0d700) at
> ../source3/lib/xattr_tdb.c:446
> #16 0x00007f47b52f9cc2 in xattr_tdb_unlink (handle=0x55b667696260,
> smb_fname=<optimized out>) at ../source3/modules/vfs_xattr_tdb.c:393
> 
> -- 
> Thanks,
> 
> Steve
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20160714/19db20ba/signature.sig>


More information about the samba-technical mailing list