Menu

#32 Opensolaris 2008.05 / Orca 535

SE_Toolkit_3.5.0
open-accepted
General (26)
5
2008-09-22
2008-06-13
No

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.

Discussion

  • Rodney McGee

    Rodney McGee - 2008-06-13
     
  • Rodney McGee

    Rodney McGee - 2008-06-14

    Logged In: YES
    user_id=1427051
    Originator: YES

    File Added: output.debug.txt.gz

     
  • Rodney McGee

    Rodney McGee - 2008-06-14

    se debug output

     
  • Rodney McGee

    Rodney McGee - 2008-06-14

    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)

     
  • Dagobert Michelsen

    Logged In: YES
    user_id=990368
    Originator: NO

    Hi Tim (?),

    thanks for your bugreport. I'll have a look at this.

    Thanks!

    -- Dago

     
  • Dagobert Michelsen

    • milestone: 693576 --> SE_Toolkit_3.5.0
    • assigned_to: nobody --> dmichelsen
     
  • Rodney McGee

    Rodney McGee - 2008-09-16

    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

     
  • Dagobert Michelsen

    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.

     
  • Dagobert Michelsen

    • status: open --> open-accepted
     
  • Rodney McGee

    Rodney McGee - 2008-09-17

    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.

     
  • Dagobert Michelsen

    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.

     
  • Dagobert Michelsen

    • status: open-accepted --> pending-accepted
     
  • Nobody/Anonymous

    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.

     
  • Dagobert Michelsen

    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

     
  • Rodney McGee

    Rodney McGee - 2008-09-22

    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;

     
  • Rodney McGee

    Rodney McGee - 2008-09-22
    • status: pending-accepted --> open-accepted
     
  • Rodney McGee

    Rodney McGee - 2008-09-24

    Fixed everything by changing all
    mib$something
    to
    mib2$something

    in orcallator.se and tcp_class.se

     
  • Dagobert Michelsen

    Hi,

    that's good to hear. I'll update the software and documentation accordingly.

    Best regards

    -- Dago

     
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.