[SSSD] [PATCH] DEBUG: Fix crash after fallback from journal log

Stephen Gallagher sgallagh at redhat.com
Thu Feb 20 16:15:19 UTC 2014


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 02/20/2014 11:00 AM, Lukas Slebodnik wrote:
> ehlo,
> 
> It was not easy to reproduce this crash in the find-uid-test (log
> attached)
> 
> Here is a backtrace: #0  0x00007fbeaf7850cf in
> _IO_vfprintf_internal (s=<optimized out>, format=<optimized out>,
> ap=<optimized out>) at vfprintf.c:1635 #1  0x00007fbeaf788b01 in
> buffered_vfprintf (s=s at entry=0x7fbeafaf51c0 <_IO_2_1_stderr_>,
> format=format at entry=0x7fbeb119c1a8 "Proc file [%s] is not available
> anymore, continuing.\n", args=args at entry=0x7fff2d20b668) at
> vfprintf.c:2328 #2  0x00007fbeaf783ffe in _IO_vfprintf_internal
> (s=s at entry=0x7fbeafaf51c0 <_IO_2_1_stderr_>, format=0x7fbeb119c1a8
> "Proc file [%s] is not available anymore, continuing.\n",
> ap=0x7fff2d20b668) at vfprintf.c:1289 #3  0x00007fbeaf840a06 in
> ___vfprintf_chk (fp=0x7fbeafaf51c0 <_IO_2_1_stderr_>, flag=1,
> format=<optimized out>, ap=<optimized out>) at vfprintf_chk.c:33 #4
> 0x00007fbeb0d7461a in debug_fn (file=file at entry=0x7fbeb119bfcf
> "src/util/find_uid.c", line=line at entry=90,
> function=function at entry=0x7fbeb119c270 <__FUNCTION__.8600>
> "get_uid_from_pid", level=level at entry=4096,
> format=format at entry=0x7fbeb119c1a8 "Proc file [%s] is not available
> anymore, continuing.\n") at src/util/debug.c:257 #5
> 0x00007fbeb119ae74 in get_uid_from_pid (pid=<optimized out>,
> uid=uid at entry=0x7fff2d20c9a4) at src/util/find_uid.c:88 #6
> 0x00007fbeb119b381 in get_active_uid_linux (table=table at entry=0x0,
> search_uid=search_uid at entry=4294967292) at src/util/find_uid.c:236 
> #7  0x00007fbeb119b69f in check_if_uid_is_active
> (uid=uid at entry=4294967292, result=result at entry=0x7fff2d20ca67) at
> src/util/find_uid.c:333 #8  0x00007fbeb119a9ab in
> test_check_if_uid_is_active_fail (_i=<optimized out>) at
> src/tests/find_uid-tests.c:58 #9  0x00007fbeb054887e in
> tcase_run_tfun_fork (i=0, tfun=0x7fbeb14a0300, tc=0x7fbeb14a00a0,
> sr=0x7fbeb14a0390) at check_run.c:396 #10
> srunner_iterate_tcase_tfuns (tc=0x7fbeb14a00a0, sr=0x7fbeb14a0390)
> at check_run.c:181 #11 srunner_run_tcase (tc=0x7fbeb14a00a0,
> sr=0x7fbeb14a0390) at check_run.c:313 #12 srunner_iterate_suites
> (print_mode=CK_SILENT, tcname=0x0, sname=0x0, sr=0x7fbeb14a0390) at
> check_run.c:156 #13 srunner_run (sr=sr at entry=0x7fbeb14a0390,
> sname=sname at entry=0x0, tcname=tcname at entry=0x0,
> print_mode=print_mode at entry=CK_ENV) at check_run.c:618 #14
> 0x00007fbeb054892b in srunner_run_all (sr=sr at entry=0x7fbeb14a0390,
> print_mode=print_mode at entry=CK_ENV) at check_run.c:587 #15
> 0x00007fbeb119a685 in main () at src/tests/find_uid-tests.c:125
> 
> 
> (gdb) l src/util/find_uid.c:88 83 84          fd = open(path,
> O_RDONLY); 85          if (fd == -1) { 86              error =
> errno; 87              if (error == ENOENT) { 88
> DEBUG(SSSDBG_TRACE_LIBS, 89                        "Proc file [%s]
> is not available anymore, continuing.\n", 90
> path); 91                  return EOK; 92              }
> 
> As you can see in frame 5, it was caused by DEBUG macro. It was
> strange because variable path was declared on stack "char
> path[PATHLEN];"
> 
> But it looks like va_list should not be used twice. 
> http://en.cppreference.com/w/cpp/utility/variadic/va_copy
> 
> It is really difficult to reproduce it. I was not able to reproduce
> problem on fedora 19 or rawhide 
> http://koji.fedoraproject.org/koji/taskinfo?taskID=6551367 
> http://koji.fedoraproject.org/koji/taskinfo?taskID=6551377
> 
> and only sometimes on fedora 20 x86_64 
> http://koji.fedoraproject.org/koji/taskinfo?taskID=6551997 --works 
> http://koji.fedoraproject.org/koji/taskinfo?taskID=6551349
> --doesn't work
> 
> Patch is attached.
> 

Great catch! Looks correct to me.

Ack


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iEYEARECAAYFAlMGKhcACgkQeiVVYja6o6P3VwCfcSgV8k8xL2E4T9ehK25C3J0j
YUUAoLDyMq5NUHn+C3fQBHcJgnO4h1ne
=4d+t
-----END PGP SIGNATURE-----



More information about the sssd-devel mailing list