Ver código fonte

Merge branch 'candidate-6.0.8' into candidate-6.2.0

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman 8 anos atrás
pai
commit
7e618cc864

+ 80 - 76
docs/ECLLanguageReference/ECLR_mods/BltInFunc-CRON.xml

@@ -3,104 +3,105 @@
 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 <sect1 id="CRON">
   <title>CRON</title>
-<informalexample id="SchCRON">
-  <para><emphasis role="bold">CRON<indexterm>
-      <primary>CRON</primary>
-    </indexterm><indexterm>
-      <primary>CRON function</primary>
-    </indexterm>(</emphasis><emphasis> time </emphasis><emphasis
-  role="bold">)</emphasis></para>
 
-  <para><informaltable colsep="1" frame="all" rowsep="1">
-      <tgroup cols="2">
-        <colspec colwidth="79.25pt" />
+  <informalexample id="SchCRON">
+    <para><emphasis role="bold">CRON<indexterm>
+        <primary>CRON</primary>
+      </indexterm><indexterm>
+        <primary>CRON function</primary>
+      </indexterm>(</emphasis><emphasis> time </emphasis><emphasis
+    role="bold">)</emphasis></para>
 
-        <colspec colwidth="309.55pt" />
+    <para><informaltable colsep="1" frame="all" rowsep="1">
+        <tgroup cols="2">
+          <colspec colwidth="79.25pt" />
 
-        <tbody>
-          <row>
-            <entry><emphasis>time</emphasis></entry>
+          <colspec colwidth="309.55pt" />
 
-            <entry>A string expression containing a unix-standard cron
-            time.</entry>
-          </row>
+          <tbody>
+            <row>
+              <entry><emphasis>time</emphasis></entry>
 
-          <row>
-            <entry>Return:</entry>
+              <entry>A string expression containing a unix-standard cron
+              time.</entry>
+            </row>
 
-            <entry>CRON defines a single timer event.</entry>
-          </row>
-        </tbody>
-      </tgroup>
-    </informaltable></para>
+            <row>
+              <entry>Return:</entry>
 
-  <para>The <emphasis role="bold">CRON</emphasis> function defines a timer
-  event for use within the WHEN workflow service<indexterm>
-      <primary>WHEN workflow service</primary>
-    </indexterm> or WAIT function. This is synonymous with EVENT(‘CRON’,
-  <emphasis>time</emphasis>).</para>
+              <entry>CRON defines a single timer event.</entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </informaltable></para>
 
-  <para>The <emphasis>time </emphasis>parameter is unix-standard cron time,
-  expressed in UTC (aka Greenwich Mean Time) as a string containing the
-  following, space-delimited components:</para>
+    <para>The <emphasis role="bold">CRON</emphasis> function defines a timer
+    event for use within the WHEN workflow service<indexterm>
+        <primary>WHEN workflow service</primary>
+      </indexterm> or WAIT function. This is synonymous with EVENT(‘CRON’,
+    <emphasis>time</emphasis>).</para>
 
-  <para><emphasis>minute hour dom month dow</emphasis></para>
+    <para>The <emphasis>time </emphasis>parameter is unix-standard cron time,
+    expressed in UTC (aka Greenwich Mean Time) as a string containing the
+    following, space-delimited components:</para>
 
-  <para><informaltable colsep="1" frame="all" rowsep="1">
-      <tgroup cols="2">
-        <colspec colwidth="77.85pt" />
+    <para><emphasis>minute hour dom month dow</emphasis></para>
 
-        <colspec />
+    <para><informaltable colsep="1" frame="all" rowsep="1">
+        <tgroup cols="2">
+          <colspec colwidth="77.85pt" />
 
-        <tbody>
-          <row>
-            <entry><emphasis>minute</emphasis></entry>
+          <colspec />
 
-            <entry>An integer value for the minute of the hour. Valid values
-            are from 0 to 59.</entry>
-          </row>
+          <tbody>
+            <row>
+              <entry><emphasis>minute</emphasis></entry>
 
-          <row>
-            <entry><emphasis>hour</emphasis></entry>
+              <entry>An integer value for the minute of the hour. Valid values
+              are from 0 to 59.</entry>
+            </row>
 
