Jan Zelený <jzeleny(a)redhat.com> writes:
> > As you described it, it looks like issue similar to what
Stephen found
> > earlier and is now fixed. It probably isn't caused by the size of
> > groups but rather membership structure. Could you be more specific how
> > the structure is organized? Do you use rfc2307 or rfc2307bis? If the
> > latter is the case, how deep your membership structure goes and how
> > does it approximately look like?
>
> This is rfc2307.
There must be something else going on. I tested 2307 on a group with ~1000
users and I found no problem.
Could you provide me a backtrace of the place where the process hangs? Any
other information you might have will be useful as well.
I don't have a backtrace, since I compiled this as an rpm. However, an
strace of sssd_be hopefully holds a clue or two:
... lots of uninteresing bits ...
24469 fcntl(20, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=48, len=1}) = 0
24469 fcntl(20, F_SETLKW, {type=F_UNLCK, whence=SEEK_SET, start=48, len=1}) = 0
24469 fcntl(20, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=48, len=1}) = 0
24469 fcntl(20, F_SETLKW, {type=F_UNLCK, whence=SEEK_SET, start=48, len=1}) = 0
24469 fcntl(20, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=48, len=1}) = 0
24469 fcntl(20, F_SETLKW, {type=F_UNLCK, whence=SEEK_SET, start=48, len=1}) = 0
24469 fcntl(20, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=48, len=1}) = 0
24469 fcntl(20, F_SETLKW, {type=F_UNLCK, whence=SEEK_SET, start=48, len=1}) = 0
24469 brk(0x3f70000) = 0x3f70000
24469 brk(0x3fcc000) = 0x3fcc000
24469 brk(0x4192000) = 0x4192000
24469 brk(0x43ca000) = 0x43ca000
24469 mmap(NULL, 3641344, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f81a7aed000
24469 mremap(0x7f81a7aed000, 3641344, 4550656, MREMAP_MAYMOVE) = 0x7f81a7696000
24469 brk(0x43eb000) = 0x43eb000
24469 brk(0x440c000) = 0x440c000
24469 brk(0x442d000) = 0x442d000
24469 brk(0x444e000) = 0x444e000
24469 brk(0x446f000) = 0x446f000
24469 brk(0x4490000) = 0x4490000
24469 brk(0x44b1000) = 0x44b1000
24469 brk(0x44d2000) = 0x44d2000
24469 brk(0x44f3000) = 0x44f3000
24469 brk(0x4514000) = 0x4514000
24469 brk(0x4629000) = 0x4629000
24469 fcntl(20, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=48, len=1}) = 0
24469 fcntl(20, F_SETLKW, {type=F_UNLCK, whence=SEEK_SET, start=48, len=1}) = 0
24469 brk(0x4731000) = 0x4731000
24469 munmap(0x7f81a7e66000, 11153408) = 0
24469 brk(0x4752000) = 0x4752000
24469 brk(0x4778000) = 0x4778000
24469 brk(0x4799000) = 0x4799000
24469 brk(0x47ba000) = 0x47ba000
24469 brk(0x47db000) = 0x47db000
24469 brk(0x47fc000) = 0x47fc000
24469 brk(0x481d000) = 0x481d000
24469 brk(0x483f000) = 0x483f000
24469 brk(0x4861000) = 0x4861000
24469 brk(0x4884000) = 0x4884000
24469 brk(0x48a6000) = 0x48a6000
24469 brk(0x48c9000) = 0x48c9000
24469 brk(0x48ea000) = 0x48ea000
24469 brk(0x490b000) = 0x490b000
24469 brk(0x492c000) = 0x492c000
24469 brk(0x494d000) = 0x494d000
24469 brk(0x496e000) = 0x496e000
24469 brk(0x498f000) = 0x498f000
24469 brk(0x49b1000) = 0x49b1000
24469 brk(0x49d3000) = 0x49d3000
24469 brk(0x49f6000) = 0x49f6000
24469 mmap(NULL, 13942784, PROT_READ|PROT_WRITE, MAP_SHARED, 20, 0) = 0x7f81a7bbd000
24469 fcntl(20, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=48, len=1}) = 0
24469 fcntl(20, F_SETLKW, {type=F_UNLCK, whence=SEEK_SET, start=48, len=1}) = 0
24469 fcntl(20, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=48, len=1}) = 0
24469 fcntl(20, F_SETLKW, {type=F_UNLCK, whence=SEEK_SET, start=48, len=1}) = 0
24469 open("/dev/tty", O_RDWR|O_NOCTTY|O_NONBLOCK) = -1 ENXIO (No such device
or address)
24469 writev(2, [{"*** glibc detected *** ", 23},
{"/usr/libexec/sssd/sssd_be", 25}, {": ", 2}, {"corrupted
double-linked list", 28}, {": 0x", 4}, {"00000000048d98f0", 16},
{" ***\n", 5}], 7) = 103
24469 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f81af93d000
24469 open("/etc/ld.so.cache", O_RDONLY) = 25
24469 fstat(25, {st_mode=S_IFREG|0644, st_size=114674, ...}) = 0
24469 mmap(NULL, 114674, PROT_READ, MAP_PRIVATE, 25, 0) = 0x7f81a8b40000
24469 close(25) = 0
24469 open("/lib64/libgcc_s.so.1", O_RDONLY) = 25
24469 read(25,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20)\300\220;\0\0\0"..., 832)
= 832
24469 futex(0x3b8a78ae80, FUTEX_WAIT_PRIVATE, 2, NULL
.... and here it hangs ...
The "corrupted double-linked list" looks interesting...
PS. I forgot to mention that I'm using sssd 1.5.12 + memberof patch on
rhel6 x86_64, since it required the least amount of effort to compile
and install.
Regards,
--
Trond H. Amundsen <t.h.amundsen(a)usit.uio.no>
Center for Information Technology Services, University of Oslo