Opensolaris 2008.05 / Orca 535
Brought to you by:
dmichelsen
tmcgee@test:~# /opt/RICHPse/bin/se -DWATCH_OS /usr/local/lib/orca/orcallator.se
Fatal: error reading data: Near line 62
tmcgee@test:~# uname -a
SunOS test 5.11 snv_86 i86pc i386 i86xpv Solaris
tmcgee@test:~# cat /usr/local/lib/orca/orcallator.se | grep Rev
// $LastChangedRevision: 535 $
tmcgee@test:~# /opt/RICHPse/bin/se -v
se - Version 3.5.0-dev-3 (03:41 PM 05/23/08) for amd64
I have attached a truss trace which I thought might help. I am not really sure what other data would be useful.
Logged In: YES
user_id=1427051
Originator: YES
File Added: output.debug.txt.gz
se debug output
Logged In: YES
user_id=1427051
Originator: YES
After doing some further testing a lot of example scripts do work for example:
pwatch.se
disks.se
vmstat.se
net.se
iostat.se
Curiously when I run netstat.se I get an error message about tcp_mib.
tmcgee@test:/opt/RICHPse/examples# se netstat.se
Fatal: kvm variable: kvm$tcp_mib has no address
This is also the same tcp_mib which is that last thing mentioned in the debug output of SE when I run the orcallator.se
tmcgee@test:/opt/RICHPse/examples# se orcallator.se 2>&1 output.debug.txt
tmcgee@test:/opt/RICHPse/examples# gzcat ~/output.debug.txt.gz | tail
GLOBAL_tcp = tcp$GLOBAL_tcp(STRUCTURE)
now = gethrtime()
interval = (now<798896747768525> - then<0>) * <1e-09>
if (interval<798897> == <0>)
tmp = mib$tcp(STRUCTURE)
Logged In: YES
user_id=990368
Originator: NO
Hi Tim (?),
thanks for your bugreport. I'll have a look at this.
Thanks!
-- Dago
I have updated to the lastest OpenSolaris 2008.11 build and to the latest se package.
Same results, some se scripts work but especially network related ones seem to fail.
root@galactica /opt/RICHPse/examples # export PATH=$PATH:/opt/RICHPse/bin
root@galactica /opt/RICHPse/examples # se -v
se - Version 3.5.0 (02:27 PM 08/05/08) for amd64
root@galactica /opt/RICHPse/examples # uname -a
SunOS galactica 5.11 snv_97 i86pc i386 i86pc Solaris
root@galactica /opt/RICHPse/examples # se netstat.se
Fatal: kvm variable: kvm$tcp_mib has no address
The tcp_mib structure is in newer versions of Solaris no longer directly addressable. Using the mib$tcp structure works however fine:
--- examples/netstat.se 2008-09-17 17:56:58.931403400 +0200
+++ /home/dam/netstat.se 2008-09-17 18:10:00.212128400 +0200
@@ -23,7 +23,7 @@
double connections;
double retranpercent;
int i;
- int fd;
+ int fd = -1;
int headed=0;
int interval = SAMPLE_INTERVAL;
int nnets;
@@ -41,13 +41,7 @@
}
refresh$(net);
nnets = net.net_count;
- if ((fd = open("/dev/mem", O_RDONLY)) != -1) {
- last = kvm$tcp_mib;
- close(fd);
- } else {
- printf("no root permissions - get tcp data with slow locking\n");
last = mib$tcp;
- }
n = time(0);
printf("Current tcp RtoMin is %d, interval %d, start %s", last.tcpRtoMin,
interval, ctime(&n));
This has to be adjusted at several places.
My goal is getting the orcallator.se (r535) script working. The main orca part that makes the graph seems to be working great. But I know you don't develop orca, so should I submit a bug with the orcaware people about updating their orcallator.se script, or is there other things to update with the RICHPse before that happens ?
root@galactica /usr/local/lib/orca # se orcallator.se
"orcallator.se", line 190: error: syntax error
"orcallator.se", line 190: fatal: Errors detected. Exiting.
Hi Rodney,
well, as luck goes I do have commit access to the Orca repository. I just talked to Richard Pettit, the original author of the SE Toolkit, about mib$tcp and kvm$tcp_mib. The use of kvm$tcp_mib was a performance enhancement at the time of a SPARCserver 1000, maybe 15 years ago and is likely not to be needed any more on modern machines. The is a problem on some of the scripts like netstat.se and needs fixing and I will open a separate bugreport for this, but this is not your problem with orcallator.se. You must not start orcallator directly as there are some environment-variables which must be set beforehand like
export COMPRESSOR=/usr/bin/gzip
mkdir /tmp/orca
export OUTDIR=/tmp/orca
When you set up the orcallator correctly as separate software, the script http://www.orcaware.com/svn/repos/orca/trunk/data_gatherers/orcallator/start_orcallator.sh.in will set all this up for you. Please try this and post if it works for you.
I edited the start_orcallator.sh from
pids=`/usr/ucb/ps auxww | $AWK '/orcallator.se/ && !/awk/ {print $2}'`
to
pids=`ps -elf | $AWK '/orcallator.se/ && !/awk/ {print $4}'`
root@galactica ~ # ./start_orcallator.sh
Writing data into /usr/local/var/orca/orcallator/galactica/
Starting logging
Fatal: error reading data: Near line 62
which runs this /opt/RICHPse/bin/se -DWATCH_OS -I/usr/local/lib/SE/3.5.0 /usr/local/lib/orca/orcallator.se
I noticed /usr/local/lib/SE/3.5.0 doesn't exist because it is not in orcallator yet
http://www.orcaware.com/svn/repos/orca/trunk/lib/SE/
I tried to edit the script so it runs this
/opt/RICHPse/bin/se -DWATCH_OS -I/usr/local/lib/SE/3.4 /usr/local/lib/orca/orcallator.se
root@galactica ~ # ./start_orcallator.sh
Writing data into /usr/local/var/orca/orcallator/galactica/
Starting logging
Fatal: error reading data: Near line 62
root@galactica /usr/local/lib/SE # ls -l
total 6
drwxr-xr-x 2 root root 8 Jun 10 20:48 3.2.1
drwxr-xr-x 2 root root 8 Jun 10 20:48 3.3
drwxr-xr-x 2 root root 8 Jun 10 20:48 3.3.1
drwxr-xr-x 2 root root 7 Jun 10 20:48 3.4
root@galactica ~ # ls /usr/local/lib/SE/3.4/
live_rules.se orca_p_netstat_class.se orca_p_vmstat_class.se orca_process_class.se workinfo_class.se
What other info can I give you so that we can track this down.
Hi,
your actions about replace the BSD-variant of 'ps' is correct. For the includes you can directly include /opt/RICHPse/include and remove the 'orca_'-prefix from the names of the files to be included. Then please add a '-d' option to the invocation of 'se' and post the last few lines so I can see where it stops.
Best regards
-- Dago
Edited the orca_ prefix out of orcallator.se
root@galactica ~ # ./start_orcallator.sh
Writing data into /usr/local/var/orca/orcallator/galactica/
Starting logging
/opt/RICHPse/bin/se -d -DWATCH_OS -I/opt/RICHPse/include /usr/local/lib/orca/orcallator.se
swap_rule.swap_avail = GLOBAL_pvm[0].swap_avail<0>
swap_rule.timestamp = timestamp<1222110722>
refresh$(swap_rule(STRUCTURE))
if (timestamp<1222110722> == <0>)
if (timestamp<1222110722> != lasttime<0>)
if (swap_avail<0> >= swap_waste<0>)
state = <0>
action = <There is a lot of unused swap space>
lasttime = timestamp<1222110722>
explanation = action<There is a lot of unused swap space>
if (timestamp<1222110722> == <0>)
if (timestamp<1222110722> != lasttime<1222110722>)
action = uninit<Rule initializing...>
explanation = uninit<Rule initializing...>
state = <0>
lasttime = timestamp<1222110722>
return ;
if (initialized<0> == <0>)
GLOBAL_tcp = tcp$GLOBAL_tcp(STRUCTURE)
now = gethrtime()
interval = (now<957550891946829> - then<0>) * <1e-09>
if (interval<957551> == <0>)
tmp = mib$tcp(STRUCTURE)
Fatal: error reading data: Near line 62
Found a couple of these in the include
root@galactica /opt/RICHPse/include # grep "mib\$tcp" *
tcp_class.se: mib2_tcp_t mib$tcp;
tcp_class.se: tmp = mib$tcp;
Fixed everything by changing all
mib$something
to
mib2$something
in orcallator.se and tcp_class.se
Oh and you can check it out here
http://mirror.lug.udel.edu
http://mirror.lug.udel.edu/orcallator/
Thanks for all the help
Hi,
that's good to hear. I'll update the software and documentation accordingly.
Best regards
-- Dago