Re: DTrace bindings are missing in FreeBSD 9.0 - CURRENT for userland apps

From: István <leccine_at_gmail.com>
Date: Tue, 19 Oct 2010 00:05:10 +0100
Hey Garrett,

thanks for coming back to me.

1. I had make clean before I did make install clean.
2.

  $ ./configure --with-libraries=/usr/local/lib
--with-includes=/usr/local/include --enable-thread-safety --with-openssl
--enable-dtrace --with-pam --enable-nls --prefix=/usr/local
--mandir=/usr/local/man --infodir=/usr/local/info/
--build=amd64-portbld-freebsd9.0
uname -v = FreeBSD 9.0-CURRENT #0: Fri Oct  8 21:09:20 UTC 2010
root_at_freebsd9:/usr/obj/usr/src/sys/DTRACE
configure:2820: checking for dtrace
configure:2836: found /usr/sbin/dtrace
configure:2847: result: dtrace
| #define ENABLE_DTRACE 1
ac_cv_prog_DTRACE=dtrace
DTRACE='dtrace'
DTRACEFLAGS=''
configure_args=' '\''--with-libraries=/usr/local/lib'\''
'\''--with-includes=/usr/local/include'\'' '\''--enable-thread-safety'\''
'\''--with-openssl'\'' '\''--enable-dtrace'\'' '\''--with-pam'\''
'\''--enable-nls'\'' '\''--prefix=/usr/local'\''
'\''--mandir=/usr/local/man'\'' '\''--infodir=/usr/local/info/'\''
'\''--build=amd64-portbld-freebsd9.0'\''
'\''build_alias=amd64-portbld-freebsd9.0'\'' '\''CC=cc'\'' '\''CFLAGS=-O2
-pipe -fno-omit-frame-pointer -fno-strict-aliasing'\'' '\''LDFLAGS=
-L/usr/local/lib -rpath=/usr/lib:/usr/local/lib -lelf -L/usr/local/lib'\''
'\''CPPFLAGS=-I/usr/local/include'\'''
enable_dtrace='yes'
#define ENABLE_DTRACE 1

The server is running:

[root_at_freebsd9/usr/ports/databases/postgresql90-server/work/postgresql-9.0.1]#
ps aux |
grep post
pgsql 86977   0.0  1.0  61992   9984  ??  Ss   10:01PM   0:00.97
/usr/local/bin/postgres -D /usr/local/pgsql/data
pgsql 86979   0.0  1.0  61992  10004  ??  Rs   10:01PM   0:06.48 postgres:
writer process    (postgres)
pgsql 86980   0.0  1.0  61992  10004  ??  Rs   10:01PM   0:03.44 postgres:
wal writer process    (postgres)
pgsql 86981   0.0  1.0  61992  10880  ??  Ss   10:01PM   0:00.99 postgres:
autovacuum launcher process    (postgres)
pgsql 86982   0.0  0.8  24896   8056  ??  Ss   10:01PM   0:00.56 postgres:
stats collector process    (postgres)

According to the manual:

http://www.postgresql.org/docs/8.2/static/dynamic-trace.html

[root_at_freebsd9/usr/ports/databases/postgresql90-server/work/postgresql-9.0.1]#
ls
src/include/pg_trace.h

This file is there.

But I can't see the probes in the list:

dtrace -l | grep -i postgres

Further info:

[root_at_freebsd9 ~]# /usr/local/etc/rc.d/postgresql restart
dtrace DOF postgres: DTrace ioctl failed for DOF at 0x801c35000: Invalid
argument

Any time I would like to start dtrace on the servers pid the daemon is
crashing wo/ any log.


I.

On Mon, Oct 18, 2010 at 11:48 PM, Garrett Cooper <gcooper_at_freebsd.org>wrote:

> On Mon, Oct 18, 2010 at 2:48 PM, István <leccine_at_gmail.com> wrote:
> > I perfectly understand what you are saying and I have been DTracing on
> > Solaris many times.
> >
> > Only problem here is that you don't get my point, but I try to explain it
> on
> > the level you can get it.
> >
> >
> > [root_at_freebsd9 /usr/ports/databases/postgresql90-server]# grep -iA3
> > WITH_DTRACE Makefile
> > .  if defined(WITH_DTRACE)
> > CONFIGURE_ARGS+=--enable-dtrace
> > LDFLAGS+=-lelf
> > .  endif
> >
> > [root_at_freebsd9 /usr/ports/databases/postgresql90-server]# grep -i dtrace
> > /var/db/ports/postgresql90/options
> > WITH_DTRACE=true
> >
> > [root_at_freebsd9 /usr/ports/databases/postgresql90-server]# make install
> clean
> >
> >
> > What other dependency might cause the lack of DTrace bindings for
> > postgres90-server?
> >
> >
> > If you don't get my point at this stage then we don't have anything to
> talk
> > about, and I don't understand how can the FreeBSD project use a tool like
> > you. :)
> >
> >
> > Hope I make it clear what is not working and what must work.
> >
> > I.
> >
> >
> >
> >
> >
> > On Mon, Oct 18, 2010 at 10:40 PM, Rui Paulo <rpaulo_at_freebsd.org> wrote:
> >
> >>
> >> On 18 Oct 2010, at 22:37, István wrote:
> >>
> >> > So there is no out of the box solution for FreeBSD to use DTrace for
> any
> >> userland app.
> >>
> >> What have I been saying ? Userland DTrace support works on FreeBSD 9.0,
> but
> >> I don't think you understand what userland DTrace support requires. For
> >> PostgreSQL and Ruby you need to re-compile the software with DTrace
> support
> >> enabled. This is the same on Solaris.
> >>
> >> >
> >> > Is there somebody in the FreeBSD team actively working on this?
> >> >
> >> >
> >> > I.
> >> >
> >> >
> >> > On Mon, Oct 18, 2010 at 10:33 PM, Rui Paulo <rpaulo_at_freebsd.org>
> wrote:
> >> >
> >> > On 18 Oct 2010, at 22:30, István wrote:
> >> >
> >> > > what should I do with the Makefile exactly? I can't see any dtrace
> >> related information in it.
> >> >
> >> > Each software package has it's way of enabling DTrace during the
> build.
> >> Check the postgres90-server port for an example on how to add DTrace
> support
> >> to a port.
>
>     1. I'd do clean install, not install clean to start from a consistent
> state.
>    2. What do the autoconf logs say about dtrace support being
> enabled (make clean configure will provide that data with the least
> number of cycles spent)?
> Thanks,
> -Garrett
>



-- 
the sun shines for all

http://blog.l1x.me
Received on Mon Oct 18 2010 - 21:05:12 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:08 UTC