-            <entry>An integer value for the hour. Valid values are from 0 to
-            23 (using the 24 hour clock).</entry>
-          </row>
+            <row>
+              <entry><emphasis>hour</emphasis></entry>
 
-          <row>
-            <entry><emphasis>dom</emphasis></entry>
+              <entry>An integer value for the hour. Valid values are from 0 to
+              23 (using the 24 hour clock).</entry>
+            </row>
 
-            <entry>An integer value for the day of the month. Valid values are
-            from 0 to 31.</entry>
-          </row>
+            <row>
+              <entry><emphasis>dom</emphasis></entry>
 
-          <row>
-            <entry><emphasis>month</emphasis></entry>
+              <entry>An integer value for the day of the month. Valid values
+              are from 1 to 31.</entry>
+            </row>
 
-            <entry>An integer value for the month. Valid values are from 0 to
-            12.</entry>
-          </row>
+            <row>
+              <entry><emphasis>month</emphasis></entry>
 
-          <row>
-            <entry><emphasis>dow</emphasis></entry>
+              <entry>An integer value for the month. Valid values are from 1
+              to 12.</entry>
+            </row>
 
-            <entry>An integer value for the day of the week. Valid values are
-            from 0 to 7 (where both 0 and 7 represent Sunday).</entry>
-          </row>
-        </tbody>
-      </tgroup>
-    </informaltable></para>
+            <row>
+              <entry><emphasis>dow</emphasis></entry>
 
-  <para>Any <emphasis>time</emphasis> component that you do not want to pass
-  is replaced by an asterisk (*). You may define ranges of times using a dash
-  (-), lists using a comma (,), and ‘once every n’ using a slash (/). For
-  example, 6-18/3 in the hour field will fire the timer every three hours
-  between 6am and 6pm, and 0-6/3,18-23/3 will fire the timer every three hours
-  between 6pm and 6am.</para>
+              <entry>An integer value for the day of the week. Valid values
+              are from 0 to 6 (where 0 represents Sunday).</entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </informaltable></para>
 
-  <para>Example:</para>
+    <para>Any <emphasis>time</emphasis> component that you do not want to pass
+    is replaced by an asterisk (*). You may define ranges of times using a
+    dash (-), lists using a comma (,), and ‘once every n’ using a slash (/).
+    For example, 6-18/3 in the hour field will fire the timer every three
+    hours between 6am and 6pm, and 18-21/3,0-6/3 will fire the timer every
+    three hours between 6pm and 6am.</para>
 
-  <programlisting>EXPORT events := MODULE
+    <para>Example:</para>
+
+    <programlisting>EXPORT events := MODULE
   EXPORT dailyAtMidnight := CRON('0 0 * * *');
   EXPORT dailyAt( INTEGER hour,
    INTEGER minute=0) :=
@@ -114,6 +115,9 @@ BUILD(teenagers) : WHEN(events.dailyAtMidnight);
 BUILD(oldies)    : WHEN(events.dailyAt(6));
 BUILD(NewStuff)    : WHEN(events.EveryThreeHours);
 </programlisting>
-</informalexample>
-  <para>See Also: <link linkend="EVENT">EVENT</link>, <link linkend="WHEN">WHEN</link>, <link linkend="WAIT">WAIT</link>, <link linkend="NOTIFY">NOTIFY</link></para>
+  </informalexample>
+
+  <para>See Also: <link linkend="EVENT">EVENT</link>, <link
+  linkend="WHEN">WHEN</link>, <link linkend="WAIT">WAIT</link>, <link
+  linkend="NOTIFY">NOTIFY</link></para>
 </sect1>

+ 13 - 4
docs/ECLLanguageReference/ECLR_mods/ExpressionsandOperatos.xml

@@ -219,9 +219,7 @@
         <primary>comparison operator</primary>
       </indexterm>s</emphasis> are supported:</para>
 
-    <para>Equivalence<indexterm>
-        <primary>Equivalence</primary>
-      </indexterm> = returns TRUE or FALSE</para>
+    <para></para>
 
     <informaltable colsep="1" frame="all" rowsep="1">
       <tgroup align="left" cols="3">
@@ -231,6 +229,16 @@
 
         <tbody>
           <row>
