[pulseaudio-discuss] getgroups check freezes configuration

Ozgur hinoglu at gmail.com
Thu Sep 9 16:36:04 PDT 2010


Hi,

most probably this might have nothing to do with pulseaudio but compiling pulseaudio is 
the first time i've ever had this problem. checking whether getgroups works freezes compilation 
and cpu usage hits to 100%. I'm using linux 2.6.25.9 gcc 4.3.2. i've tried older versions of pulseaudio,
still getgroups check causes compilation to freeze, cpu hits 100%.

I've disabled configure:14517 where script checks type of the array argument to getgroups,
for it was freezeing there first, and set array type to gid_t, then tried withsetting it to
int. both ended up freezing at configure:14640 where it checks whether getgroups works.

below is the conftest.c for getgroups:14640 :

/* confdefs.h */
#define PACKAGE_NAME "pulseaudio"
#define PACKAGE_TARNAME "pulseaudio"
#define PACKAGE_VERSION "0.9.21"
#define PACKAGE_STRING "pulseaudio 0.9.21"
#define PACKAGE_BUGREPORT "mzchyfrnhqvb (at) 0pointer (dot) net"
#define PACKAGE_URL ""
#define PACKAGE "pulseaudio"
#define VERSION "0.9.21"
#define CANONICAL_HOST "i686-pc-linux-gnu"
#define STDC_HEADERS 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRING_H 1
#define HAVE_MEMORY_H 1
#define HAVE_STRINGS_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_STDINT_H 1
#define HAVE_UNISTD_H 1
#define __EXTENSIONS__ 1
#define _ALL_SOURCE 1
#define _GNU_SOURCE 1
#define _POSIX_PTHREAD_SEMANTICS 1
#define _TANDEM_SOURCE 1
#define SUPPORT_TLS___THREAD 1
#define HAVE_STD_BOOL 1
#define HAVE_DLFCN_H 1
#define LT_OBJDIR ".libs/"
#define STDC_HEADERS 1
#define HAVE_ARPA_INET_H 1
#define HAVE_GLOB_H 1
#define HAVE_GRP_H 1
#define HAVE_NETDB_H 1
#define HAVE_NETINET_IN_H 1
#define HAVE_NETINET_IN_SYSTM_H 1
#define HAVE_NETINET_TCP_H 1
#define HAVE_POLL_H 1
#define HAVE_PWD_H 1
#define HAVE_SCHED_H 1
#define HAVE_SYS_MMAN_H 1
#define HAVE_SYS_RESOURCE_H 1
#define HAVE_SYS_SELECT_H 1
#define HAVE_SYS_SOCKET_H 1
#define HAVE_SYS_WAIT_H 1
#define HAVE_SYS_UIO_H 1
#define HAVE_SYSLOG_H 1
#define HAVE_DLFCN_H 1
#define HAVE_LINUX_SOCKIOS_H 1
#define HAVE_SYS_PRCTL_H 1
#define HAVE_SYS_IOCTL_H 1
#define HAVE_BYTESWAP_H 1
#define HAVE_SYS_SYSCALL_H 1
#define HAVE_EXECINFO_H 1
#define HAVE_VALGRIND_MEMCHECK_H 1
#define HAVE_NETINET_IP_H 1
#define HAVE_REGEX_H 1
#define HAVE_SYS_UN_H 1
#define HAVE_LINUX_INPUT_H 1
#define HAVE_SSIZE_T 1
#define HAVE_DECL_ENVIRON 1
#define HAVE_SIGXCPU 1
#define HAVE_PTHREAD 1
#define HAVE_GETOPT_LONG 1
#define HAVE_LRINTF 1
#define HAVE_STRTOF 1
#define HAVE_CHMOD 1
#define HAVE_CHOWN 1
#define HAVE_CLOCK_GETTIME 1
#define HAVE_GETADDRINFO 1
#define HAVE_GETGRGID_R 1
#define HAVE_GETGRNAM_R 1
#define HAVE_GETPWNAM_R 1
#define HAVE_GETPWUID_R 1
#define HAVE_GETTIMEOFDAY 1
#define HAVE_GETUID 1
#define HAVE_INET_NTOP 1
#define HAVE_INET_PTON 1
#define HAVE_MLOCK 1
#define HAVE_NANOSLEEP 1
#define HAVE_PIPE 1
#define HAVE_POSIX_FADVISE 1
#define HAVE_POSIX_MADVISE 1
#define HAVE_POSIX_MEMALIGN 1
#define HAVE_SETPGID 1
#define HAVE_SETSID 1
#define HAVE_SHM_OPEN 1
#define HAVE_SIGACTION 1
#define HAVE_SLEEP 1
#define HAVE_SYSCONF 1
#define HAVE_PTHREAD_SETAFFINITY_NP 1
#define HAVE_READLINK 1
#define HAVE_CTIME_R 1
#define HAVE_USLEEP 1
#define HAVE_STRERROR_R 1
#define HAVE_LSTAT 1
#define HAVE_SETRESUID 1
#define HAVE_SETRESGID 1
#define HAVE_SETREUID 1
#define HAVE_SETREGID 1
#define HAVE_SETEUID 1
#define HAVE_SETEGID 1
#define HAVE_PPOLL 1
#define HAVE_STRSIGNAL 1
#define HAVE_STRTOF_L 1
#define HAVE_OPEN64 1
#define HAVE_FORK 1
#define HAVE_VFORK 1
#define HAVE_WORKING_VFORK 1
#define HAVE_WORKING_FORK 1
#define GETGROUPS_T int
/* end confdefs.h.  */
#include <stdio.h>
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_SYS_STAT_H
# include <sys/stat.h>
#endif
#ifdef STDC_HEADERS
# include <stdlib.h>
# include <stddef.h>
#else
# ifdef HAVE_STDLIB_H
#  include <stdlib.h>
# endif
#endif
#ifdef HAVE_STRING_H
# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
#  include <memory.h>
# endif
# include <string.h>
#endif
#ifdef HAVE_STRINGS_H
# include <strings.h>
#endif
#ifdef HAVE_INTTYPES_H
# include <inttypes.h>
#endif
#ifdef HAVE_STDINT_H
# include <stdint.h>
#endif
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
int
main ()
{
/* On Ultrix 4.3, getgroups (0, 0) always fails.  */
       return getgroups (0, 0) == -1;
  ;
  return 0;
}



