But isn't this supposed to be pulled automatically with sxcpu when you
svn co from
xcpu.svn.sourceforge.net?

When I retrieve sxcpu, it reports that it is getting revision 25 of
npfs and spfs.  Still
it doesn't seem to work...

I'll try a fresh download and build from scratch, and will let you know.

Daniel


On 12/3/08, Abhishek Kulkarni <[EMAIL PROTECTED]> wrote:
>
>  Yes, it's in.
>  http://npfs.svn.sourceforge.net/viewvc/npfs?view=rev&revision=25
>
>
>  On Wed, 2008-12-03 at 13:43 -0500, Daniel Gruner wrote:
>  > Hi Abhishek,
>  >
>  > I got the latest version from sourceforge, in the usual way, but there
>  > wa no update to the npfs stuff.  Has it actually been checked in?  Or
>  > else, do I have to get a fresh copy of everything?
>  >
>  > Daniel
>  >
>  > On Tue, Dec 2, 2008 at 10:26 PM, Abhishek Kulkarni <[EMAIL PROTECTED]> 
> wrote:
>  > > Daniel,
>  > >
>  > > The weird xrx hang that you were seeing with the latest revision has been
>  > > fixed upstream in the npfs trunk. Yes, it was a bug that creeped in 
> during
>  > > the consolidation of the spfs/npfs sources. Thanks for hammering it down 
> for
>  > > us.
>  > >
>  > > Abhishek
>  > >
>  > > On Mon, Dec 1, 2008 at 3:56 PM, Daniel Gruner <[EMAIL PROTECTED]> wrote:
>  > >>
>  > >> On 12/1/08, Abhishek Kulkarni <[EMAIL PROTECTED]> wrote:
>  > >> >
>  > >> >  On Thu, 2008-11-27 at 11:20 -0500, Daniel Gruner wrote:
>  > >> >  > The latest version (739) does not work properly.  For example, any
>  > >> >  > time I tried to run something it would just hang, irrespective of
>  > >> >  > whether I did "xrx -a date", or "xrx -l n0000 /sbin/reboot".
>  > >> >
>  > >> >
>  > >> > I tested r739 before committing and it works fine for me. Can you
>  > >> >  provide some more details? Possibly a trace. And what hangs?
>  > >>
>  > >> Well, with the latest version (740), I can do xrx to individual nodes,
>  > >> properly,
>  > >> but "xrx -a" hangs.  By this I mean it just hangs...  until I kill it
>  > >> with ctrl-C.
>  > >>
>  > >> Also, I still get the infinite loop with "xuserset add n0000 -u".
>  > >>
>  > >> Here is the debugging output from "xrx -a date":
>  > >>
>  > >> [EMAIL PROTECTED] xcpu]# xrx -d -a date
>  > >> <<<-- (0x61f220) Tversion tag 65535 msize 32792 version '9P2000.u'
>  > >> -->>> (0x61f220) Rversion tag 65535 msize 8216 version '9P2000.u'
>  > >> <<<-- (0x61f220) Tattach tag 0 fid 0 afid -1 uname root aname  nuname 0
>  > >> -->>> (0x61f220) Rattach tag 0 qid  (0000000000000001 0 'd')
>  > >> connection 0x61f220 to 127.0.0.1 opened
>  > >> <<<-- (0x61f220) Twalk tag 0 fid 0 newfid 1 nwname 1 'state'
>  > >> -->>> (0x61f220) Rwalk tag 0 nwqid 1 (0000000000000002 0 '')
>  > >> <<<-- (0x61f220) Topen tag 0 fid 1 mode 0
>  > >> -->>> (0x61f220) Ropen tag 0 (0000000000000002 0 '') iounit 0
>  > >> <<<-- (0x61f220) Tread tag 0 fid 1 offset 0 count 8191
>  > >> -->>> (0x61f220) Rread tag 0 count 90 data 6e303030 30097463 70213130
>  > >> 2e31302e 302e3130 21363636 37092f4c 696e7578
>  > >> 2f783836 5f363409 75700930 0a6e3030 30310974 63702131 302e3130 2e302e31
>  > >>
>  > >>
>  > >> <<<-- (0x61f220) Tread tag 0 fid 1 offset 90 count 8101
>  > >> -->>> (0x61f220) Rread tag 0 count 0 data
>  > >>
>  > >> <<<-- (0x61f220) Tread tag 0 fid 1 offset 90 count 8191
>  > >> -->>> (0x61f220) Rread tag 0 count 0 data
>  > >>
>  > >> <<<-- (0x61f220) Tclunk tag 0 fid 1
>  > >> -->>> (0x61f220) Rclunk tag 0
>  > >> <<<-- (0x61f2e0) Tversion tag 65535 msize 32792 version '9P2000.u'
>  > >> -->>> (0x61f2e0) Rversion tag 65535 msize 32792 version '9P2000.u'
>  > >> <<<-- (0x61f2e0) Tauth tag 0 afid 0 uname root aname  nuname 0
>  > >> -->>> (0x61f2e0) Rauth tag 0 qid  (0000000000000000 0 'A')
>  > >> <<<-- (0x61f2e0) Tread tag 0 fid 0 offset 0 count 4096
>  > >> -->>> (0x61f2e0) Rread tag 0 count 16 data aa4d6553 ce86b205 7cc011bd
>  > >> 287f1921
>  > >>
>  > >> <<<-- (0x61f2e0) Tread tag 0 fid 0 offset 16 count 4080
>  > >> -->>> (0x61f2e0) Rread tag 0 count 0 data
>  > >>
>  > >> <<<-- (0x61f2e0) Twrite tag 0 fid 0 offset 0 count 256 data b5eb8c78
>  > >> 5fe427e5 77bd9eb5 10d406e2 7d3d1a5e 45b8e2c1 d0d1a5e3 23b345f3
>  > >> a9fb0b69 6ae199fa bbbff712 595f584a 7b4f150d ac996f25 a3913a4b f47dc9f1
>  > >>
>  > >>
>  > >> -->>> (0x61f2e0) Rwrite tag 0 count 256
>  > >> <<<-- (0x61f2e0) Tattach tag 0 fid 1 afid 0 uname root aname  nuname 0
>  > >> -->>> (0x61f2e0) Rattach tag 0 qid  (0000000000000001 0 'd')
>  > >> connection 0x61f2e0 to 10.10.0.10 opened
>  > >> <<<-- (0x61f2e0) Twalk tag 0 fid 1 newfid 2 nwname 1 'arch'
>  > >> -->>> (0x61f2e0) Rwalk tag 0 nwqid 1 (0000000000000004 0 '')
>  > >> <<<-- (0x61f2e0) Topen tag 0 fid 2 mode 0
>  > >> -->>> (0x61f2e0) Ropen tag 0 (0000000000000004 0 '') iounit 0
>  > >> <<<-- (0x61f2e0) Tread tag 0 fid 2 offset 0 count 63
>  > >> -->>> (0x61f2e0) Rread tag 0 count 13 data 2f4c696e 75782f78 38365f36 34
>  > >>
>  > >> <<<-- (0x61f2e0) Tread tag 0 fid 2 offset 13 count 50
>  > >> -->>> (0x61f2e0) Rread tag 0 count 0 data
>  > >>
>  > >> <<<-- (0x61f2e0) Tclunk tag 0 fid 2
>  > >> -->>> (0x61f2e0) Rclunk tag 0
>  > >> <<<-- (0x61f2e0) Twalk tag 0 fid 1 newfid 2 nwname 1 'clone'
>  > >> -->>> (0x61f2e0) Rwalk tag 0 nwqid 1 (0000000000000002 0 '')
>  > >> <<<-- (0x61f2e0) Topen tag 0 fid 2 mode 0
>  > >> -->>> (0x61f2e0) Ropen tag 0 (0000000000000002 0 '') iounit 0
>  > >> <<<-- (0x61f2e0) Tread tag 0 fid 2 offset 0 count 63
>  > >> -->>> (0x61f2e0) Rread tag 0 count 1 data 33
>  > >>
>  > >> <<<-- (0x61f2e0) Tread tag 0 fid 2 offset 1 count 62
>  > >> -->>> (0x61f2e0) Rread tag 0 count 0 data
>  > >>
>  > >> <<<-- (0x61f2e0) Twalk tag 0 fid 1 newfid 3 nwname 2 '3' 'ctl'
>  > >> -->>> (0x61f2e0) Rwalk tag 0 nwqid 2 (0000000004000000 0 'd')
>  > >> (0000000004000001 0 '')
>  > >> <<<-- (0x61f2e0) Topen tag 0 fid 3 mode 1
>  > >> -->>> (0x61f2e0) Ropen tag 0 (0000000004000001 0 '') iounit 0
>  > >> <<<-- (0x61f2e0) Twalk tag 0 fid 1 newfid 4 nwname 2 '3' 'wait'
>  > >> -->>> (0x61f2e0) Rwalk tag 0 nwqid 2 (0000000004000000 0 'd')
>  > >> (0000000004000009 0 '')
>  > >> <<<-- (0x61f2e0) Topen tag 0 fid 4 mode 0
>  > >> -->>> (0x61f2e0) Ropen tag 0 (0000000004000009 0 '') iounit 0
>  > >> <<<-- (0x61f2e0) Twalk tag 0 fid 1 newfid 5 nwname 2 '3' 'stdin'
>  > >> -->>> (0x61f2e0) Rwalk tag 0 nwqid 2 (0000000004000000 0 'd')
>  > >> (0000000004000005 0 '')
>  > >> <<<-- (0x61f2e0) Topen tag 0 fid 5 mode 1
>  > >> -->>> (0x61f2e0) Ropen tag 0 (0000000004000005 0 '') iounit 0
>  > >> <<<-- (0x61f2e0) Twalk tag 0 fid 1 newfid 6 nwname 2 '3' 'stdout'
>  > >> -->>> (0x61f2e0) Rwalk tag 0 nwqid 2 (0000000004000000 0 'd')
>  > >> (0000000004000006 0 '')
>  > >> <<<-- (0x61f2e0) Topen tag 0 fid 6 mode 0
>  > >> -->>> (0x61f2e0) Ropen tag 0 (0000000004000006 0 '') iounit 0
>  > >> <<<-- (0x61f2e0) Twalk tag 0 fid 1 newfid 7 nwname 2 '3' 'stderr'
>  > >> -->>> (0x61f2e0) Rwalk tag 0 nwqid 2 (0000000004000000 0 'd')
>  > >> (0000000004000007 0 '')
>  > >> <<<-- (0x61f2e0) Topen tag 0 fid 7 mode 0
>  > >> -->>> (0x61f2e0) Ropen tag 0 (0000000004000007 0 '') iounit 0
>  > >> <<<-- (0x61f2e0) Tclunk tag 0 fid 2
>  > >> -->>> (0x61f2e0) Rclunk tag 0
>  > >> <<<-- (0x6251a0) Tversion tag 65535 msize 32792 version '9P2000.u'
>  > >> -->>> (0x6251a0) Rversion tag 65535 msize 32792 version '9P2000.u'
>  > >> <<<-- (0x6251a0) Tauth tag 0 afid 0 uname root aname  nuname 0
>  > >> -->>> (0x6251a0) Rauth tag 0 qid  (0000000000000000 0 'A')
>  > >> <<<-- (0x6251a0) Tread tag 0 fid 0 offset 0 count 4096
>  > >> -->>> (0x6251a0) Rread tag 0 count 16 data 53c2d5e8 532ebac8 b0a070b2
>  > >> ce6cee3a
>  > >>
>  > >> <<<-- (0x6251a0) Tread tag 0 fid 0 offset 16 count 4080
>  > >> -->>> (0x6251a0) Rread tag 0 count 0 data
>  > >>
>  > >> <<<-- (0x6251a0) Twrite tag 0 fid 0 offset 0 count 256 data 8bed7bd1
>  > >> 94f1715c fbe85134 082b7308 49b53ccd cd5d5a9f cf501535 92cf6f78
>  > >> 1a552358 92cdd21f 82b1dc9d 13e00298 33c61985 a255597f 599e60e6 12023565
>  > >>
>  > >>
>  > >> -->>> (0x6251a0) Rwrite tag 0 count 256
>  > >> <<<-- (0x6251a0) Tattach tag 0 fid 1 afid 0 uname root aname  nuname 0
>  > >> -->>> (0x6251a0) Rattach tag 0 qid  (0000000000000001 0 'd')
>  > >> connection 0x6251a0 to 10.10.0.11 opened
>  > >> <<<-- (0x6251a0) Twalk tag 0 fid 1 newfid 2 nwname 1 'arch'
>  > >> -->>> (0x6251a0) Rwalk tag 0 nwqid 1 (0000000000000004 0 '')
>  > >> <<<-- (0x6251a0) Topen tag 0 fid 2 mode 0
>  > >> -->>> (0x6251a0) Ropen tag 0 (0000000000000004 0 '') iounit 0
>  > >> <<<-- (0x6251a0) Tread tag 0 fid 2 offset 0 count 63
>  > >> -->>> (0x6251a0) Rread tag 0 count 13 data 2f4c696e 75782f78 38365f36 34
>  > >>
>  > >> <<<-- (0x6251a0) Tread tag 0 fid 2 offset 13 count 50
>  > >> -->>> (0x6251a0) Rread tag 0 count 0 data
>  > >>
>  > >> <<<-- (0x6251a0) Tclunk tag 0 fid 2
>  > >> -->>> (0x6251a0) Rclunk tag 0
>  > >> <<<-- (0x6251a0) Twalk tag 0 fid 1 newfid 2 nwname 1 'clone'
>  > >> -->>> (0x6251a0) Rwalk tag 0 nwqid 1 (0000000000000002 0 '')
>  > >> <<<-- (0x6251a0) Topen tag 0 fid 2 mode 0
>  > >> -->>> (0x6251a0) Ropen tag 0 (0000000000000002 0 '') iounit 0
>  > >> <<<-- (0x6251a0) Tread tag 0 fid 2 offset 0 count 63
>  > >> -->>> (0x6251a0) Rread tag 0 count 1 data 33
>  > >>
>  > >> <<<-- (0x6251a0) Tread tag 0 fid 2 offset 1 count 62
>  > >> -->>> (0x6251a0) Rread tag 0 count 0 data
>  > >>
>  > >> <<<-- (0x6251a0) Twalk tag 0 fid 1 newfid 3 nwname 2 '3' 'ctl'
>  > >> -->>> (0x6251a0) Rwalk tag 0 nwqid 2 (0000000004000000 0 'd')
>  > >> (0000000004000001 0 '')
>  > >> <<<-- (0x6251a0) Topen tag 0 fid 3 mode 1
>  > >> -->>> (0x6251a0) Ropen tag 0 (0000000004000001 0 '') iounit 0
>  > >> <<<-- (0x6251a0) Twalk tag 0 fid 1 newfid 4 nwname 2 '3' 'wait'
>  > >> -->>> (0x6251a0) Rwalk tag 0 nwqid 2 (0000000004000000 0 'd')
>  > >> (0000000004000009 0 '')
>  > >> <<<-- (0x6251a0) Topen tag 0 fid 4 mode 0
>  > >> -->>> (0x6251a0) Ropen tag 0 (0000000004000009 0 '') iounit 0
>  > >> <<<-- (0x6251a0) Twalk tag 0 fid 1 newfid 5 nwname 2 '3' 'stdin'
>  > >> -->>> (0x6251a0) Rwalk tag 0 nwqid 2 (0000000004000000 0 'd')
>  > >> (0000000004000005 0 '')
>  > >> <<<-- (0x6251a0) Topen tag 0 fid 5 mode 1
>  > >> -->>> (0x6251a0) Ropen tag 0 (0000000004000005 0 '') iounit 0
>  > >> <<<-- (0x6251a0) Twalk tag 0 fid 1 newfid 6 nwname 2 '3' 'stdout'
>  > >> -->>> (0x6251a0) Rwalk tag 0 nwqid 2 (0000000004000000 0 'd')
>  > >> (0000000004000006 0 '')
>  > >> <<<-- (0x6251a0) Topen tag 0 fid 6 mode 0
>  > >> -->>> (0x6251a0) Ropen tag 0 (0000000004000006 0 '') iounit 0
>  > >> <<<-- (0x6251a0) Twalk tag 0 fid 1 newfid 7 nwname 2 '3' 'stderr'
>  > >> -->>> (0x6251a0) Rwalk tag 0 nwqid 2 (0000000004000000 0 'd')
>  > >> (0000000004000007 0 '')
>  > >> <<<-- (0x6251a0) Topen tag 0 fid 7 mode 0
>  > >> -->>> (0x6251a0) Ropen tag 0 (0000000004000007 0 '') iounit 0
>  > >> <<<-- (0x6251a0) Tclunk tag 0 fid 2
>  > >> -->>> (0x6251a0) Rclunk tag 0
>  > >> <<<-- (0x61f2e0) Twalk tag 0 fid 1 newfid 2 nwname 2 '3' 'argv'
>  > >> -->>> (0x61f2e0) Rwalk tag 0 nwqid 2 (0000000004000000 0 'd')
>  > >> (0000000004000003 0 '')
>  > >> <<<-- (0x61f2e0) Topen tag 0 fid 2 mode 17
>  > >> -->>> (0x61f2e0) Ropen tag 0 (0000000004000003 0 '') iounit 0
>  > >> <<<-- (0x61f2e0) Twalk tag 0 fid 1 newfid 8 nwname 2 '3' 'fs'
>  > >> -->>> (0x61f2e0) Rwalk tag 0 nwqid 2 (0000000004000000 0 'd')
>  > >> (0000000000000000 49347702 'd')
>  > >> <<<-- (0x61f2e0) Tcreate tag 0 fid 8 name date perm 755 mode 1 ext
>  > >> -->>> (0x61f2e0) Rcreate tag 0 (0000000000000000 49347702 '') iounit 0
>  > >> <<<-- (0x61f2e0) Twalk tag 0 fid 1 newfid 9 nwname 2 '3' 'fs'
>  > >> -->>> (0x61f2e0) Rwalk tag 0 nwqid 2 (0000000004000000 0 'd')
>  > >> (0000000000000000 49347702 'd')
>  > >> <<<-- (0x61f2e0) Tcreate tag 0 fid 9 name librt.so.1 perm 755 mode 1 ext
>  > >> -->>> (0x61f2e0) Rcreate tag 0 (0000000000000000 49347702 '') iounit 0
>  > >> <<<-- (0x61f2e0) Twalk tag 0 fid 1 newfid 10 nwname 2 '3' 'fs'
>  > >> -->>> (0x61f2e0) Rwalk tag 0 nwqid 2 (0000000004000000 0 'd')
>  > >> (0000000000000000 49347702 'd')
>  > >> <<<-- (0x61f2e0) Tcreate tag 0 fid 10 name libc.so.6 perm 755 mode 1 ext
>  > >> -->>> (0x61f2e0) Rcreate tag 0 (0000000000000000 49347702 '') iounit 0
>  > >> <<<-- (0x61f2e0) Twalk tag 0 fid 1 newfid 11 nwname 2 '3' 'fs'
>  > >> -->>> (0x61f2e0) Rwalk tag 0 nwqid 2 (0000000004000000 0 'd')
>  > >> (0000000000000000 49347702 'd')
>  > >> <<<-- (0x61f2e0) Tcreate tag 0 fid 11 name libpthread.so.0 perm 755 
> mode 1
>  > >> ext
>  > >> -->>> (0x61f2e0) Rcreate tag 0 (0000000000000000 49347702 '') iounit 0
>  > >> <<<-- (0x61f2e0) Twalk tag 0 fid 1 newfid 12 nwname 2 '3' 'fs'
>  > >> -->>> (0x61f2e0) Rwalk tag 0 nwqid 2 (0000000004000000 0 'd')
>  > >> (0000000000000000 49347702 'd')
>  > >> <<<-- (0x61f2e0) Tcreate tag 0 fid 12 name ld-linux-x86-64.so.2 perm
>  > >> 755 mode 1 ext
>  > >> -->>> (0x61f2e0) Rcreate tag 0 (0000000000000000 49347702 '') iounit 0
>  > >> <<<-- (0x6251a0) Twalk tag 0 fid 1 newfid 2 nwname 2 '3' 'argv'
>  > >> -->>> (0x6251a0) Rwalk tag 0 nwqid 2 (0000000004000000 0 'd')
>  > >> (0000000004000003 0 '')
>  > >> <<<-- (0x6251a0) Topen tag 0 fid 2 mode 17
>  > >> -->>> (0x6251a0) Ropen tag 0 (0000000004000003 0 '') iounit 0
>  > >> <<<-- (0x6251a0) Twalk tag 0 fid 1 newfid 8 nwname 2 '3' 'fs'
>  > >> -->>> (0x6251a0) Rwalk tag 0 nwqid 2 (0000000004000000 0 'd')
>  > >> (0000000000000000 493468c7 'd')
>  > >> <<<-- (0x6251a0) Tcreate tag 0 fid 8 name date perm 755 mode 1 ext
>  > >> -->>> (0x6251a0) Rcreate tag 0 (0000000000000000 493468c7 '') iounit 0
>  > >> <<<-- (0x6251a0) Twalk tag 0 fid 1 newfid 9 nwname 2 '3' 'fs'
>  > >> -->>> (0x6251a0) Rwalk tag 0 nwqid 2 (0000000004000000 0 'd')
>  > >> (0000000000000000 493468c7 'd')
>  > >> <<<-- (0x6251a0) Tcreate tag 0 fid 9 name librt.so.1 perm 755 mode 1 ext
>  > >> -->>> (0x6251a0) Rcreate tag 0 (0000000000000000 493468c7 '') iounit 0
>  > >> <<<-- (0x6251a0) Twalk tag 0 fid 1 newfid 10 nwname 2 '3' 'fs'
>  > >> -->>> (0x6251a0) Rwalk tag 0 nwqid 2 (0000000004000000 0 'd')
>  > >> (0000000000000000 493468c7 'd')
>  > >> <<<-- (0x6251a0) Tcreate tag 0 fid 10 name libc.so.6 perm 755 mode 1 ext
>  > >> -->>> (0x6251a0) Rcreate tag 0 (0000000000000000 493468c7 '') iounit 0
>  > >> <<<-- (0x6251a0) Twalk tag 0 fid 1 newfid 11 nwname 2 '3' 'fs'
>  > >> -->>> (0x6251a0) Rwalk tag 0 nwqid 2 (0000000004000000 0 'd')
>  > >> (0000000000000000 493468c7 'd')
>  > >> <<<-- (0x6251a0) Tcreate tag 0 fid 11 name libpthread.so.0 perm 755 
> mode 1
>  > >> ext
>  > >> -->>> (0x6251a0) Rcreate tag 0 (0000000000000000 493468c7 '') iounit 0
>  > >> <<<-- (0x6251a0) Twalk tag 0 fid 1 newfid 12 nwname 2 '3' 'fs'
>  > >> -->>> (0x6251a0) Rwalk tag 0 nwqid 2 (0000000004000000 0 'd')
>  > >> (0000000000000000 493468c7 'd')
>  > >> <<<-- (0x6251a0) Tcreate tag 0 fid 12 name ld-linux-x86-64.so.2 perm
>  > >> 755 mode 1 ext
>  > >> -->>> (0x6251a0) Rcreate tag 0 (0000000000000000 493468c7 '') iounit 0
>  > >> ^C
>  > >> [EMAIL PROTECTED] xcpu]#
>  > >>
>  > >>
>  > >> Daniel
>  > >>
>  > >>
>  > >>
>  > >>
>  > >>
>  > >> >
>  > >> >
>  > >> >  > I had to
>  > >> >  > hard-reboot the nodes and go back to the reasonably stable version
>  > >> >  > 724.  Also the problem with the infinite loop in xuserset, for 
> which
>  > >> >  > Abhishek sent me a patch, did not make it into the repository.
>  > >> >  >
>  > >> >  > May I suggest that versions get checked into the repository only
>  > >> > after
>  > >> >  > some more stringent testing?
>  > >> >  >
>  > >> >
>  > >> >
>  > >> > One of the motivating reasons for moving the base to sourceforge was
>  > >> >  that we could have a more traditional development model with
>  > >> > incremental
>  > >> >  tagged repository versions and periodic file releases so that
>  > >> >  third-party vendors using XCPU know when to pull.
>  > >> >
>  > >> >  I had recently posted a 'caveat emptor' on the mailing list about the
>  > >> >  recent changes to merge sxcpu spfs/npfs with the sourceforge 
> spfs/npfs.
>  > >> >  This, and the changes to libxcpu over the last few days, were 
> necessary
>  > >> >  to ease out the integration of xcpu with other tools.
>  > >> >
>  > >> >  I have not been able to reproduce any obvious errors with the recent
>  > >> > SVN
>  > >> >  revision. I would appreciate any further details you could provide.
>  > >> >
>  > >> >
>  > >> >   -- Abhishek
>  > >> >
>  > >> >
>  > >> >  > Daniel
>  > >> >  >
>  > >> >  > On 11/26/08, Abhishek Kulkarni <[EMAIL PROTECTED]> wrote:
>  > >> >  > >
>  > >> >  > >  xk and xps use the xp_defaultuser() function of libxcpu to get 
> the
>  > >> > admin
>  > >> >  > >  user and key.
>  > >> >  > >
>  > >> >  > >  for xk, it first tries as xcpu-admin and if that fails as the 
> user
>  > >> >  > >  itself. xps works for all.
>  > >> >  > >
>  > >> >  > >  Signed-off-by: Abhishek Kulkarni <[EMAIL PROTECTED]>
>  > >> >  > >
>  > >> >  > >  Index: utils/xk.c
>  > >> >  > >
>  > >> >  ===================================================================
>  > >> >  > >  --- utils/xk.c  (revision 739)
>  > >> >  > >  +++ utils/xk.c  (working copy)
>  > >> >  > >  @@ -50,54 +50,9 @@
>  > >> >  > >
>  > >> >  > >   extern int spc_chatty;
>  > >> >  > >
>  > >> >  > >  -static Spuser *user;
>  > >> >  > >  -static Xkey *ukey;
>  > >> >  > >  -static char *afname;
>  > >> >  > >  -
>  > >> >  > >  -static int
>  > >> >  > >  -init_user(void)
>  > >> >  > >  -{
>  > >> >  > >  -       char *homepath, keypath[128];
>  > >> >  > >  -       int xcpu_uid;
>  > >> >  > >  -       struct passwd *xcpu_admin;
>  > >> >  > >  -       Spuserpool *upool;
>  > >> >  > >  -
>  > >> >  > >  -
>  > >> >  > >  -       if (!afname)
>  > >> >  > >  -               ukey =
>  > >> > xauth_privkey_create("/etc/xcpu/admin_key");
>  > >> >  > >  -       else
>  > >> >  > >  -               ukey = xauth_privkey_create(afname);
>  > >> >  > >  -
>  > >> >  > >  -       if (ukey) {
>  > >> >  > >  -               upool = sp_priv_userpool_create();
>  > >> >  > >  -               xcpu_admin = getpwnam("xcpu-admin");
>  > >> >  > >  -               if (xcpu_admin)
>  > >> >  > >  -                       xcpu_uid = xcpu_admin->pw_uid;
>  > >> >  > >  -               else
>  > >> >  > >  -                       xcpu_uid = 65530;
>  > >> >  > >  -
>  > >> >  > >  -               user = sp_priv_user_add(upool, "xcpu-admin",
>  > >> > xcpu_uid, ukey);
>  > >> >  > >  -               if (!user)
>  > >> >  > >  -                       return -1;
>  > >> >  > >  -       }
>  > >> >  > >  -
>  > >> >  > >  -       else {
>  > >> >  > >  -               user = sp_unix_users->uid2user(sp_unix_users,
>  > >> > geteuid());
>  > >> >  > >  -               if (!user)
>  > >> >  > >  -                       return -1;
>  > >> >  > >  -               homepath = getenv("HOME");
>  > >> >  > >  -               snprintf(keypath, sizeof(keypath),
>  > >> > "%s/.ssh/id_rsa", homepath);
>  > >> >  > >  -               ukey = xauth_privkey_create(keypath);
>  > >> >  > >  -               if (!ukey)
>  > >> >  > >  -                       return -1;
>  > >> >  > >  -       }
>  > >> >  > >  -
>  > >> >  > >  -       return 0;
>  > >> >  > >  -}
>  > >> >  > >  -
>  > >> >  > >   void
>  > >> >  > >   usage(char *argv) {
>  > >> >  > >  -       fprintf(stderr, "usage: %s [-dhjm] [-a adminkey] sig
>  > >> > host:<pid|jid>
>  > >> >  > >  [host:<pid|jid> ...]\n", argv);
>  > >> >  > >  +       fprintf(stderr, "usage: %s [-dhjm] [-A adminkey] sig
>  > >> > host:<pid|jid>
>  > >> >  > >  [host:<pid|jid> ...]\n", argv);
>  > >> >  > >         exit(1);
>  > >> >  > >   }
>  > >> >  > >
>  > >> >  > >  @@ -112,9 +67,11 @@
>  > >> >  > >         Xpproc *procs, *xp;
>  > >> >  > >         char *s;
>  > >> >  > >         char statserver[32];
>  > >> >  > >  +       static Spuser *auser;
>  > >> >  > >  +       static Xkey *akey;
>  > >> >  > >  +       static char *adminkey = NULL;
>  > >> >  > >
>  > >> >  > >  -       afname = 0;
>  > >> >  > >  -       while ((c = getopt(argc, argv, "+dhja:m")) != -1) {
>  > >> >  > >  +       while ((c = getopt(argc, argv, "+dhjA:m")) != -1) {
>  > >> >  > >                 switch (c) {
>  > >> >  > >                 case 'd':
>  > >> >  > >                         spc_chatty = 1;
>  > >> >  > >  @@ -122,8 +79,8 @@
>  > >> >  > >                 case 'j':
>  > >> >  > >                         killjob++;
>  > >> >  > >                         break;
>  > >> >  > >  -               case 'a':
>  > >> >  > >  -                       afname = optarg;
>  > >> >  > >  +               case 'A':
>  > >> >  > >  +                       adminkey = strdup(optarg);
>  > >> >  > >                         break;
>  > >> >  > >                 case 'm':
>  > >> >  > >                         match = 1;
>  > >> >  > >  @@ -142,11 +99,19 @@
>  > >> >  > >                 fprintf(stderr, "bad signal argument %s: expected
>  > >> > int",
>  > >> >  > >  argv[optind-1]);
>  > >> >  > >                 usage(argv[0]);
>  > >> >  > >         }
>  > >> >  > >  -
>  > >> >  > >  -
>  > >> >  > >  -       if (init_user() < 0)
>  > >> >  > >  -               goto error;
>  > >> >  > >
>  > >> >  > >  +       if (adminkey) {
>  > >> >  > >  +               akey = xauth_privkey_create(adminkey);
>  > >> >  > >  +               if (!akey)
>  > >> >  > >  +                       goto error;
>  > >> >  > >  +       }
>  > >> >  > >  +
>  > >> >  > >  +       if (xp_defaultuser(&auser, &akey) < 0) {
>  > >> >  > >  +               if (akey)
>  > >> >  > >  +                       xauth_destroy(akey);
>  > >> >  > >  +               goto error;
>  > >> >  > >  +       }
>  > >> >  > >  +
>  > >> >  > >         for(;optind < argc; optind++) {
>  > >> >  > >                 int isjid = 0;
>  > >> >  > >                 int pid = -1;
>  > >> >  > >  @@ -178,7 +143,7 @@
>  > >> >  > >                         }
>  > >> >  > >                 }
>  > >> >  > >
>  > >> >  > >  -               n = xp_proc_list(ns, user, ukey, &procs);
>  > >> >  > >  +               n = xp_proc_list(ns, auser, akey, &procs);
>  > >> >  > >                 if (n < 0) {
>  > >> >  > >                         fprintf(stderr, "can not obtain process
>  > >> > list for nodeset %s;
>  > >> >  > >  skipping\n", argv[optind]);
>  > >> >  > >                         continue;
>  > >> >  > >  @@ -191,20 +156,20 @@
>  > >> >  > >                         if(isjid || match) {
>  > >> >  > >                                 if (xp->xcpujid) {
>  > >> >  > >                                         if(!match &&
>  > >> > !strcmp(xp->xcpujid, id))
>  > >> >  > >  -                                               xp_proc_kill(xp,
>  > >> > user, ukey, signal);
>  > >> >  > >  +                                               xp_proc_kill(xp,
>  > >> > auser, akey, signal);
>  > >> >  > >                                         else if(match) {
>  > >> >  > >                                                 tmpjid =
>  > >> > malloc(strlen(xp->xcpujid) + 1);
>  > >> >  > >                                                 strcpy(tmpjid,
>  > >> > xp->xcpujid);
>  > >> >  > >                                                 slash =
>  > >> > strchr(tmpjid, '/');
>  > >> >  > >                                                 *slash = '\0';
>  > >> >  > >                                                 if 
> (!strcmp(tmpjid,
>  > >> > id))
>  > >> >  > >  -
>  > >> > xp_proc_kill(xp, user, ukey, signal);
>  > >> >  > >  +
>  > >> > xp_proc_kill(xp, auser, akey, signal);
>  > >> >  > >                                                 free(tmpjid);
>  > >> >  > >                                         }
>  > >> >  > >                                 }
>  > >> >  > >                         } else {
>  > >> >  > >                                 if(xp->pid == pid)
>  > >> >  > >  -                                       xp_proc_kill(xp, user,
>  > >> > ukey, signal);
>  > >> >  > >  +                                       xp_proc_kill(xp, auser,
>  > >> > akey, signal);
>  > >> >  > >                         }
>  > >> >  > >                 }
>  > >> >  > >         }
>  > >> >  > >  Index: utils/xps.c
>  > >> >  > >
>  > >> >  ===================================================================
>  > >> >  > >  --- utils/xps.c (revision 739)
>  > >> >  > >  +++ utils/xps.c (working copy)
>  > >> >  > >  @@ -48,29 +48,9 @@
>  > >> >  > >   static void printpinfo(Xpproc *xp, char *stat);
>  > >> >  > >
>  > >> >  > >   extern int spc_chatty;
>  > >> >  > >  -static Spuser *user;
>  > >> >  > >  -static Xkey *ukey;
>  > >> >  > >
>  > >> >  > >  -static int
>  > >> >  > >  -init_user(void)
>  > >> >  > >  -{
>  > >> >  > >  -       char *homepath, keypath[128];
>  > >> >  > >  -
>  > >> >  > >  -       user = sp_unix_users->uid2user(sp_unix_users, 
> geteuid());
>  > >> >  > >  -       if (!user)
>  > >> >  > >  -               return -1;
>  > >> >  > >  -
>  > >> >  > >  -       homepath = getenv("HOME");
>  > >> >  > >  -       snprintf(keypath, sizeof(keypath), "%s/.ssh/id_rsa",
>  > >> > homepath);
>  > >> >  > >  -       ukey = xauth_privkey_create(keypath);
>  > >> >  > >  -       if (!ukey)
>  > >> >  > >  -               return -1;
>  > >> >  > >  -
>  > >> >  > >  -       return 0;
>  > >> >  > >  -}
>  > >> >  > >  -
>  > >> >  > >   void usage() {
>  > >> >  > >  -       fprintf(stderr, "usage: xps [-dax] [-J JobId]
>  > >> > host,...\n");
>  > >> >  > >  +       fprintf(stderr, "usage: xps [-dax] [-p port] [-J JobId]
>  > >> > host,...\n");
>  > >> >  > >         exit(1);
>  > >> >  > >   }
>  > >> >  > >
>  > >> >  > >  @@ -80,16 +60,18 @@
>  > >> >  > >         int i, n, c, jlen, ecode;
>  > >> >  > >         int min, sec, allflag = 0;
>  > >> >  > >         long long int t;
>  > >> >  > >  -       int xonly = 0;
>  > >> >  > >  -       char *ename, buf[256], *jobid;
>  > >> >  > >  +       int xonly = 0, port = STAT_PORT;
>  > >> >  > >  +       char *ename, buf[256], *jobid, *end;
>  > >> >  > >         Xpnodeset *nds, *nds2;
>  > >> >  > >         Xpproc *procs, *xp;
>  > >> >  > >         char stat[32];
>  > >> >  > >         char tim[64];
>  > >> >  > >  +       static Spuser *auser;
>  > >> >  > >  +       static Xkey *akey;
>  > >> >  > >
>  > >> >  > >         jlen = 0;
>  > >> >  > >         jobid = NULL;
>  > >> >  > >  -       while ((c = getopt(argc, argv, "+daxJ:")) != -1) {
>  > >> >  > >  +       while ((c = getopt(argc, argv, "+daxp:J:h")) != -1) {
>  > >> >  > >                 switch (c) {
>  > >> >  > >                 case 'd':
>  > >> >  > >                         spc_chatty = 1;
>  > >> >  > >  @@ -113,6 +95,12 @@
>  > >> >  > >                         xonly = 1;
>  > >> >  > >                         break;
>  > >> >  > >
>  > >> >  > >  +               case 'p':
>  > >> >  > >  +                       port = strtol(optarg, &end, 10);
>  > >> >  > >  +                       if (*end != '\0')
>  > >> >  > >  +                               usage(argv[0]);
>  > >> >  > >  +                       break;
>  > >> >  > >  +               case 'h':
>  > >> >  > >                 default:
>  > >> >  > >                         usage();
>  > >> >  > >                 }
>  > >> >  > >  @@ -120,7 +108,7 @@
>  > >> >  > >
>  > >> >  > >         if (allflag) {
>  > >> >  > >                 char statserver[32];
>  > >> >  > >  -               sprintf(statserver, "localhost!%d", STAT_PORT);
>  > >> >  > >  +               sprintf(statserver, "localhost!%d", port);
>  > >> >  > >                 nds = xp_nodeset_list(NULL);
>  > >> >  > >                 if(nds == NULL)
>  > >> >  > >                         nds = xp_nodeset_list(statserver);
>  > >> >  > >  @@ -145,13 +133,12 @@
>  > >> >  > >         if (!nds)
>  > >> >  > >                 goto error;
>  > >> >  > >
>  > >> >  > >  -       if (init_user() < 0)
>  > >> >  > >  +       if (xp_defaultuser(&auser, &akey) < 0)
>  > >> >  > >                 goto error;
>  > >> >  > >
>  > >> >  > >  -       n = xp_proc_list(nds, user, ukey, &procs);
>  > >> >  > >  +       n = xp_proc_list(nds, auser, akey, &procs);
>  > >> >  > >         if (n < 0)
>  > >> >  > >                 goto error;
>  > >> >  > >  -
>  > >> >  > >
>  > >> >  > >         printf("NODE\tPID\tTTY\tSTAT\tTIME\tJOBID\tCOMMAND\n");
>  > >> >  > >         for(i = 0; i < n; i++) {
>  > >> >  > >
>  > >> >  > >
>  > >> >  > >
>  > >> >
>  > >> >
>  > >
>  > >
>
>

Reply via email to