+            <entry>Equivalence<indexterm>
+                <primary>Equivalence</primary>
+              </indexterm> </entry>
+
+            <entry>=</entry>
+
+            <entry>returns TRUE or FALSE. </entry>
+          </row>
+
+          <row>
             <entry>Not Equal <indexterm>
                 <primary>Not Equal</primary>
               </indexterm></entry>
@@ -304,6 +312,7 @@
     <para>The Greater Than or Equal operator <emphasis
     role="underline">must</emphasis> have the Greater Than (&gt;) sign first.
     For the expression a &lt;=&gt; b, the Equivalence Comparison operator
-    returns -1 if a&lt;b, 0 if a=b, and 1 if a&gt;b.</para>
+    returns -1 if a&lt;b, 0 if a=b, and 1 if a&gt;b. When STRINGs are compared
+    for equivalence, trailing spaces are ignored.</para>
   </sect2>
 </sect1>

+ 30 - 8
docs/ECLWatch/ECLWa_mods/ECLWatchSrc.xml

@@ -345,13 +345,10 @@
       <sect2 id="ECLWatch_Workunit_Details" role="brk">
         <title role="brk">Workunit Details</title>
 
-        <para>The Workunit Details page provides more information about a
+        <para>The Workunit Details page provides more information about the
         workunit. You can see more specific information about the selected
         workunit by selecting the various Workunit Details tabs.</para>
 
-        <para>You can also perform certain actions on the selected workunit
-        using the Workunit Action buttons.</para>
-
         <para><figure>
             <title>Workunit Details</title>
 
@@ -363,10 +360,9 @@
             </mediaobject>
           </figure></para>
 
-        <para>Workunit details Action Buttons allow you to perform an action
-        on the selected workunit.</para>
-
-        <para>Using the Workunit Action Buttons you can:</para>
+        <para>The Workunit Details Action Buttons allow you to perform actions
+        on the selected workunit. Press the corresponding Action button to
+        allow you to perform the following actions. </para>
 
         <itemizedlist>
           <listitem>
@@ -429,6 +425,12 @@
             shared. This is useful for troubleshooting and bug
             reporting.</para>
           </listitem>
+
+          <listitem>
+            <para><emphasis role="bold">Slave Logs</emphasis> - Download the
+            logs for the specified Thor cluster. This is useful for
+            troubleshooting any Thor issues.</para>
+          </listitem>
         </itemizedlist>
 
         <!-- added WU Details stuff here -->
@@ -557,6 +559,26 @@
           personally identifiable information (PII).</para>
         </sect3>
 
+        <sect3 id="ECLWatchSlaveLogDialog">
+          <title>Slave Logs</title>
+
+          <figure>
+            <title>The Slave Logs Dialog</title>
+
+            <mediaobject>
+              <imageobject>
+                <imagedata fileref="../../images/ECLWASL01.jpg" />
+              </imageobject>
+            </mediaobject>
+          </figure>
+
+          <para>The <emphasis role="bold">Slave Logs</emphasis> action button
+          opens a dialog where you can choose to download the logs for a
+          specified Thor cluster. You can select the cluster, a specific Slave
+          number, and the log file format (plain or compressed). This is
+          useful for troubleshooting any Thor issues.</para>
+        </sect3>
+
         <sect3 id="ECLWatch_ECLWorkunitsOutputsTab" role="brk">
           <title>Outputs tab</title>
 

BIN
docs/images/ECLWASL01.jpg


+ 4 - 2
system/jlib/jdebug.cpp

@@ -2197,8 +2197,8 @@ public:
             {
                 unsigned queue = strtoul(cols.item(queueCol), NULL, 16);
                 unsigned drops = 0;
-                if (dropsCol)
-                    drops =  strtoul(cols.item(dropsCol), NULL, 10);
+                if (dropsCol >= 0)
+                    drops = strtoul(cols.item(dropsCol), NULL, 10);
                 if (queue || drops)
                 {
                     unsigned port = strtoul(cols.item(portCol), NULL, 16);
@@ -2270,6 +2270,8 @@ public:
                         if (streq(columnNames.item(idx), "InErrors"))
                             inErrorsCol = idx;
                     }
+                    if (inErrorsCol == -1)
+                        break;
                 }
                 if (fgets(ln, sizeof(ln), netfp))
                 {