Discussion:
Problem running zilstat script on a core install server.
Eric Reitmaier
2011-10-26 13:59:07 UTC
Permalink
We cannot run the zilstat utility (from
http://www.richardelling.com/Home/scripts-and-programs-1/zilstat) on
an Solaris 10 u9 / x86 installed according SUNWCreq (which is a core
install)
while it works fine on a similar config but installed with all
packages (SUNWCXall)

So we know it works in this environment but it seems we miss an
essential package here. That causes the

dtrace: failed to compile script ./zilstat.d: line 42: operands have
incompatible types: "string" == "int (*)()"

Which is at:

fbt::zil_lwb_write_start:entry
/OPT_pool == 0 || POOL == args[0]->zl_dmu_pool->dp_spa->spa_name/
{

So it looks like "args[0]->zl_dmu_pool->dp_spa->spa_name" returns a
different type.
We can avoid this by using the stringof function.
But then in the end it fails with

dtrace: error on enabled probe ID 2 (ID 20429:
fbt:zfs:zil_lwb_write_start:entry): invalid address (0x32736d3432636d)
in predicate at DIF offset 44

What are we missing?
Thanks for your help.

Eric
Eric Reitmaier
2011-10-26 14:24:49 UTC
Permalink
Sorry for disturbance,
ZFS IDR146119-09 is installed, which is causing the problem.
Post by Eric Reitmaier
We cannot run the zilstat utility (from
http://www.richardelling.com/Home/scripts-and-programs-1/zilstat)  on
an Solaris 10 u9 / x86 installed according SUNWCreq (which is a core
install)
while it works fine on a similar config but installed with all
packages (SUNWCXall)
So we know it works in this environment but it seems we miss an
essential package here. That causes the
dtrace: failed to compile script ./zilstat.d: line 42: operands have
incompatible types: "string" == "int (*)()"
fbt::zil_lwb_write_start:entry
/OPT_pool == 0 || POOL == args[0]->zl_dmu_pool->dp_spa->spa_name/
{
So it looks like "args[0]->zl_dmu_pool->dp_spa->spa_name" returns a
different type.
We can avoid this by using the stringof function.
But then in the end it fails with
fbt:zfs:zil_lwb_write_start:entry): invalid address (0x32736d3432636d)
in predicate at DIF offset 44
What are we missing?
Thanks for your help.
Eric
Loading...