9.0.3 SIGFAULT on FreeBSD with dtrace
От | Luca Ferrari |
---|---|
Тема | 9.0.3 SIGFAULT on FreeBSD with dtrace |
Дата | |
Msg-id | 201103301513.13200.fluca1978@infinito.it обсуждение исходный текст |
Ответы |
Re: 9.0.3 SIGFAULT on FreeBSD with dtrace
|
Список | pgsql-hackers |
HI all, I'm trying to compile PostgreSQL 9.0.3 on FreeBSD 8.1-stable, and I can make it working if I compile without dtrace. However when I compile with --enable- dtrace I'm unable to use the cluster and even initdb. In particular initdb claims that: fgets failure: No such file or directory The program "postgres" is needed by initdb but was not found in the same directory as "/usr/local/pgsql/bin/initdb". Check your installation but digging a little I found that the problem is when a pipe to postgres -V process is created, since the latter goes in SIGFAULT. The following is the truss of the postgres command: __sysctl(0xbfbfe744,0x2,0xbfbfe74c,0xbfbfe750,0x0,0x0) = 0 (0x0) mmap(0x0,336,PROT_READ|PROT_WRITE,MAP_ANON,-1,0x0) = 675897344 (0x28496000) munmap(0x28496000,336) = 0 (0x0) __sysctl(0xbfbfe7a8,0x2,0x2848ce3c,0xbfbfe7b0,0x0,0x0) = 0 (0x0) mmap(0x0,32768,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 675897344 (0x28496000) issetugid(0x28485a47,0xbfbfe870,0x104,0x0,0x0,0x0) = 0 (0x0) open("/etc/libmap.conf",O_RDONLY,0666) ERR#2 'No such file or directory' access("/usr/local/pgsql/lib/libm.so.5",0) ERR#2 'No such file or directory' open("/var/run/ld-elf.so.hints",O_RDONLY,00) = 2 (0x2) read(2,"Ehnt\^A\0\0\0\M^@\0\0\0-\0\0\0\0"...,128) = 128 (0x80) lseek(2,0x80,SEEK_SET) = 128 (0x80) read(2,"/lib:/usr/lib:/usr/lib/compat:/u"...,45) = 45 (0x2d) close(2) = 0 (0x0) access("/lib/libm.so.5",0) = 0 (0x0) open("/lib/libm.so.5",O_RDONLY,00) = 2 (0x2) fstat(2,{ mode=-r--r--r-- ,inode=1813507,size=146183,blksize=16384 }) = 0 (0x0) pread(0x2,0x2848bd80,0x1000,0x0,0x0,0x0) = 4096 (0x1000) mmap(0x0,106496,PROT_NONE,MAP_PRIVATE|MAP_ANON|MAP_NOCORE,-1,0x0) = 675930112 (0x2849e000) mmap(0x2849e000,102400,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED| MAP_NOCORE,2,0x0) = 675930112 (0x2849e000) mmap(0x284b7000,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED,2,0x18000) = 676032512 (0x284b7000) close(2) = 0 (0x0) access("/usr/local/pgsql/lib/libc.so.7",0) ERR#2 'No such file or directory' access("/lib/libc.so.7",0) = 0 (0x0) open("/lib/libc.so.7",O_RDONLY,027757763634) = 2 (0x2) fstat(2,{ mode=-r--r--r-- ,inode=1813528,size=1346561,blksize=16384 }) = 0 (0x0) pread(0x2,0x2848bd80,0x1000,0x0,0x0,0x0) = 4096 (0x1000) mmap(0x0,1155072,PROT_NONE,MAP_PRIVATE|MAP_ANON|MAP_NOCORE,-1,0x0) = 676036608 (0x284b8000) mmap(0x284b8000,1036288,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED| MAP_NOCORE,2,0x0) = 676036608 (0x284b8000) mmap(0x285b5000,24576,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED,2,0xfd000) = 677072896 (0x285b5000) mprotect(0x285bb000,94208,PROT_READ|PROT_WRITE) = 0 (0x0) close(2) = 0 (0x0) sysarch(0xa,0xbfbfe810,0x2845c39b,0x2848b2f8,0x2846ef09,0x2848b2f8) = 0 (0x0) mmap(0x0,48744,PROT_READ|PROT_WRITE,MAP_ANON,-1,0x0) = 677191680 (0x285d2000) munmap(0x285d2000,48744) = 0 (0x0) mmap(0x0,2072,PROT_READ|PROT_WRITE,MAP_ANON,-1,0x0) = 677191680 (0x285d2000) munmap(0x285d2000,2072) = 0 (0x0) mmap(0x0,21904,PROT_READ|PROT_WRITE,MAP_ANON,-1,0x0) = 677191680 (0x285d2000) munmap(0x285d2000,21904) = 0 (0x0) sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM| SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ| SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0) sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0) __sysctl(0xbfbfe7c4,0x2,0x8460670,0xbfbfe7cc,0x0,0x0) = 0 (0x0) sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM| SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ| SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0) sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0) sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM| SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ| SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0) sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0) SIGNAL 11 (SIGSEGV) process exit, rval = 0 and this is the output of ldd: /usr/local/pgsql/bin/postgres: libm.so.5 => /lib/libm.so.5 (0x2849e000) libc.so.7 => /lib/libc.so.7 (0x284b8000) I checked that dtrace -l gives me output, so it seems to work. Am I doing something wrong? Thanks, Luca
В списке pgsql-hackers по дате отправления: