My apologies... sent to wrong alias.
Sang-Thong Chang wrote:
Hi all,
Under what circumstance would an exiting process open(2) and
ioctl(2) on /dev/dtrace/helper?
I have an issue here where CU was complaining that their
Oracle processes were taking a long time in ioctl(2) on
/dev/dtrace/helper during shutdown. Removing group/world
readable bit on /dev/dtrace/helper avoided the long shutdown
time.
So, the puzzling question is why /dev/dtrace/helper was being
ioctl(2)ed on?
I doubt this is a binary with USDT. truss(1M) shown the following:
Base time stamp: 1244728105.2977 [ Thu Jun 11 22:48:25 KST 2009 ]
16003/1: psargs: oraclePOM1 (LOCAL=NO)
16003/1: read(31, 0x1069F3796, 2064) (sleeping...)
...
16003/1: 1468.9156 0.0005 open("/dev/dtrace/helper",
O_RDWR) = 8
16003/1: 1477.3773 8.4617 ioctl(8,
(('d'<<24)|('t'<<16)|('h'<<8)|2), 0x00000000) = 0
16003/1: 1477.3781 0.0008 Received signal #14, SIGALRM
[caught]
16003/1: 1477.3783 0.0002 lwp_sigmask(SIG_SETMASK,
0x9FBEF057, 0x0000FFF7) = 0xFFBFFEFF [0x0000FFFF]
1277 */
1278 #define DTRACEHIOC (('d' << 24) | ('t' << 16) |
('h' << 8))
1279 #define DTRACEHIOC_ADD (DTRACEHIOC | 1) /* add
helper */
1280 #define DTRACEHIOC_REMOVE (DTRACEHIOC | 2) /*
remove helper */
ustack() from dtrace(1M) shown this was from within the
exit hanlder in exit(2).
open(/dev/dtrace/helper)
libc.so.1`open
libCrun.so.1`0xffffffff7a50aed8
libCrun.so.1`0xffffffff7a50b0f4
ld.so.1`call_fini+0xd0
ld.so.1`atexit_fini+0x80
libc.so.1`_exithandle+0x48
libc.so.1`exit+0x4
oracle`_start+0x184
It would be great if anyone can help extend my understanding
of dtrace. Thanks.
Regards
Sang Thong
-----------------------------------------------------------------
1788: oraclePOM1 (LOCAL=NO)
data model = _LP64 flags = ORPHAN|MSACCT|MSFORK
/1: flags = ASLEEP read(0x11,0x106346b16,0x810)
1788: oracleEOM1 (LOCAL=NO)
/lib/sparcv9/libumem.so.1
/oraom/app/DBMS/lib/libskgxp10.so
/oraom/app/DBMS/lib/libhasgen10.so
/opt/ORCLcluster/lib/libskgxn2.so
/oraom/app/DBMS/lib/libocr10.so
/oraom/app/DBMS/lib/libocrb10.so
/oraom/app/DBMS/lib/libocrutl10.so
/oraom/app/DBMS/lib/libjox10.so
/oraom/app/DBMS/lib/libclsra10.so
/oraom/app/DBMS/lib/libdbcfg10.so
/oraom/app/DBMS/lib/libnnz10.so
/lib/sparcv9/libkstat.so.1
/lib/sparcv9/libnsl.so.1
/lib/sparcv9/libsocket.so.1
/lib/sparcv9/libgen.so.1
/lib/sparcv9/libdl.so.1
/usr/lib/sparcv9/libsched.so.1
/lib/sparcv9/libc.so.1
/lib/sparcv9/libaio.so.1
/lib/sparcv9/librt.so.1
/lib/sparcv9/libm.so.2
/opt/SUNWcluster/lib/sparcv9/libudlm.so
/usr/cluster/lib/sparcv9/libhaops.so.1
/lib/sparcv9/libmd.so.1
/usr/cluster/lib/sparcv9/libscha.so.1
/usr/cluster/lib/sparcv9/libsecurity.so.1
/usr/cluster/lib/sparcv9/libclos.so.1
/lib/sparcv9/libdoor.so.1
/usr/lib/sparcv9/libzonecfg.so.1
/lib/sparcv9/libsecdb.so.1
/usr/lib/sparcv9/libCstd.so.1
/usr/lib/sparcv9/libCrun.so.1
/lib/sparcv9/libuuid.so.1
/lib/sparcv9/libnvpair.so.1
/lib/sparcv9/libsysevent.so.1
/lib/sparcv9/libsec.so.1
/usr/lib/sparcv9/libbrand.so.1
/usr/lib/sparcv9/libpool.so.1
/lib/sparcv9/libscf.so.1
/lib/sparcv9/libproc.so.1
/lib/sparcv9/libuutil.so.1
/usr/lib/sparcv9/libxml2.so.2
/lib/sparcv9/libcmd.so.1
/lib/sparcv9/libavl.so.1
/usr/lib/sparcv9/libexacct.so.1
/lib/sparcv9/librtld_db.so.1
/lib/sparcv9/libelf.so.1
/lib/sparcv9/libctf.so.1
/lib/sparcv9/libpthread.so.1
/usr/lib/sparcv9/libz.so.1
/platform/sun4u-us3/lib/sparcv9/libc_psr.so.1
> > Mon, 22 Jun 2009 09:06:09 KST
open(/dev/dtrace/helper)
libc.so.1`open
libCrun.so.1`0xffffffff7a50aed8
libCrun.so.1`0xffffffff7a50b0f4
ld.so.1`call_fini+0xd0
ld.so.1`atexit_fini+0x80
libc.so.1`_exithandle+0x48
libc.so.1`exit+0x4
oracle`_start+0x184
***
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss