Explorar el Código

Merge branch 'candidate-6.2.10' into candidate-6.4.0

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman hace 8 años
padre
commit
46334351ac

+ 6 - 4
docs/DynamicESDL/DynamicESDL_Includer.xml

@@ -499,7 +499,7 @@ OUTPUT(ds_out, NAMED('AddThisResponse')); </programlisting>
             <para>Create the configuration XML file</para>
 
             <programlisting>&lt;Methods&gt;
-  &lt;Method name="AddThis" url="&lt;RoxieIP&gt;:9876" querytype="roxie" queryname="AddThis"&gt;
+  &lt;Method name="AddThis" url="&lt;RoxieIPRange&gt;:9876" querytype="roxie" queryname="AddThis"&gt;
     &lt;!--Optional Method Context Information start--&gt;
     &lt;Gateways&gt;
        &lt;Gateway name="mygateway" url="1.1.1.1:2222/someservice/somemethod/&gt;
@@ -510,9 +510,11 @@ OUTPUT(ds_out, NAMED('AddThisResponse')); </programlisting>
 &lt;/Methods&gt;</programlisting>
 
             <para>Where name is the name of your method(s) and url is the
-            Roxie server's IP and port and queryname is the published name
-            (alias) of the query. For a multi-node Roxie, you can use a range
-            in the form of nnn.nnn.nnn.n-nnn.</para>
+            Roxie server's IP address and port, finally queryname is the
+            published name (alias) of the query. For a multi-node Roxie, you
+            can use a range in the form of nnn.nnn.nnn.n-nnn. The ESP
+            schedules requests to the target Roxie in a round-robin
+            fashion.</para>
 
             <para>Optionally, your method could include context information as
             illustrated in the above example. The context information should

+ 7 - 7
docs/HPCCClientTools/CT_Mods/CT_ESDL_CLI.xml

@@ -741,8 +741,8 @@
         syntax:</para>
 
         <programlisting format="linespecific">&lt;Methods&gt;
-  &lt;Method name="myMthd1" url="&lt;RoxieIP&gt;:9876/path?param=value" user="me" password="mypw"/&gt;
-  &lt;Method name="myMthd2" url="&lt;RoxieIP&gt;:9876/path?param=value" user="me" password="mypw"/&gt;
+  &lt;Method name="myMthd1" url="&lt;RoxieIPRange&gt;:9876/path?param=value" user="me" password="mypw"/&gt;
+  &lt;Method name="myMthd2" url="&lt;RoxieIPRange&gt;:9876/path?param=value" user="me" password="mypw"/&gt;
 &lt;/Methods&gt;</programlisting>
 
         <para><emphasis role="bold">Example:</emphasis></para>
@@ -763,7 +763,7 @@
           Binding.</para>
 
           <programlisting>&lt;Methods&gt; 
-  &lt;Method name="AddThis" url="&lt;RoxieIP&gt;:9876" querytype="roxie" queryname="AddThis"/&gt; 
+  &lt;Method name="AddThis" url="&lt;RoxieIPRange&gt;:9876" querytype="roxie" queryname="AddThis"/&gt; 
 &lt;/Methods&gt;</programlisting>
 
           <para>If this Method requires context information, for example about
@@ -771,7 +771,7 @@
           (&lt;Gateways&gt;...&lt;/Gateways&gt;) depicted as follows.</para>
 
           <programlisting>&lt;Methods&gt;
-  &lt;Method name="AddThis" url="&lt;RoxieIP&gt;:9876" querytype="roxie" queryname="AddThis"&gt;
+  &lt;Method name="AddThis" url="&lt;RoxieIPRange&gt;:9876" querytype="roxie" queryname="AddThis"&gt;
     &lt;!--Optional Method Context Information start--&gt;
     &lt;Gateways&gt;
       &lt;Gateway name="mygateway" url="1.1.1.1:2222/someservice/somemethod/&gt;
@@ -805,7 +805,7 @@
       &lt;ESP&gt;
        &lt;ServiceName&gt;wsmath&lt;/ServiceName&gt;
        &lt;Config&gt;
-        &lt;Method name="AddThis" url="&lt;RoxieIP&gt;:9876" querytype="roxie" queryname="AddThis"&gt;
+        &lt;Method name="AddThis" url="&lt;RoxieIPRange&gt;:9876" querytype="roxie" queryname="AddThis"&gt;
           &lt;Gateways&gt;
             &lt;Gateway name="mygateway" url="1.1.1.1:2222/someservice/somemethod/&gt;
             &lt;Gateway name="anothergateway" url="2.2.2.2:9999/someservice/somemethod/&gt;
@@ -1116,8 +1116,8 @@
         syntax:</para>
 
         <programlisting>&lt;Methods&gt;
-  &lt;Method name="myMthd1" url="http://&lt;RoxieIP&gt;:9876/somepath?someparam=value" user="me" password="mypw"/&gt;
-  &lt;Method name="myMthd2" url="http://&lt;RoxieIP&gt;:9876/somepath?someparam=value" user="me" password="mypw"/&gt;
+  &lt;Method name="myMthd1" url="http://&lt;RoxieIPRange&gt;:9876/path?param=value" user="me" password="mypw"/&gt;
+  &lt;Method name="myMthd2" url="http://&lt;RoxieIPRange&gt;:9876/path?param=value" user="me" password="mypw"/&gt;
 &lt;/Methods&gt;</programlisting>
 
         <para><emphasis role="bold">Example:</emphasis></para>

+ 3 - 1
roxie/roxiemem/roxiemem.cpp

@@ -5757,9 +5757,11 @@ void DataBufferBottom::released()
     unsigned expected = 0;
     if (count.compare_exchange_strong(expected, DEAD_PSEUDO_COUNT, std::memory_order_release))
     {
+        //Need to save the value of owner because the object can be freed as soon as okToFree is set
+        CDataBufferManager * savedOwner = owner;
         //No acquire fence required since the following code doesn't read anything from the object
         okToFree.store(true, std::memory_order_release);
-        owner->freePending.store(true, std::memory_order_release);
+        savedOwner->freePending.store(true, std::memory_order_release);
     }
 }