and strace output of conftest.c:


execve("./conftest", ["conftest"], [/* 60 vars */]) = 0
brk(0)                                  = 0x804a000
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4001d000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=133752, ...}) = 0
mmap2(NULL, 133752, PROT_READ, MAP_PRIVATE, 3, 0) = 0x4001e000
close(3)                                = 0
open("/lib/librt.so.1", O_RDONLY)       = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\35\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=148465, ...}) = 0
mmap2(NULL, 33356, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x4003f000
mmap2(0x40046000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6) = 0x40046000
close(3)                                = 0
open("/lib/libdl.so.2", O_RDONLY)       = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360\v\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=96622, ...}) = 0
mmap2(NULL, 12400, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x40048000
mmap2(0x4004a000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0x4004a000
close(3)                                = 0
open("/lib/libm.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\3203\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=490848, ...}) = 0
mmap2(NULL, 147584, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x4004c000
mmap2(0x4006f000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x22) = 0x4006f000
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`Y\1\000"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=5734649, ...}) = 0
mmap2(NULL, 1177212, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x40071000
mmap2(0x4018a000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x118) = 0x4018a000
mmap2(0x4018e000, 9852, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4018e000
close(3)                                = 0
open("/lib/libpthread.so.0", O_RDONLY)  = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0K\0\000"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=537197, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40191000
mmap2(NULL, 74204, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x40192000
mmap2(0x401a1000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf) = 0x401a1000
mmap2(0x401a3000, 4572, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x401a3000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x401a5000
set_thread_area({entry_number:-1 -> 6, base_addr:0x401a56b0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
open("/dev/urandom", O_RDONLY)          = 3
read(3, "\354\250@\316", 4)             = 4
close(3)                                = 0
mprotect(0x401a1000, 4096, PROT_READ)   = 0
mprotect(0x4018a000, 12288, PROT_READ)  = 0
mprotect(0x4006f000, 4096, PROT_READ)   = 0
mprotect(0x4004a000, 4096, PROT_READ)   = 0
mprotect(0x40046000, 4096, PROT_READ)   = 0
mprotect(0x4001a000, 4096, PROT_READ)   = 0
munmap(0x4001e000, 133752)              = 0
set_tid_address(0x401a56f8)             = 30652
rt_sigaction(SIGRTMIN, {0x40196600, [], SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x40196680, [], SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = 0
_sysctl({{CTL_KERN, KERN_VERSION}, 2, 0xbfd5cffc, 38, (nil), 0}) = 0

stops here and no output is provided then, cpu hits 100%

any suggestions?

thanks



 
-- 
Ozgur <hinoglu at gmail.com>



More information about the pulseaudio-discuss mailing list