Apologies if this has already been reported.

On x86, xl create no longer works since 38cd0664a6bf.  xl create gets
wedges attempting to acquire the domain-userdata-lock a second time.

strace output:

open("/var/lib/xen/userdata-l.0.00000000-0000-0000-0000-000000000000.domain-userdata-lock",
O_RDWR|O_CREAT, 0666) = 9
fcntl(9, F_GETFD)                       = 0
fcntl(9, F_SETFD, FD_CLOEXEC)           = 0
flock(9, LOCK_EX)                       = 0
fstat(9, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
stat("/var/lib/xen/userdata-l.0.00000000-0000-0000-0000-000000000000.domain-userdata-lock",
{st_mode=S_IFREG|0644, st_size=0, ...}) = 0
ioctl(5, _IOC(0, 0x50, 0x00, 0x30), 0x7ffe5c183870) = 0
ioctl(5, _IOC(0, 0x50, 0x00, 0x30), 0x7ffe5c183610) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_ANONYMOUS|MAP_LOCKED, -1, 0) = 0x7fbfb6014000
madvise(0x7fbfb6014000, 8192, MADV_DONTFORK) = 0
ioctl(5, _IOC(0, 0x50, 0x00, 0x30), 0x7ffe5c1825f0) = -1 ENOSYS
(Function not implemented)
madvise(0x7fbfb6014000, 8192, MADV_DOFORK) = 0
munmap(0x7fbfb6014000, 8192)            = 0
open("/var/lib/xen/userdata-l.0.00000000-0000-0000-0000-000000000000.domain-userdata-lock",
O_RDWR|O_CREAT, 0666) = 10
fcntl(10, F_GETFD)                      = 0
fcntl(10, F_SETFD, FD_CLOEXEC)          = 0
flock(10, LOCK_EX

Stack from the first lock acquisition:

Breakpoint 1, libxl__lock_domain_userdata (gc=0x7fffffffd910, domid=0)
at libxl_internal.c:404
404            fd = open(lockfile, O_RDWR|O_CREAT, 0666);
(gdb) bt
#0  libxl__lock_domain_userdata (gc=0x7fffffffd910, domid=0) at
libxl_internal.c:404
#1  0x00007ffff7907696 in libxl_set_memory_target (ctx=0x639050,
domid=0, target_memkb=-8, relative=1,
    enforce=0) at libxl.c:4182
#2  0x0000000000411fa9 in freemem (domid=4294967295,
b_info=0x7fffffffe060) at xl_cmdimpl.c:2716
#3  0x0000000000412dd7 in create_domain (dom_info=0x7fffffffe4b0) at
xl_cmdimpl.c:2998
#4  0x000000000041a373 in main_create (argc=1, argv=0x7fffffffe658) at
xl_cmdimpl.c:5530
#5  0x0000000000408eda in main (argc=2, argv=0x7fffffffe650) at xl.c:364

Stack from the deadlock:

Breakpoint 1, libxl__lock_domain_userdata (gc=0x7fffffffd7b0, domid=0)
at libxl_internal.c:404
404            fd = open(lockfile, O_RDWR|O_CREAT, 0666);
(gdb) bt
#0  libxl__lock_domain_userdata (gc=0x7fffffffd7b0, domid=0) at
libxl_internal.c:404
#1  0x00007ffff790fa4a in libxl_retrieve_domain_configuration
(ctx=0x639050, domid=0, d_config=0x7fffffffda00)
    at libxl.c:6654
#2  0x00007ffff79076d4 in libxl_set_memory_target (ctx=0x639050,
domid=0, target_memkb=-8, relative=1,
    enforce=0) at libxl.c:4188
#3  0x0000000000411fa9 in freemem (domid=4294967295,
b_info=0x7fffffffe060) at xl_cmdimpl.c:2716
#4  0x0000000000412dd7 in create_domain (dom_info=0x7fffffffe4b0) at
xl_cmdimpl.c:2998
#5  0x000000000041a373 in main_create (argc=1, argv=0x7fffffffe658) at
xl_cmdimpl.c:5530
#6  0x0000000000408eda in main (argc=2, argv=0x7fffffffe650) at xl.c:364

- Kyle

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

Reply via email to