dbwrap_check_lock_order ctdb oops

Richard Sharpe realrichardsharpe at gmail.com
Sun Jul 17 22:39:12 UTC 2016


On Thu, Jul 14, 2016 at 5:55 AM, Michael Adam <obnox at samba.org> wrote:
> Hi Steve,
>
> this is exactly the lock oder issue that I pointed out
> a few days ago and that is discussed in another thread.

Did you mean 'lock odor?' I know that sometimes they can smell foul.

> 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
>>



-- 
Regards,
Richard Sharpe
(何以解憂?唯有杜康。--曹操)



More information about the samba-technical mailing list