It is not libpcp_pmda.so that is the problem.
It is libpcp_pmcd.so. It is clearly installed here
ls -l /var/lib/pcp/pmdas/pmcd/pmda_pmcd.so
-rw-r--r-- 1 root root 19696 2008-08-12 16:43
/var/lib/pcp/pmdas/pmcd/pmda_pmcd.so
but dlopen() tries everywhere BUT the right place!
kenj@bozo:~/src$ strace /usr/lib/pcp/bin/pmcd -f
execve("/usr/lib/pcp/bin/pmcd", ["/usr/lib/pcp/bin/pmcd", "-f"], [/* 36 vars
*/]) = 0
brk(0) = 0x805b000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0xb7f42000
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=63828, ...}) = 0
mmap2(NULL, 63828, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f32000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/usr/lib/libpcp.so.3", 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@a\0\000"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=201256, ...}) = 0
mmap2(NULL, 212860, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0xb7efe000
mmap2(0xb7f2f000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x30) = 0xb7f2f000
mmap2(0xb7f30000, 8060, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f30000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/sse2/cmov/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such
file or directory)
stat64("/lib/tls/i686/sse2/cmov", 0xbfa23ec4) = -1 ENOENT (No such file or
directory)
open("/lib/tls/i686/sse2/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such file
or directory)
stat64("/lib/tls/i686/sse2", 0xbfa23ec4) = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/cmov/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such file
or directory)
stat64("/lib/tls/i686/cmov", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
open("/lib/tls/i686/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat64("/lib/tls/i686", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
open("/lib/tls/sse2/cmov/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such file
or directory)
stat64("/lib/tls/sse2/cmov", 0xbfa23ec4) = -1 ENOENT (No such file or directory)
open("/lib/tls/sse2/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat64("/lib/tls/sse2", 0xbfa23ec4) = -1 ENOENT (No such file or directory)
open("/lib/tls/cmov/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat64("/lib/tls/cmov", 0xbfa23ec4) = -1 ENOENT (No such file or directory)
open("/lib/tls/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat64("/lib/tls", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
open("/lib/i686/sse2/cmov/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such file
or directory)
stat64("/lib/i686/sse2/cmov", 0xbfa23ec4) = -1 ENOENT (No such file or
directory)
open("/lib/i686/sse2/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat64("/lib/i686/sse2", 0xbfa23ec4) = -1 ENOENT (No such file or directory)
open("/lib/i686/cmov/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat64("/lib/i686/cmov", 0xbfa23ec4) = -1 ENOENT (No such file or directory)
open("/lib/i686/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat64("/lib/i686", 0xbfa23ec4) = -1 ENOENT (No such file or directory)
open("/lib/sse2/cmov/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat64("/lib/sse2/cmov", 0xbfa23ec4) = -1 ENOENT (No such file or directory)
open("/lib/sse2/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat64("/lib/sse2", 0xbfa23ec4) = -1 ENOENT (No such file or directory)
open("/lib/cmov/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat64("/lib/cmov", 0xbfa23ec4) = -1 ENOENT (No such file or directory)
open("/lib/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
open("/usr/lib/tls/i686/sse2/cmov/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No
such file or directory)
stat64("/usr/lib/tls/i686/sse2/cmov", 0xbfa23ec4) = -1 ENOENT (No such file or
directory)
open("/usr/lib/tls/i686/sse2/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such
file or directory)
stat64("/usr/lib/tls/i686/sse2", 0xbfa23ec4) = -1 ENOENT (No such file or
directory)
open("/usr/lib/tls/i686/cmov/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such
file or directory)
stat64("/usr/lib/tls/i686/cmov", 0xbfa23ec4) = -1 ENOENT (No such file or
directory)
open("/usr/lib/tls/i686/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat64("/usr/lib/tls/i686", 0xbfa23ec4) = -1 ENOENT (No such file or directory)
open("/usr/lib/tls/sse2/cmov/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such
file or directory)
stat64("/usr/lib/tls/sse2/cmov", 0xbfa23ec4) = -1 ENOENT (No such file or
directory)
open("/usr/lib/tls/sse2/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat64("/usr/lib/tls/sse2", 0xbfa23ec4) = -1 ENOENT (No such file or directory)
open("/usr/lib/tls/cmov/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat64("/usr/lib/tls/cmov", 0xbfa23ec4) = -1 ENOENT (No such file or directory)
open("/usr/lib/tls/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat64("/usr/lib/tls", 0xbfa23ec4) = -1 ENOENT (No such file or directory)
open("/usr/lib/i686/sse2/cmov/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such
file or directory)
stat64("/usr/lib/i686/sse2/cmov", 0xbfa23ec4) = -1 ENOENT (No such file or
directory)
open("/usr/lib/i686/sse2/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such file
or directory)
stat64("/usr/lib/i686/sse2", 0xbfa23ec4) = -1 ENOENT (No such file or directory)
open("/usr/lib/i686/cmov/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such file
or directory)
stat64("/usr/lib/i686/cmov", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
open("/usr/lib/i686/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat64("/usr/lib/i686", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
open("/usr/lib/sse2/cmov/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such file
or directory)
stat64("/usr/lib/sse2/cmov", 0xbfa23ec4) = -1 ENOENT (No such file or directory)
open("/usr/lib/sse2/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat64("/usr/lib/sse2", 0xbfa23ec4) = -1 ENOENT (No such file or directory)
open("/usr/lib/cmov/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat64("/usr/lib/cmov", 0xbfa23ec4) = -1 ENOENT (No such file or directory)
open("/usr/lib/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat64("/usr/lib", {st_mode=S_IFDIR|0755, st_size=69632, ...}) = 0
open("/lib/i486-linux-gnu/tls/i686/sse2/cmov/libpcp_pmcd.so", O_RDONLY) = -1
ENOENT (No such file or directory)
stat64("/lib/i486-linux-gnu/tls/i686/sse2/cmov", 0xbfa23ec4) = -1 ENOENT (No
such file or directory)
open("/lib/i486-linux-gnu/tls/i686/sse2/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT
(No such file or directory)
stat64("/lib/i486-linux-gnu/tls/i686/sse2", 0xbfa23ec4) = -1 ENOENT (No such
file or directory)
open("/lib/i486-linux-gnu/tls/i686/cmov/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT
(No such file or directory)
stat64("/lib/i486-linux-gnu/tls/i686/cmov", 0xbfa23ec4) = -1 ENOENT (No such
file or directory)
open("/lib/i486-linux-gnu/tls/i686/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No
such file or directory)
stat64("/lib/i486-linux-gnu/tls/i686", 0xbfa23ec4) = -1 ENOENT (No such file or
directory)
open("/lib/i486-linux-gnu/tls/sse2/cmov/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT
(No such file or directory)
stat64("/lib/i486-linux-gnu/tls/sse2/cmov", 0xbfa23ec4) = -1 ENOENT (No such
file or directory)
open("/lib/i486-linux-gnu/tls/sse2/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No
such file or directory)
stat64("/lib/i486-linux-gnu/tls/sse2", 0xbfa23ec4) = -1 ENOENT (No such file or
directory)
open("/lib/i486-linux-gnu/tls/cmov/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No
such file or directory)
stat64("/lib/i486-linux-gnu/tls/cmov", 0xbfa23ec4) = -1 ENOENT (No such file or
directory)
open("/lib/i486-linux-gnu/tls/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such
file or directory)
stat64("/lib/i486-linux-gnu/tls", 0xbfa23ec4) = -1 ENOENT (No such file or
directory)
open("/lib/i486-linux-gnu/i686/sse2/cmov/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT
(No such file or directory)
stat64("/lib/i486-linux-gnu/i686/sse2/cmov", 0xbfa23ec4) = -1 ENOENT (No such
file or directory)
open("/lib/i486-linux-gnu/i686/sse2/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No
such file or directory)
stat64("/lib/i486-linux-gnu/i686/sse2", 0xbfa23ec4) = -1 ENOENT (No such file
or directory)
open("/lib/i486-linux-gnu/i686/cmov/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No
such file or directory)
stat64("/lib/i486-linux-gnu/i686/cmov", 0xbfa23ec4) = -1 ENOENT (No such file
or directory)
open("/lib/i486-linux-gnu/i686/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such
file or directory)
stat64("/lib/i486-linux-gnu/i686", 0xbfa23ec4) = -1 ENOENT (No such file or
directory)
open("/lib/i486-linux-gnu/sse2/cmov/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No
such file or directory)
stat64("/lib/i486-linux-gnu/sse2/cmov", 0xbfa23ec4) = -1 ENOENT (No such file
or directory)
open("/lib/i486-linux-gnu/sse2/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such
file or directory)
stat64("/lib/i486-linux-gnu/sse2", 0xbfa23ec4) = -1 ENOENT (No such file or
directory)
open("/lib/i486-linux-gnu/cmov/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such
file or directory)
stat64("/lib/i486-linux-gnu/cmov", 0xbfa23ec4) = -1 ENOENT (No such file or
directory)
open("/lib/i486-linux-gnu/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such file
or directory)
stat64("/lib/i486-linux-gnu", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
open("/usr/lib/i486-linux-gnu/tls/i686/sse2/cmov/libpcp_pmcd.so", O_RDONLY) =
-1 ENOENT (No such file or directory)
stat64("/usr/lib/i486-linux-gnu/tls/i686/sse2/cmov", 0xbfa23ec4) = -1 ENOENT
(No such file or directory)
open("/usr/lib/i486-linux-gnu/tls/i686/sse2/libpcp_pmcd.so", O_RDONLY) = -1
ENOENT (No such file or directory)
stat64("/usr/lib/i486-linux-gnu/tls/i686/sse2", 0xbfa23ec4) = -1 ENOENT (No
such file or directory)
open("/usr/lib/i486-linux-gnu/tls/i686/cmov/libpcp_pmcd.so", O_RDONLY) = -1
ENOENT (No such file or directory)
stat64("/usr/lib/i486-linux-gnu/tls/i686/cmov", 0xbfa23ec4) = -1 ENOENT (No
such file or directory)
open("/usr/lib/i486-linux-gnu/tls/i686/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT
(No such file or directory)
stat64("/usr/lib/i486-linux-gnu/tls/i686", 0xbfa23ec4) = -1 ENOENT (No such
file or directory)
open("/usr/lib/i486-linux-gnu/tls/sse2/cmov/libpcp_pmcd.so", O_RDONLY) = -1
ENOENT (No such file or directory)
stat64("/usr/lib/i486-linux-gnu/tls/sse2/cmov", 0xbfa23ec4) = -1 ENOENT (No
such file or directory)
open("/usr/lib/i486-linux-gnu/tls/sse2/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT
(No such file or directory)
stat64("/usr/lib/i486-linux-gnu/tls/sse2", 0xbfa23ec4) = -1 ENOENT (No such
file or directory)
open("/usr/lib/i486-linux-gnu/tls/cmov/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT
(No such file or directory)
stat64("/usr/lib/i486-linux-gnu/tls/cmov", 0xbfa23ec4) = -1 ENOENT (No such
file or directory)
open("/usr/lib/i486-linux-gnu/tls/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No
such file or directory)
stat64("/usr/lib/i486-linux-gnu/tls", 0xbfa23ec4) = -1 ENOENT (No such file or
directory)
open("/usr/lib/i486-linux-gnu/i686/sse2/cmov/libpcp_pmcd.so", O_RDONLY) = -1
ENOENT (No such file or directory)
stat64("/usr/lib/i486-linux-gnu/i686/sse2/cmov", 0xbfa23ec4) = -1 ENOENT (No
such file or directory)
open("/usr/lib/i486-linux-gnu/i686/sse2/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT
(No such file or directory)
stat64("/usr/lib/i486-linux-gnu/i686/sse2", 0xbfa23ec4) = -1 ENOENT (No such
file or directory)
open("/usr/lib/i486-linux-gnu/i686/cmov/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT
(No such file or directory)
stat64("/usr/lib/i486-linux-gnu/i686/cmov", 0xbfa23ec4) = -1 ENOENT (No such
file or directory)
open("/usr/lib/i486-linux-gnu/i686/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No
such file or directory)
stat64("/usr/lib/i486-linux-gnu/i686", 0xbfa23ec4) = -1 ENOENT (No such file or
directory)
open("/usr/lib/i486-linux-gnu/sse2/cmov/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT
(No such file or directory)
stat64("/usr/lib/i486-linux-gnu/sse2/cmov", 0xbfa23ec4) = -1 ENOENT (No such
file or directory)
open("/usr/lib/i486-linux-gnu/sse2/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No
such file or directory)
stat64("/usr/lib/i486-linux-gnu/sse2", 0xbfa23ec4) = -1 ENOENT (No such file or
directory)
open("/usr/lib/i486-linux-gnu/cmov/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No
such file or directory)
stat64("/usr/lib/i486-linux-gnu/cmov", 0xbfa23ec4) = -1 ENOENT (No such file or
directory)
open("/usr/lib/i486-linux-gnu/libpcp_pmcd.so", O_RDONLY) = -1 ENOENT (No such
file or directory)
stat64("/usr/lib/i486-linux-gnu", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
writev(2, [{"/usr/lib/pcp/bin/pmcd", 21}, {": ", 2}, {"error while loading
shared libra"..., 36}, {": ", 2}, {"libpcp_pmcd.so", 14}, {": ", 2}, {"cannot
open shared object file", 30}, {": ", 2}, {"No such file or directory", 25},
{"\n", 1}], 10/usr/lib/pcp/bin/pmcd: error while loading shared libraries:
libpcp_pmcd.so: cannot open shared object file: No such file or directory
) = 135
exit_group(127) = ?
On Wed, 2008-08-13 at 17:44 +1000, Nathan Scott wrote:
> Hi Ken,
>
> On Wed, 2008-08-13 at 17:03 +1000, Ken McDonell wrote:
> > Before I spend time on triage, anyone else seeing this kinda fatal
> > situation on Ubuntu?
>
> Yes, I changed the build to no create&use a shared library version
> of libpcp_pmda.so anymore (except on Windows, where the dll is used)
> - it looks like you have a pmcd binary that linked with it (it only
> ever existed in the git tree in-between versions, so was added and
> removed since the 20080507 version).
>
> > Setting up libpcp-trace2-dev (2.7.4-20080507) ...
> > Setting up pcp (2.7.4-20080507) ...
> > Performance Co-Pilot rebuilding PMNS ...
> > Performance Co-Pilot starting PMCD (logfile
> > is /var/log/pcp/pmcd/pmcd.log) ... /usr/lib/pcp/bin/pmcd: error while
> > loading shared libraries: libpcp_pmcd.so: cannot open shared object
> > file: No such file or directory
> > failed (status=127)
> > Performance Co-Pilot starting archive loggers ...
> >
> > This is with the previous git version, so not related to the latest
> > changes.
>
> I have a few known QA regressions too, which I'm working through atm.
> Production issues here have slowed things a fair bit at the moment,
> but I hope to knock off the regressions and complete the Perl API in
> the next few days (and add another Perl PMDA).
>
> cheers.
>
> --
> Nathan
>
|