<br><font size=2 face="sans-serif">Hi,</font>
<br>
<br><font size=2 face="sans-serif">I've got through padb test now (assuming jobid is just numeric part), the result is OK, and I met 2 bugs:</font>
<br>
<br><font size=2 face="sans-serif">1- Path of remote padb:</font>
<br>
<br><font size=2 face="sans-serif">[thipa@xn5 padb_open]$ ./padb -O rmgr=pbs -tx 27611</font>
<br><font size=2 face="sans-serif">einner: xn20: bash: <b>./padb: No such file or directory</b></font>
<br><font size=2 face="sans-serif">einner: pdsh@xn5: xn20: ssh exited with exit code 127</font>
<br><font size=2 face="sans-serif">einner: xn19: bash: <b>./padb: No such file or directory</b></font>
<br><font size=2 face="sans-serif">einner: pdsh@xn5: xn19: ssh exited with exit code 127</font>
<br><font size=2 face="sans-serif">Unexpected EOF from Inner stdout (connecting)</font>
<br><font size=2 face="sans-serif">Unexpected EOF from Inner stderr (connecting)</font>
<br><font size=2 face="sans-serif">Waiting for signon from 2 hosts.</font>
<br><font size=2 face="sans-serif">Unexpected exit from parallel command (state=connecting)</font>
<br><font size=2 face="sans-serif">[thipa@xn5 padb_open]$</font>
<br>
<br><font size=2 face="sans-serif">[thipa@xn20 padb_open]$ ssh -V</font>
<br><font size=2 face="sans-serif">OpenSSH_5.1p1, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008</font>
<br>
<br><font size=2 face="sans-serif">I think from OpenSSH_5.1, the remote SSH does not execute .bashrc anymore</font>
<br><font size=2 face="sans-serif">So PATH variable is not set from your .bashrc,</font>
<br><font size=2 face="sans-serif">As the consequence path is not found,</font>
<br><font size=2 face="sans-serif">So path to remote host must be a full path, I did the patch as follows:</font>
<br>
<br><font size=2 face="sans-serif">sub pbs_setup_job {</font>
<br>
<br><font size=2 face="sans-serif">.</font>
<br><font size=2 face="sans-serif">.</font>
<br>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; my $pwd=$ENV{PWD};</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; my $dirnm = dirname ($0);</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; my $base = basename ($0);</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; # if padb is launch as padb then dirname is .</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; # if padb is launched with a full path then dir is full</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; my $out;</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; if ($dirnm eq &quot;.&quot;) {</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp;$out=&quot; $pwd\/$base &quot;;</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; } else {</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp;$out=&quot; $0 &quot;;</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; }</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; $pcmd{padb_path} = $out;</font>
<br>
<br><font size=2 face="sans-serif">.</font>
<br><font size=2 face="sans-serif">}</font>
<br>
<br><font size=2 face="sans-serif">sub &nbsp;go_job {</font>
<br>
<br><font size=2 face="sans-serif">.</font>
<br>
<br><font size=2 face="sans-serif">my $padb_path &nbsp;= $pcmd{padb_path};</font>
<br>
<br><font size=2 face="sans-serif">.</font>
<br><font size=2 face="sans-serif">.</font>
<br><font size=2 face="sans-serif">&nbsp;#replace this line $cmd .= &quot; $0 --inner&quot;; by</font>
<br>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; if (!defined $padb_path) {</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp;$cmd .= &quot; $0 --inner&quot;;</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; } else {</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp;$cmd .= &quot; $padb_path --inner &quot;;</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; }</font>
<br>
<br><font size=2 face="sans-serif">.</font>
<br>
<br><font size=2 face="sans-serif">.</font>
<br>
<br><font size=2 face="sans-serif">}</font>
<br>
<br><font size=2 face="sans-serif">If you have another idea i take it.</font>
<br>
<br>
<br><font size=2 face="sans-serif">2- Use of uninitialized value in subtraction (-) at ./padb line 4077</font>
<br>
<br><font size=2 face="sans-serif">[thipa@xn5 padb_open]$ ./padb -O rmgr=pbs -O stack-shows-locals=no &nbsp;-O stack-shows-params=no -tx 27611</font>
<br><font size=2 face="sans-serif"><b>Use of uninitialized value in subtraction (-) at ./padb line 4077</b>.</font>
<br><font size=2 face="sans-serif">-----------------</font>
<br><font size=2 face="sans-serif">[0-1,3,6] (4 processes)</font>
<br><font size=2 face="sans-serif">-----------------</font>
<br><font size=2 face="sans-serif">main() at pp_sndrcv_spbl.c:50</font>
<br><font size=2 face="sans-serif">&nbsp; PMPI_Finalize() at ?:?</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; MPID_Finalize() at ?:?</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; MPIDI_CH3_Progress_wait() at ?:?</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; MPIDU_Sock_wait() at ?:?</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; poll() at ?:?</font>
<br><font size=2 face="sans-serif">-----------------</font>
<br><font size=2 face="sans-serif">[2,4] (2 processes)</font>
<br><font size=2 face="sans-serif">-----------------</font>
<br><font size=2 face="sans-serif">ThreadId: 1</font>
<br><font size=2 face="sans-serif">&nbsp; -----------------</font>
<br><font size=2 face="sans-serif">&nbsp; [2] (1 processes)</font>
<br><font size=2 face="sans-serif">&nbsp; -----------------</font>
<br><font size=2 face="sans-serif">&nbsp; main() at pp_sndrcv_spbl.c:46</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; PMPI_Recv() at ?:?</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; MPID_Progress_wait() at ?:?</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; MPIDI_CH3_Progress_wait() at ?:?</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MPIDU_Sock_wait() at ?:?</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; poll() at ?:?</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ThreadId: 2</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; start_thread() at ?:?</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fd_server() at server.c:354</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; select() at ?:?</font>
<br><font size=2 face="sans-serif">&nbsp; -----------------</font>
<br><font size=2 face="sans-serif">&nbsp; [4] (1 processes)</font>
<br><font size=2 face="sans-serif">&nbsp; -----------------</font>
<br><font size=2 face="sans-serif">&nbsp; main() at pp_sndrcv_spbl.c:50</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; PMPI_Finalize() at ?:?</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; MPID_Finalize() at ?:?</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; MPIDI_CH3_Progress_wait() at ?:?</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MPIDU_Sock_wait() at ?:?</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; poll() at ?:?</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ThreadId: 2</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; start_thread() at ?:?</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fd_server() at server.c:354</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; select() at ?:?</font>
<br><font size=2 face="sans-serif">[thipa@xn5 padb_open]$ </font>
<br>
<br><font size=2 face="sans-serif">line 4077 looks like:</font>
<br>
<br><font size=2 face="sans-serif">4058 sub check_signon {</font>
<br><font size=2 face="sans-serif">4059 &nbsp; &nbsp; my ( $comm_data, $data ) = @_;</font>
<br><font size=2 face="sans-serif">4060 &nbsp; &nbsp; return if ( $conf{check_signon} eq 'none' );</font>
<br><font size=2 face="sans-serif">.</font>
<br><font size=2 face="sans-serif">.</font>
<br><font size=2 face="sans-serif">4075 &nbsp; &nbsp; my $rng = rng_create_empty();</font>
<br><font size=2 face="sans-serif">4076 </font>
<br><font size=2 face="sans-serif"><b>4077</b> &nbsp; &nbsp; foreach my $proc ( 0 .. $comm_data-&gt;{nprocesses} - 1 ) {</font>
<br><font size=2 face="sans-serif">4078 &nbsp; &nbsp; &nbsp; &nbsp; if ( not defined $here{$proc} ) {</font>
<br><font size=2 face="sans-serif">4079 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rng_add_value( $rng, $proc );</font>
<br><font size=2 face="sans-serif">4080 &nbsp; &nbsp; &nbsp; &nbsp; }</font>
<br><font size=2 face="sans-serif">4081 &nbsp; &nbsp; }</font>
<br>
<br><font size=2 face="sans-serif">3- Question about starting inner padb:</font>
<br>
<br>
<br><font size=2 face="sans-serif">How can I start an inner padb by hand on a remote host to debug such as:</font>
<br><font size=2 face="sans-serif">perl -d ./padb --inner --jobid=27611.xn0 --stack-trace -O rmgr=&quot;pbs&quot; --line-formatted</font>
<br><font size=2 face="sans-serif">like I did it before, because this command doesn't work anymore.</font>
<br><font size=2 face="sans-serif">You have changed it with &quot;call back&quot; and communication on ports.</font>
<br>
<br>
<br><font size=2 face="sans-serif">Here is the diff again r311 (diff r311 newone).</font>
<br>
<br>
<br>
<br><font size=2 face="sans-serif">So you can integrate my new patch and try to correct the point 2,</font>
<br><font size=2 face="sans-serif">and send me back the new one, i will test it over.</font>
<br>
<br><font size=2 face="sans-serif">Regards,</font>
<br><font size=2 face="sans-serif">Thipadin.</font>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td>
<td><font size=1 face="sans-serif"><b>Ashley Pittman &lt;ashley@pittman.co.uk&gt;</b></font>
<p><font size=1 face="sans-serif">11/18/2009 09:00 AM</font>
<br>
<td><font size=1 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; </font>
<br><font size=1 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; Pour : &nbsp; &nbsp; &nbsp; &nbsp;thipadin.seng-long@bull.net</font>
<br><font size=1 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; cc : &nbsp; &nbsp; &nbsp; &nbsp;florence.vallee@bull.net, francois.wellenreiter@bull.net, padb-devel@pittman.org.uk, Sylvain.JEAUGEY@bull.net</font>
<br><font size=1 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; Objet : &nbsp; &nbsp; &nbsp; &nbsp;Re: Réf. : Re: [padb-devel] Patch for Support of PBS Pro resource manager</font></table>
<br>
<br><font size=2 face="Courier New">On Tue, 2009-11-17 at 17:17 +0100, thipadin.seng-long@bull.net wrote:<br>
&gt; &nbsp;I have to break on the screen to get prompt: <br>
&gt; So I guess it is a infinite loop. <br>
&gt; I have changed &nbsp;'while(@output)' &nbsp;for 'foreach(@output)', to correct<br>
&gt; this probleme.<br>
<br>
That looks like a simple mistake on my part. &nbsp;I prefer not to use $_ in<br>
my code (either implicitly or explicitly) as I think it makes it less<br>
readable, once the code works it's easy enough to make variables<br>
explicit however, I just didn't do it in the patch because I prefer to<br>
change as least as I can possibly get away with unless I can test it<br>
immediately.<br>
<br>
&gt; 2- Job is not found: <br>
&gt; <br>
&gt; So when the loop is disappeared &nbsp;i can go further: <br>
&gt; <br>
&gt; ./padb -O rmgr=pbs -tx 27611.xn0 <br>
&gt; Job 27611.xn0 is not active <br>
&gt; [thipa@xn5]$ qstat <br>
&gt; Job id &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Name &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; User &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Time Use S Queue <br>
&gt; ---------------- &nbsp;---------------- ---------------- &nbsp;-------- - ----- <br>
&gt; 27611.xn0 &nbsp; &nbsp; &nbsp; &nbsp; STDIN &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;thipa &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 00:00:06 R workq<br>
<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt; [thipa@xn5]$ <br>
&gt; <br>
&gt; The jobs that are display by qstat have the suffice with .xn0 (which<br>
&gt; is the server), <br>
&gt; so we used to pick up the whole job id as input jobid. <br>
&gt; So something have to be changed (code or synopsis).<br>
<br>
I guess the job id as you requested it (27611.xn0) does not match what<br>
it returned by pbs_get_jobs(), there is a problem here to do with the<br>
server. &nbsp;In the past all job id's have been numeric, this hasn't been a<br>
problem but isn't something that I've strived for, it's just that so far<br>
all resource managers have worked that way so that's how I think of it.<br>
There is no technical reason for this to be true however so how about we<br>
just say that in the future jobid's have to be alphanumeric strings,<br>
this would work in this case although would have the downside you<br>
couldn't specify the job as 27611 in the case above.<br>
<br>
padb --show-jobs should show you what padb thinks the job id's are and<br>
of course using -a rather than specifying a job tells it to use all jobs<br>
so it'll just attempt to target one in the case above, regardless of<br>
what it thinks it's called.<br>
<br>
I'd be happy for a patch supporting either implementation, i.e. I don't<br>
have a strong preference either way. &nbsp; You can either have the jobid<br>
encompass both the number and the server or you could continue with what<br>
I attempted to encode in the patch I sent you where the job id is the<br>
number and the server becomes a configuration option.<br>
<br>
Actually this could make life easier for slurm and the way it handles<br>
job steps, it effectively appends &quot;.0&quot; to the padb job id before handing<br>
it over to slurm so this could probably be simplified if the .0 became a<br>
optional part of the job id itself rather than a separate configuration<br>
option.<br>
<br>
&gt; I am waiting for your patch (or reply) to continue.<br>
<br>
I hope this helps you along the way, I can't really code anything from<br>
here as I don't have access to a pbs system.<br>
<br>
Ashley,<br>
<br>
-- <br>
<br>
Ashley Pittman, Bath, UK.<br>
<br>
Padb - A parallel job inspection tool for cluster computing<br>
http://padb.pittman.org.uk<br>
<br>
</font>
<br>
<br>