<br><br><div class="gmail_quote">On Fri, Jul 11, 2008 at 5:06 PM, Garrick Staples &lt;<a href="mailto:garrick@usc.edu">garrick@usc.edu</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On Fri, Jul 11, 2008 at 04:57:30PM -0400, Glen Beane alleged:<br>
<div><div></div><div class="Wj3C7c">&gt; On Fri, Jul 11, 2008 at 4:43 PM, Garrick Staples &lt;<a href="mailto:garrick@usc.edu">garrick@usc.edu</a>&gt; wrote:<br>
&gt;<br>
&gt; &gt; On Fri, Jul 11, 2008 at 04:28:43PM -0400, Glen Beane alleged:<br>
&gt; &gt; &gt; I&#39;ve been working on some changes in trunk that transfer the .OU and .ER<br>
&gt; &gt; &gt; spool files from pbs_mom back to pbs_server. This is one of the steps we<br>
&gt; &gt; &gt; need to take so that a job in the COMPLETE state can be restarted from a<br>
&gt; &gt; &gt; checkpoint file. &nbsp;(the files are only returned to the server if<br>
&gt; &gt; &gt; keep_completed is positive and the job has a checkpoint file)<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; There are problems when the spool file is shared between pbs_server and<br>
&gt; &gt; the<br>
&gt; &gt; &gt; mother superior pbs_mom. What happens is that when the files are<br>
&gt; &gt; &quot;returned&quot;<br>
&gt; &gt; &gt; pbs_server takes ownership of the .ER and .OU files in the spool dir and<br>
&gt; &gt; &gt; when pbs_mom forks to the user to copy the files back to the user home<br>
&gt; &gt; &gt; directory they are unable to do so because of a permission denied error.<br>
&gt; &gt; &nbsp;I<br>
&gt; &gt; &gt; feel that the cleanest solution is to just separate the pbs_server and<br>
&gt; &gt; &gt; pbs_mom spool directories. &nbsp;In my current working copy of trunk I have<br>
&gt; &gt; &gt; changed pbs_server to use server_home/server_spool instead of<br>
&gt; &gt; &gt; server_home/spool. &nbsp;pbs_mom continues to use server_home/spool. &nbsp;This<br>
&gt; &gt; solves<br>
&gt; &gt; &gt; my problems because when the spool files are returned to pbs_server<br>
&gt; &gt; pbs_mom<br>
&gt; &gt; &gt; retains its copy it its own spool directory. It is then free to fork to<br>
&gt; &gt; the<br>
&gt; &gt; &gt; user to copy the files and then delete them.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Are there any objections to this change in trunk? (the change will be<br>
&gt; &gt; &gt; introduced with the release of TORQUE 2.4.0)<br>
&gt; &gt;<br>
&gt; &gt; So we&#39;re doing a useless copy from server_home/spool to<br>
&gt; &gt; server_home/server_spool? &nbsp; At my site, these files are often a significant<br>
&gt; &gt; percentage of the filesystem. &nbsp;If a file is more than 50% of the total<br>
&gt; &gt; filesystem, then this is going to fail.<br>
&gt; &gt;<br>
&gt; &gt; Why not just have the server check if it already has the file and not issue<br>
&gt; &gt; a<br>
&gt; &gt; copy request?<br>
&gt;<br>
&gt;<br>
&gt; you probably don&#39;t run pbs_mom and pbs_server on the same host do you? &nbsp;;)<br>
&gt; I think 99% of the time the copy from pbs_mom to pbs_server is going to be<br>
&gt; required.<br>
&gt;<br>
&gt; As for this special case, yes if they can share the same spool directory<br>
&gt; then it would be good so we don&#39;t have to do the copy, however the problem<br>
&gt; is letting pbs_mom know that pbs_server is using the same spool directory.<br>
&gt; pbs_mom assumes it owns the file and will delete it when it is done. If<br>
&gt; pbs_server takes ownership of the file then it either has to make it world<br>
&gt; readable (then anyone can snoop on the contents of the .OU and .ER files<br>
&gt; while the job is in the COMPLETE state) or pbs_mom can not copy the file<br>
&gt; back to the user directory (permission denied). If it does not take<br>
&gt; ownership of the file then there needs to be some way to keep pbs_mom from<br>
&gt; deleting the file when it is done with it.<br>
&gt;<br>
&gt; I guess we could have a job attribute do_not_delete_spool_files that<br>
&gt; pbs_server could set. &nbsp;What do you think? Then I would skip the copy but I<br>
&gt; would still have to make pbs_server know it owns the files so it cleans them<br>
&gt; up after the keep_compled time expires.<br>
<br>
</div></div>pbs_server can check if the file already exists, if so, hardlink it to its own<br>
name, never ask pbs_mom to copy the file, and rename it back to the original<br>
name?<br>
<br>
Seems kind of hackish, but possibly less ugly than figuring out the<br>
do_not_delete_spool_files job attr.</blockquote></div><br><br>I guess the only problem I can think of is that if the file exists not because the pbs_mom is local, but because the job already completed once, was restarted from a checkpoint, and has now completed again. I think pbs_server would see that the file was already in the spool directory and would assume it was created by a local mom and would therefore not request a new copy of the file so that if the job were restarted again from yet another checkpoint file then an out of date .OU or .ER spool file would be staged back out for the job.<br>
<br><br>