thanks for all the patches. I&#39;ll get those incorporated into TORQUE tonight<br><br><div class="gmail_quote">On Thu, Jul 3, 2008 at 2:26 PM, Tobias Burnus &lt;<a href="mailto:burnus@net-b.de">burnus@net-b.de</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;">Hello,<br>
<br>
<br>
First, compiling 2.3.1 fails here with:<br>
|<br>
cc1: warnings being treated as errors<br>
mom_server.c: In function &#39;is_mom_server_down&#39;:<br>
mom_server.c:2536: error: array subscript is above array bounds<br>
<br>
<br>
I believe that the logic of the for loop is wrong and the following patch is correct. Please check - especially check whether &quot;==&quot; or &quot;!=&quot; is correct.<br>
<br>
|||<br>
<br>
--- ../torque-2.3.1.orig/src/resmom/mom_server.c &nbsp; &nbsp; &nbsp; &nbsp;2008-07-02 23:01:03.000000000 +0200<br>
+++ src/resmom/mom_server.c &nbsp; &nbsp; 2008-07-03 19:31:56.000000000 +0200<br>
@@ -2533,7 +2533,7 @@ is_mom_server_down(pbs_net_t server_addr<br>
 &nbsp;{<br>
 &nbsp;int sindex;<br>
<br>
- &nbsp;for (sindex = 0; sindex &lt; PBS_MAXSERVER || down_svraddrs[sindex] == 0; sindex++)<br>
+ &nbsp;for (sindex = 0; sindex &lt; PBS_MAXSERVER &amp;&amp; down_svraddrs[sindex] != 0; sindex++)<br>
 &nbsp; &nbsp;{<br>
 &nbsp; &nbsp;if (down_svraddrs[sindex] == server_address)<br>
 &nbsp; &nbsp; &nbsp;{<br>
<br>
<br>
<br>
Fixing it, it fails with:<br>
<br>
|cc1: warnings being treated as errors<br>
start_exec.c: In function &#39;std_file_name&#39;:<br>
start_exec.c:5289: error: comparison with string literal results in unspecified behavior<br>
<br>
<br>
Which is fixed by:<br>
<br>
--- ../torque-2.3.1.orig/src/resmom/start_exec.c &nbsp; &nbsp; &nbsp; &nbsp;2008-07-02 22:57:23.000000000 +0200<br>
+++ src/resmom/start_exec.c &nbsp; &nbsp; 2008-07-03 20:10:14.000000000 +0200<br>
@@ -5286,7 +5286,7 @@<br>
<br>
 &nbsp; &nbsp;/* don&#39;t do for checkpoint file names, only StdErr and StdOut */<br>
<br>
- &nbsp; &nbsp;if (suffix != JOB_CKPT_SUFFIX)<br>
+ &nbsp; &nbsp;if (strcmp(suffix, JOB_CKPT_SUFFIX) != 0)<br>
 &nbsp; &nbsp; &nbsp;{<br>
 &nbsp; &nbsp; &nbsp;pt = strstr(jobpath,&quot;$HOME&quot;);<br>
<br>
<br>
|<br>
<br>
Secondly, it would be great if for 2.3.2 the invalid-memory-access bug in qsub could be fixed.<br>
<a href="http://www.clusterresources.com/pipermail/torquedev/2008-July/001119.html" target="_blank">http://www.clusterresources.com/pipermail/torquedev/2008-July/001119.html</a><br>
<br>
<br>
Thirdly, with all checking turned on, I need the attached patch in order to build Torque; please consider including them - especially prototype.patch.<br>
<br>
Regards,<br><font color="#888888">
<br>
Tobias<br>
<br>
</font><br>Thu, 03 Jul 2008 18:54:51 +0200 &nbsp;Tobias Burnus &nbsp;&lt;<a href="mailto:burnus@net-b.de">burnus@net-b.de</a>&gt;<br>
<br>
 &nbsp;Fix rpmlint errors: Return value of fwrite/fread was not checked.<br>
<br>
diff -ur ../torque-2.3.1.orig/src/resmom/linux/cpuset.c ./src/resmom/linux/cpuset.c<br>
--- ../torque-2.3.1.orig/src/resmom/linux/cpuset.c &nbsp; &nbsp; &nbsp;2008-06-13 01:01:03.000000000 +0200<br>
+++ ./src/resmom/linux/cpuset.c 2008-07-03 18:51:04.000000000 +0200<br>
@@ -139,7 +139,11 @@<br>
 &nbsp; &nbsp; &nbsp; &nbsp; strcat(path,&quot;/cpus&quot;);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; fd=fopen(path,&quot;r&quot;);<br>
&nbsp;if (fd) { &nbsp;/* FIXME: need proper error checking and response */<br>
- &nbsp; &nbsp; &nbsp; &nbsp;fread(cpuset_buf, sizeof(char), 1023, fd);<br>
+ &nbsp; &nbsp; &nbsp; &nbsp;if (!fread(cpuset_buf, sizeof(char), 1023, fd))<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; perror(&quot;Readings cpus&quot;);<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;exit(1);<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<br>
 &nbsp; &nbsp; &nbsp; &nbsp; fclose(fd);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; strcpy(path,TCPUSET_PATH);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; strcat(path,&quot;/cpus&quot;);<br>
@@ -147,7 +151,11 @@<br>
&nbsp;if (fd) {<br>
&nbsp;sprintf (log_buffer, &quot;adding %s to %s&quot;,cpuset_buf,path);<br>
&nbsp;log_err(-1,id,log_buffer);<br>
- &nbsp; &nbsp; &nbsp; &nbsp;fwrite(cpuset_buf, sizeof(char), strlen(cpuset_buf), fd);<br>
+ &nbsp; &nbsp; &nbsp; &nbsp;if(!fwrite(cpuset_buf, sizeof(char), strlen(cpuset_buf), fd))<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; perror(&quot;Writing cpus&quot;);<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;exit(1);<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<br>
 &nbsp; &nbsp; &nbsp; &nbsp; fclose(fd);<br>
&nbsp;}<br>
 &nbsp; &nbsp; &nbsp; &nbsp;memset(cpuset_buf,&#39;\0&#39;,sizeof(cpuset_buf));<br>
@@ -158,7 +166,11 @@<br>
 &nbsp; &nbsp; &nbsp; &nbsp; strcat(path,&quot;/mems&quot;);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; fd=fopen(path,&quot;r&quot;);<br>
&nbsp;if (fd) {<br>
- &nbsp; &nbsp; &nbsp; &nbsp;fread(cpuset_buf, sizeof(char), 1023, fd);<br>
+ &nbsp; &nbsp; &nbsp; &nbsp;if (!fread(cpuset_buf, sizeof(char), 1023, fd))<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; perror(&quot;Readings mems&quot;);<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;exit(1);<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<br>
 &nbsp; &nbsp; &nbsp; &nbsp; fclose(fd);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; strcpy(path,TCPUSET_PATH);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; strcat(path,&quot;/mems&quot;);<br>
@@ -166,7 +178,11 @@<br>
&nbsp;if (fd) {<br>
&nbsp;sprintf (log_buffer, &quot;adding %s to %s&quot;,cpuset_buf,path);<br>
&nbsp;log_err(-1,id,log_buffer);<br>
- &nbsp; &nbsp; &nbsp; &nbsp;fwrite(cpuset_buf, sizeof(char), strlen(cpuset_buf), fd);<br>
+ &nbsp; &nbsp; &nbsp; &nbsp;if (!fwrite(cpuset_buf, sizeof(char), strlen(cpuset_buf), fd))<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; perror(&quot;Writing mems&quot;);<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;exit(1);<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<br>
 &nbsp; &nbsp; &nbsp; &nbsp; fclose(fd);<br>
&nbsp;}<br>
 &nbsp; &nbsp; &nbsp; &nbsp;memset(cpuset_buf,&#39;\0&#39;,sizeof(cpuset_buf));<br>
@@ -258,12 +274,20 @@<br>
 &nbsp; strcat(rootpath,&quot;/mems&quot;);<br>
 &nbsp; fd=fopen(rootpath,&quot;r&quot;);<br>
&nbsp;if (fd) {<br>
- &nbsp;fread(cpusbuf, sizeof(char), 1023, fd);<br>
+ &nbsp;if (!fread(cpusbuf, sizeof(char), 1023, fd))<br>
+ &nbsp; &nbsp;{<br>
+ &nbsp; &nbsp; &nbsp;perror(&quot;Readings mems&quot;);<br>
+ &nbsp; &nbsp; &nbsp;exit(1);<br>
+ &nbsp; &nbsp;}<br>
 &nbsp; fclose(fd);<br>
 &nbsp; strcpy(tmppath,path);<br>
 &nbsp; strcat(tmppath,&quot;/mems&quot;);<br>
 &nbsp; fd=fopen(tmppath,&quot;w&quot;);<br>
- &nbsp;fwrite(cpusbuf, sizeof(char), strlen(cpusbuf), fd);<br>
+ &nbsp;if (fwrite(cpusbuf, sizeof(char), strlen(cpusbuf), fd))<br>
+ &nbsp; &nbsp;{<br>
+ &nbsp; &nbsp; &nbsp;perror(&quot;Writing mems&quot;);<br>
+ &nbsp; &nbsp; &nbsp;exit(1);<br>
+ &nbsp; &nbsp;}<br>
 &nbsp; fclose(fd);<br>
 &nbsp; memset(cpusbuf,&#39;\0&#39;,sizeof(cpusbuf));<br>
&nbsp;}<br>
@@ -294,7 +318,12 @@<br>
&nbsp;log_err(-1,id,log_buffer);<br>
 &nbsp; fd=fopen(tmppath,&quot;w&quot;);<br>
&nbsp;if (fd) {<br>
- &nbsp;fwrite(cpusbuf, sizeof(char), strlen(cpusbuf), fd);<br>
+ &nbsp;if (!fwrite(cpusbuf, sizeof(char), strlen(cpusbuf), fd))<br>
+ &nbsp; &nbsp;{<br>
+ &nbsp; &nbsp; &nbsp;perror(&quot;Writing cpu sets&quot;);<br>
+ &nbsp; &nbsp; &nbsp;exit(1);<br>
+ &nbsp; &nbsp;}<br>
+<br>
 &nbsp; fclose(fd);<br>
&nbsp;}<br>
 &nbsp; &nbsp; &nbsp; &nbsp;memset(cpusbuf,&#39;\0&#39;,sizeof(cpusbuf));<br>
@@ -316,7 +345,11 @@<br>
&nbsp;log_err(-1,id,log_buffer);<br>
 &nbsp; &nbsp; &nbsp; fd=fopen(tmppath,&quot;w&quot;);<br>
&nbsp;if (fd) {<br>
- &nbsp; &nbsp; &nbsp;fwrite(tasksbuf, sizeof(char), strlen(tasksbuf), fd);<br>
+ &nbsp; &nbsp; &nbsp;if (!fwrite(tasksbuf, sizeof(char), strlen(tasksbuf), fd))<br>
+ &nbsp; &nbsp; &nbsp; &nbsp;{<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;perror(&quot;Writing cpus&quot;);<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;exit(1);<br>
+ &nbsp; &nbsp; &nbsp; &nbsp;}<br>
 &nbsp; &nbsp; &nbsp; fclose(fd);<br>
&nbsp;}<br>
 &nbsp; &nbsp; &nbsp; memset(tasksbuf,&#39;\0&#39;,sizeof(tasksbuf));<br>
@@ -326,7 +359,11 @@<br>
 &nbsp; &nbsp; &nbsp; &nbsp; sprintf(tmppath,&quot;%s/%s/%s&quot;,TCPUSET_PATH,pjob-&gt;ji_qs.ji_jobid,&quot;/mems&quot;);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; fd=fopen(tmppath,&quot;r&quot;);<br>
&nbsp;if (fd) {<br>
- &nbsp; &nbsp; &nbsp; &nbsp;fread(tasksbuf, sizeof(char), 1023, fd);<br>
+ &nbsp; &nbsp; &nbsp; &nbsp;if (!fread(tasksbuf, sizeof(char), 1023, fd))<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;perror(&quot;Reading tasksets&quot;);<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;exit(1);<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<br>
 &nbsp; &nbsp; &nbsp; &nbsp; fclose(fd);<br>
&nbsp;}<br>
 &nbsp; &nbsp; &nbsp; &nbsp; sprintf(tmppath,&quot;%s/%s/%d/%s&quot;,TCPUSET_PATH,pjob-&gt;ji_qs.ji_jobid,np-&gt;vn_node,&quot;/mems&quot;);<br>
@@ -334,7 +371,11 @@<br>
&nbsp;if (fd) {<br>
&nbsp;sprintf (log_buffer, &quot;adding %s to %s&quot;,tasksbuf,tmppath);<br>
&nbsp;log_err(-1,id,log_buffer);<br>
- &nbsp; &nbsp; &nbsp; &nbsp;fwrite(tasksbuf, sizeof(char), strlen(tasksbuf), fd);<br>
+ &nbsp; &nbsp; &nbsp; &nbsp;if (!fwrite(tasksbuf, sizeof(char), strlen(tasksbuf), fd))<br>
+ &nbsp; &nbsp; &nbsp; &nbsp;{<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;perror(&quot;Writing tasksets&quot;);<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;exit(1);<br>
+ &nbsp; &nbsp; &nbsp; &nbsp;}<br>
 &nbsp; &nbsp; &nbsp; &nbsp; fclose(fd);<br>
&nbsp;}<br>
 &nbsp; &nbsp; &nbsp; &nbsp; memset(tasksbuf,&#39;\0&#39;,sizeof(tasksbuf));<br>
@@ -366,7 +407,11 @@<br>
<br>
 &nbsp; fd=fopen(taskspath,&quot;w&quot;);<br>
&nbsp;if (fd) {<br>
- &nbsp;fwrite(pidbuf,sizeof(char),strlen(pidbuf),fd);<br>
+ &nbsp;if (!fwrite(pidbuf,sizeof(char),strlen(pidbuf),fd))<br>
+ &nbsp; &nbsp;{<br>
+ &nbsp; &nbsp; &nbsp;perror(&quot;Writing pid buffer&quot;);<br>
+ &nbsp; &nbsp; &nbsp;exit(1);<br>
+ &nbsp; &nbsp;}<br>
 &nbsp; fclose(fd);<br>
&nbsp;}<br>
 &nbsp; memset(pidbuf,&#39;\0&#39;,sizeof(pidbuf));<br>
@@ -393,7 +438,11 @@<br>
<br>
 &nbsp; fd=fopen(taskspath,&quot;w&quot;);<br>
&nbsp;if (fd) {<br>
- &nbsp;fwrite(pidbuf,sizeof(char),strlen(pidbuf),fd);<br>
+ &nbsp;if (!fwrite(pidbuf,sizeof(char),strlen(pidbuf),fd))<br>
+ &nbsp; &nbsp;{<br>
+ &nbsp; &nbsp; &nbsp;perror(&quot;Writing pid buffer&quot;);<br>
+ &nbsp; &nbsp; &nbsp;exit(1);<br>
+ &nbsp; &nbsp;}<br>
 &nbsp; fclose(fd);<br>
&nbsp;}<br>
 &nbsp; memset(pidbuf,&#39;\0&#39;,sizeof(pidbuf));<br>
<br>Tue Apr &nbsp;1 18:14:02 CEST 2008 &nbsp;Tobias Burnus &nbsp;&lt;<a href="mailto:burnus@net-b.de">burnus@net-b.de</a>&gt;<br>
<br>
 &nbsp;&#39;freopen&#39; is declared with attribute warn_unused_result<br>
 &nbsp;and torque build with -Werror. The return value of freopen is now checked.<br>
<br>
diff -ur ../torque-2.3.0.orig/src/scheduler.cc/pbs_sched.c ./src/scheduler.cc/pbs_sched.c<br>
--- ../torque-2.3.0.orig/src/scheduler.cc/pbs_sched.c &nbsp; 2008-03-06 22:29:03.000000000 +0100<br>
+++ ./src/scheduler.cc/pbs_sched.c &nbsp; &nbsp; &nbsp;2008-04-01 18:11:58.000000000 +0200<br>
@@ -981,7 +981,13 @@<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; lock_out(lockfds, F_WRLCK);<br>
<br>
- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;freopen(dbfile, &quot;a&quot;, stdout);<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (freopen(dbfile, &quot;a&quot;, stdout) == NULL)<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;perror(&quot;opening lockfile&quot;);<br>
+<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;exit(1);<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<br>
+<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; setvbuf(stdout, NULL, _IOLBF, 0);<br>
<br>
@@ -995,7 +1001,12 @@<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pid = getpid();<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br>
<br>
- &nbsp; &nbsp; &nbsp; &nbsp;freopen(&quot;/dev/null&quot;, &quot;r&quot;, stdin);<br>
+ &nbsp; &nbsp; &nbsp; &nbsp;if (freopen(&quot;/dev/null&quot;, &quot;r&quot;, stdin) == NULL)<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;perror(&quot;opening /dev/null&quot;);<br>
+<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;exit(1);<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; /* write scheduler&#39;s pid into lockfile */<br>
<br>
<br>Thu, 03 Jul 2008 19:09:06 +0200 &nbsp;Tobias Burnus &nbsp;&lt;<a href="mailto:burnus@net-b.de">burnus@net-b.de</a>&gt;<br>
<br>
 &nbsp;init.d LSB conformance fixes.<br>
<br>
diff -ur ../torque-2.3.1.orig/contrib/init.d/suse.pbs_mom contrib//init.d/suse.pbs_mom<br>
--- ../torque-2.3.1.orig/contrib/init.d/suse.pbs_mom &nbsp; &nbsp;2008-03-06 22:29:09.000000000 +0100<br>
+++ contrib//init.d/suse.pbs_mom &nbsp; &nbsp; &nbsp; &nbsp;2008-07-03 19:41:01.000000000 +0200<br>
@@ -4,13 +4,16 @@<br>
&nbsp;#<br>
&nbsp;### BEGIN INIT INFO<br>
&nbsp;# Provides: &nbsp; &nbsp; &nbsp; pbs_mom<br>
-# Required-Start: $local_fs<br>
+# Required-Start: $syslog $remote_fs<br>
&nbsp;# Should-Start: pbs_server pbs_sched<br>
-# Required-Stop:<br>
+# Required-Stop: $syslog $remote_fs<br>
&nbsp;# Should-Stop:<br>
&nbsp;# Default-Start: &nbsp;2 3 5<br>
&nbsp;# Default-Stop:<br>
-# Description: Torque is a versatile batch system for SMPs and clusters<br>
+# Short-Description: Torque Node Manager Daemon<br>
+# Description: Torque is a versatile batch system for SMPs and clusters.<br>
+# &nbsp; &nbsp; &nbsp;This starts the operation of a batch Machine Oriented Mini-server,<br>
+# &nbsp; &nbsp; &nbsp;MOM, on the local host.<br>
&nbsp;### END INIT INFO<br>
<br>
&nbsp;PBS_DAEMON=/usr/sbin/pbs_mom<br>
diff -ur ../torque-2.3.1.orig/contrib/init.d/suse.pbs_sched contrib//init.d/suse.pbs_sched<br>
--- ../torque-2.3.1.orig/contrib/init.d/suse.pbs_sched &nbsp;2008-03-06 22:29:09.000000000 +0100<br>
+++ contrib//init.d/suse.pbs_sched &nbsp; &nbsp; &nbsp;2008-07-03 19:41:05.000000000 +0200<br>
@@ -4,13 +4,18 @@<br>
&nbsp;#<br>
&nbsp;### BEGIN INIT INFO<br>
&nbsp;# Provides: &nbsp; &nbsp; &nbsp; pbs_sched<br>
-# Required-Start: $local_fs<br>
+# Required-Start: $syslog $remote_fs<br>
&nbsp;# Should-Start: pbs_server<br>
-# Required-Stop:<br>
+# Required-Stop: $syslog $remote_fs<br>
&nbsp;# Should-Stop:<br>
&nbsp;# Default-Start: &nbsp;2 3 5<br>
&nbsp;# Default-Stop:<br>
-# Description: Torque is a versatile batch system for SMPs and clusters<br>
+# Short-Description: Torque scheduler<br>
+# Description: Torque is a versatile batch system for SMPs and clusters.<br>
+# &nbsp; &nbsp; &nbsp;Starts the PBS scheduler, which runs in conjunction with the PBS server.<br>
+# &nbsp; &nbsp; &nbsp;it queries the server about the state of PBS and communicates with<br>
+# &nbsp; &nbsp; &nbsp;pbs_resmon to get information about the status of running jobs, memory<br>
+# &nbsp; &nbsp; &nbsp;available etc. &nbsp;It then makes decisions as to what jobs to run.<br>
&nbsp;### END INIT INFO<br>
<br>
&nbsp;PBS_DAEMON=/usr/sbin/pbs_sched<br>
diff -ur ../torque-2.3.1.orig/contrib/init.d/suse.pbs_server contrib//init.d/suse.pbs_server<br>
--- ../torque-2.3.1.orig/contrib/init.d/suse.pbs_server 2008-03-06 22:29:09.000000000 +0100<br>
+++ contrib//init.d/suse.pbs_server &nbsp; &nbsp; 2008-07-03 19:08:02.000000000 +0200<br>
@@ -4,13 +4,16 @@<br>
&nbsp;#<br>
&nbsp;### BEGIN INIT INFO<br>
&nbsp;# Provides: &nbsp; &nbsp; &nbsp; pbs_server<br>
-# Required-Start: $local_fs<br>
+# Required-Start: $syslog $remote_fs<br>
&nbsp;# Should-Start:<br>
-# Required-Stop:<br>
+# Required-Stop: $syslog $remote_fs<br>
&nbsp;# Should-Stop:<br>
&nbsp;# Default-Start: &nbsp;2 3 5<br>
&nbsp;# Default-Stop:<br>
-# Description: Torque is a versatile batch system for SMPs and clusters<br>
+# Short-Description: Torque server<br>
+# Description: Torque is a versatile batch system for SMPs and clusters.<br>
+# &nbsp; &nbsp; &nbsp;Starts the PBS batch server, which operates as batch server<br>
+# &nbsp; &nbsp; &nbsp;on the local host.<br>
&nbsp;### END INIT INFO<br>
<br>
&nbsp;PBS_DAEMON=/usr/sbin/pbs_server<br>
<br>Thu Apr 24 10:32:28 CEST 2008 &nbsp;Tobias Burnus &nbsp;&lt;<a href="mailto:burnus@net-b.de">burnus@net-b.de</a>&gt;<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;Fix prototype declaration for -Wunprototyped-calls.<br>
<br>
<br>
diff -r -p -u ../torque-2.3.0.orig//doc/soelim.c .//doc/soelim.c<br>
--- ../torque-2.3.0.orig//doc/soelim.c &nbsp;2008-03-06 22:29:12.000000000 +0100<br>
+++ .//doc/soelim.c &nbsp; &nbsp; 2008-04-24 14:57:55.000000000 +0200<br>
@@ -102,7 +102,7 @@ int main(argc, argv)<br>
 &nbsp; &nbsp; &nbsp; &nbsp;int argc;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;char *argv[];<br>
&nbsp;{<br>
- &nbsp; &nbsp; &nbsp; int &nbsp; dofile();<br>
+ &nbsp; &nbsp; &nbsp; int &nbsp; dofile(FILE *);<br>
 &nbsp; &nbsp; &nbsp; &nbsp;int &nbsp; dirct = 0;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;FILE *filein;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;int &nbsp; i;<br>
diff -r -p -u ../torque-2.3.0.orig//src/cmds/qdisable.c .//src/cmds/qdisable.c<br>
--- ../torque-2.3.0.orig//src/cmds/qdisable.c &nbsp; 2008-03-06 22:28:55.000000000 +0100<br>
+++ .//src/cmds/qdisable.c &nbsp; &nbsp; &nbsp;2008-04-24 13:19:46.000000000 +0200<br>
@@ -110,7 +110,7 @@<br>
<br>
&nbsp;int exitstatus = 0; /* Exit Status */<br>
<br>
-static void execute ();<br>
+static void execute (char *, char *);<br>
<br>
&nbsp;int main ( argc, argv )<br>
&nbsp;int argc;<br>
diff -r -p -u ../torque-2.3.0.orig//src/cmds/qenable.c .//src/cmds/qenable.c<br>
--- ../torque-2.3.0.orig//src/cmds/qenable.c &nbsp; &nbsp;2008-03-06 22:28:55.000000000 +0100<br>
+++ .//src/cmds/qenable.c &nbsp; &nbsp; &nbsp; 2008-04-24 13:27:49.000000000 +0200<br>
@@ -109,7 +109,7 @@<br>
<br>
<br>
&nbsp;int exitstatus = 0; /* Exit Status */<br>
-static void execute ();<br>
+static void execute (char *, char *);<br>
<br>
<br>
&nbsp;int main(<br>
diff -r -p -u ../torque-2.3.0.orig//src/cmds/qrun.c .//src/cmds/qrun.c<br>
--- ../torque-2.3.0.orig//src/cmds/qrun.c &nbsp; &nbsp; &nbsp; 2008-03-06 22:28:55.000000000 +0100<br>
+++ .//src/cmds/qrun.c &nbsp;2008-04-24 13:36:27.000000000 +0200<br>
@@ -101,7 +101,7 @@<br>
&nbsp;#include &lt;pbs_config.h&gt; &nbsp; /* the master config generated by configure */<br>
<br>
&nbsp;int exitstatus = 0; /* Exit Status */<br>
-static void execute();<br>
+static void execute(char *, char *, char *, int);<br>
<br>
<br>
<br>
diff -r -p -u ../torque-2.3.0.orig//src/cmds/qstart.c .//src/cmds/qstart.c<br>
--- ../torque-2.3.0.orig//src/cmds/qstart.c &nbsp; &nbsp; 2008-03-06 22:28:55.000000000 +0100<br>
+++ .//src/cmds/qstart.c &nbsp; &nbsp; &nbsp; &nbsp;2008-04-24 13:36:39.000000000 +0200<br>
@@ -108,7 +108,7 @@<br>
<br>
<br>
&nbsp;int exitstatus = 0; /* Exit Status */<br>
-static void execute ();<br>
+static void execute (char *, char *);<br>
<br>
<br>
&nbsp;int main (<br>
diff -r -p -u ../torque-2.3.0.orig//src/cmds/qstop.c .//src/cmds/qstop.c<br>
--- ../torque-2.3.0.orig//src/cmds/qstop.c &nbsp; &nbsp; &nbsp;2008-03-06 22:28:55.000000000 +0100<br>
+++ .//src/cmds/qstop.c 2008-04-24 13:36:48.000000000 +0200<br>
@@ -108,7 +108,7 @@<br>
<br>
<br>
&nbsp;int exitstatus = 0; /* Exit Status */<br>
-static void execute ();<br>
+static void execute (char *, char *);<br>
<br>
<br>
&nbsp;int main ( argc, argv )<br>
diff -r -p -u ../torque-2.3.0.orig//src/cmds/qterm.c .//src/cmds/qterm.c<br>
--- ../torque-2.3.0.orig//src/cmds/qterm.c &nbsp; &nbsp; &nbsp;2008-03-06 22:28:55.000000000 +0100<br>
+++ .//src/cmds/qterm.c 2008-04-24 13:37:00.000000000 +0200<br>
@@ -113,7 +113,7 @@<br>
<br>
&nbsp;int exitstatus = 0; /* Exit Status */<br>
<br>
-static void execute();<br>
+static void execute(int, char *);<br>
<br>
&nbsp;int main(<br>
<br>
diff -r -p -u ../torque-2.3.0.orig//src/include/md5.h .//src/include/md5.h<br>
--- ../torque-2.3.0.orig//src/include/md5.h &nbsp; &nbsp; 2008-03-06 22:28:54.000000000 +0100<br>
+++ .//src/include/md5.h &nbsp; &nbsp; &nbsp; &nbsp;2008-04-24 13:03:03.000000000 +0200<br>
@@ -55,9 +55,9 @@ typedef struct {<br>
 &nbsp; unsigned char digest[16]; &nbsp; &nbsp; /* actual digest after MD5Final call */<br>
&nbsp;} MD5_CTX;<br>
<br>
-void MD5Init ();<br>
-void MD5Update ();<br>
-void MD5Final ();<br>
+void MD5Init (MD5_CTX *);<br>
+void MD5Update (MD5_CTX *, unsigned char *, unsigned int);<br>
+void MD5Final (MD5_CTX *);<br>
<br>
&nbsp;#define __MD5_INCLUDE__<br>
&nbsp;#endif /* __MD5_INCLUDE__ */<br>
diff -r -p -u ../torque-2.3.0.orig//src/include/mom_func.h .//src/include/mom_func.h<br>
--- ../torque-2.3.0.orig//src/include/mom_func.h &nbsp; &nbsp; &nbsp; &nbsp;2008-03-06 22:28:54.000000000 +0100<br>
+++ .//src/include/mom_func.h &nbsp; 2008-04-24 12:52:13.000000000 +0200<br>
@@ -149,7 +149,7 @@ extern void &nbsp;set_globid A_((job *, struc<br>
&nbsp;extern int &nbsp; set_mach_vars A_((job *, struct var_table *));<br>
&nbsp;extern char *set_shell A_((job *, struct passwd *));<br>
&nbsp;extern void &nbsp;start_exec A_((job *));<br>
-extern int &nbsp; open_master();<br>
+extern int &nbsp; open_master(char **);<br>
&nbsp;extern int &nbsp; open_slave();<br>
&nbsp;extern char *rcvttype A_((int));<br>
&nbsp;extern int &nbsp; rcvwinsize A_((int));<br>
diff -r -p -u ../torque-2.3.0.orig//src/include/qmgr.h .//src/include/qmgr.h<br>
--- ../torque-2.3.0.orig//src/include/qmgr.h &nbsp; &nbsp;2008-03-06 22:28:54.000000000 +0100<br>
+++ .//src/include/qmgr.h &nbsp; &nbsp; &nbsp; 2008-04-24 14:14:18.000000000 +0200<br>
@@ -166,30 +166,30 @@ struct objname<br>
<br>
<br>
&nbsp;/* prototypes */<br>
-struct objname *commalist2objname();<br>
-struct server *find_server();<br>
+struct objname *commalist2objname(char *, int);<br>
+struct server *find_server(char *);<br>
&nbsp;struct server *make_connection();<br>
&nbsp;struct server *new_server();<br>
&nbsp;struct objname *new_objname();<br>
-struct objname *strings2objname( );<br>
+struct objname *strings2objname(char **, int, int);<br>
&nbsp;struct objname *default_server_name();<br>
-struct objname *temp_objname();<br>
-int parse_request( );<br>
-void clean_up_and_exit();<br>
-void freeattrl();<br>
-void freeattropl();<br>
-void pstderr_big();<br>
-void free_objname_list();<br>
-void free_server();<br>
-void free_objname();<br>
+struct objname *temp_objname(char *, char *, struct server *);<br>
+int parse_request(char *, char [][MAX_REQ_WORD_LEN]);<br>
+void clean_up_and_exit(int);<br>
+void freeattrl(struct attrl *);<br>
+void freeattropl(struct attropl *);<br>
+void pstderr_big(char *, char*, char *);<br>
+void free_objname_list(struct objname *);<br>
+void free_server(struct server *);<br>
+void free_objname(struct objname *);<br>
&nbsp;void close_non_ref_servers();<br>
-int connect_servers();<br>
-int set_active();<br>
-int get_request();<br>
-int parse();<br>
-int execute();<br>
-int is_attr();<br>
-int is_valid_object();<br>
+int connect_servers(struct objname *, int);<br>
+int set_active(int, struct objname *);<br>
+int get_request(char *);<br>
+int parse(char *, int *, int *, char **, struct attropl **);<br>
+int execute(int, int, int, char *, struct attropl *);<br>
+int is_attr(int, char *, int);<br>
+int is_valid_object(struct objname *, int);<br>
&nbsp;void disconnect_from_server();<br>
<br>
<br>
diff -r -p -u ../torque-2.3.0.orig//src/lib/Libnet/md5.c .//src/lib/Libnet/md5.c<br>
--- ../torque-2.3.0.orig//src/lib/Libnet/md5.c &nbsp;2008-03-06 22:29:09.000000000 +0100<br>
+++ .//src/lib/Libnet/md5.c &nbsp; &nbsp; 2008-04-24 10:27:41.000000000 +0200<br>
@@ -49,7 +49,7 @@<br>
 &nbsp;*/<br>
<br>
&nbsp;/* forward declaration */<br>
-static void Transform ();<br>
+static void Transform (UINT4 *, UINT4 *);<br>
<br>
&nbsp;static unsigned char PADDING[64] = {<br>
 &nbsp; 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br>
diff -r -p -u ../torque-2.3.0.orig//src/lib/Libnet/net_server.c .//src/lib/Libnet/net_server.c<br>
--- ../torque-2.3.0.orig//src/lib/Libnet/net_server.c &nbsp; 2008-03-06 22:29:09.000000000 +0100<br>
+++ .//src/lib/Libnet/net_server.c &nbsp; &nbsp; &nbsp;2008-04-24 11:08:33.000000000 +0200<br>
@@ -115,7 +115,7 @@ extern int LOGLEVEL;<br>
<br>
&nbsp;extern void process_request A_((int));<br>
<br>
-extern time_t time();<br>
+extern time_t time(time_t *);<br>
<br>
&nbsp;/* Global Data (I wish I could make it private to the library, sigh, but<br>
 &nbsp;* C don&#39;t support that scope of control.)<br>
diff -r -p -u ../torque-2.3.0.orig//src/resmom/start_exec.c .//src/resmom/start_exec.c<br>
--- ../torque-2.3.0.orig//src/resmom/start_exec.c &nbsp; &nbsp; &nbsp; 2008-03-06 22:29:05.000000000 +0100<br>
+++ .//src/resmom/start_exec.c &nbsp;2008-04-24 13:11:05.000000000 +0200<br>
@@ -4644,9 +4644,9 @@ void start_exec(<br>
<br>
 &nbsp; &nbsp; MD5Init(&amp;c);<br>
<br>
- &nbsp; &nbsp;MD5Update(&amp;c,(caddr_t)&amp;loopcnt,sizeof(loopcnt));<br>
+ &nbsp; &nbsp;MD5Update(&amp;c,(unsigned char *)&amp;loopcnt,sizeof(loopcnt));<br>
<br>
- &nbsp; &nbsp;MD5Update(&amp;c,(caddr_t)pjob,sizeof(job));<br>
+ &nbsp; &nbsp;MD5Update(&amp;c,(unsigned char *)pjob,sizeof(job));<br>
<br>
 &nbsp; &nbsp; MD5Final(&amp;c);<br>
<br>
diff -r -p -u ../torque-2.3.0.orig//src/server/req_stat.c .//src/server/req_stat.c<br>
--- ../torque-2.3.0.orig//src/server/req_stat.c 2008-03-06 22:29:06.000000000 +0100<br>
+++ .//src/server/req_stat.c &nbsp; &nbsp;2008-04-24 11:56:13.000000000 +0200<br>
@@ -119,7 +119,7 @@ extern attribute_def &nbsp;node_attr_def[];<br>
&nbsp;extern int &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;pbs_mom_port;<br>
&nbsp;extern time_t &nbsp; &nbsp; &nbsp; &nbsp; time_now;<br>
&nbsp;extern char &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*msg_init_norerun;<br>
-extern struct pbsnode *tfind_addr();<br>
+extern struct pbsnode *tfind_addr(const u_long);<br>
&nbsp;extern int &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LOGLEVEL;<br>
<br>
&nbsp;/* Extern Functions */<br>
<br>_______________________________________________<br>
torquedev mailing list<br>
<a href="mailto:torquedev@supercluster.org">torquedev@supercluster.org</a><br>
<a href="http://www.supercluster.org/mailman/listinfo/torquedev" target="_blank">http://www.supercluster.org/mailman/listinfo/torquedev</a><br>
<br></blockquote></div><br>