Well, you can disable the DTrace liveness checking by enabling destructive
actions or you could try using an aggregation rather than printf() to trace
each open.
Adam
On Thu, Aug 07, 2008 at 04:31:31PM -0400, Mark Harrison wrote:
> Hi all,
>
> I'm trying to write a dtrace script to print a list of files uploaded via
> sftp. I have it working pretty well, except after the script has been running
> for a few minutes, I get the "dtrace: processing aborted: Abort due to
> systemic unresponsiveness" error.
>
> Is there anything I can use to try to find the source of the error, or is
> there something I am missing?
>
> Regards,
>
> Mark
>
> Here's the script so far (ran with dtrace -q -C -s scriptname.d):
>
> #define checkdir "/zones/somezone/root/path/to/uploads"
>
> /* I'm triggering on a fop_open after fop_create (fop_create doesn't always
> * have the file path available, whereas fop_open does), hence the self->icare
> * variable. */
>
> fsinfo::fop_create: /
> arg0
> / {
> self->icare = 1;
> }
>
> /* Check to make sure the file was created via sftp, and check that it is in
> * the right dir (the beginning of the path has to match checkdir */
> fsinfo::fop_open: /
> self->icare == 1 &&
> execname == "sftp-server" &&
> ((vnode_t *)arg0)->v_path &&
> strstr(((vnode_t *)arg0)->v_path, checkdir)
> == ((vnode_t *)arg0)->v_path
> / {
> printf("%s\n", stringof(((vnode_t*)arg0)->v_path));
> }
>
> /* If we don't have the right dir, then we need to reset the icare var so we
> * don't check every fop_open from now on */
> fsinfo::fop_open: /
> self->icare == 1
> / {
> self->icare = 0;
> }
>
> --
> Mark Harrison
> Systems Administrator
> OmniTI Computer Consulting, Inc.
> _______________________________________________
> dtrace-discuss mailing list
> [email protected]
--
Adam Leventhal, Fishworks http://blogs.sun.com/ahl
_______________________________________________
dtrace-discuss mailing list
[email protected]