Browse Source

Merge branch 'candidate-6.2.8' into candidate-6.4.0

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman 8 years ago
parent
commit
cbe24fbcb5

+ 60 - 0
.github/PULL_REQUEST_TEMPLATE.md

@@ -0,0 +1,60 @@
+<!-- Thank you for submitting a pull request to the HPCC project
+
+ PLEASE READ the following before proceeding.
+
+ Lines in comments may be deleted from the comment before you submit.
+ Other lines should be modified appropriately and left in place.
+
+ This project only accepts pull requests related to open JIRA issues.
+ If suggesting a new feature or change, please discuss it in a JIRA issue first.
+ If fixing a bug, there should be an issue describing it with steps to reproduce.
+ The title line of the pull request (and of each commit within it) should refer to the
+ associated issue using the format:
+
+ HPCC-nnnnn Short description of issue
+
+ This will allow the Jira ticket to be automatically updated to refer to this pull request,and
+ and will ensure that the automatically-generated changelog is properly formatted.
+ Where a pull request contains a single commit the pull request title will be set automatically,
+ assuming that the commit has followed the proper guidelines.
+
+ Please go over all the following points, and put an `x` in all the boxes that apply. You may find
+ it easier to press the 'Create' button first then click on the checkboxes to edit the comment.
+-->
+
+## Type of change:
+- [ ] This change is a bug fix (non-breaking change which fixes an issue).
+- [ ] This change is a new feature (non-breaking change which adds functionality).
+- [ ] This change is a breaking change (fix or feature that will cause existing behavior to change).
+- [ ] This change alters the query API (existing queries will have to be recompiled)
+
+## Checklist:
+- [ ] My code follows the code style of this project.
+  - [ ] My code does not create any new warnings from compiler, build system, or lint.
+- [ ] My change requires a change to the documentation.
+  - [ ] I have updated the documentation accordingly, or...
+  - [ ] I have created a JIRA ticket to update the documentation.
+  - [ ] Any new interfaces or exported functions are appropriately commented.
+- [ ] I have read the CONTRIBUTORS document.
+- [ ] The change has been fully tested:
+  - [ ] I have added tests to cover my changes.
+  - [ ] All new and existing tests passed.
+  - [ ] I have checked that this change does not introduce memory leaks.
+  - [ ] I have used Valgrind or similar tools to check for potential issues.
+- [ ] I have given due consideration to all of the following potential concerns:
+  - [ ] Scalability
+  - [ ] Performance
+  - [ ] Security
+  - [ ] Thread-safety
+  - [ ] Premature optimization
+  - [ ] Existing deployed queries will not be broken
+  - [ ] This change fixes the problem, not just the symptom
+  - [ ] The target branch of this pull request is appropriate for such a change.
+- [ ] There are no similar instances of the same problem that should be addressed
+  - [ ] I have addressed them here
+  - [ ] I have raised JIRA issues to address them separately
+
+## Testing:
+<!-- Please describe how this change has been tested.-->
+
+<!-- Thank you for taking the time to submit this pull request and to answer all of the above-->

+ 7 - 12
esp/bindings/http/client/httpclient.cpp

@@ -60,15 +60,15 @@ IHttpClient* CHttpClientContext::createHttpClient(const char* proxy, const char*
         CriticalBlock b(m_sscrit);
         if(m_ssctx.get() == NULL)
         {
+            StringBuffer libName;
+            IEspPlugin *pplg = loadPlugin(libName.append(SharedObjectPrefix).append(SSLIB).append(SharedObjectExtension));
+            if (!pplg)
+                throw MakeStringException(-1, "dll/shared-object %s can't be loaded", libName.str());
+
             if(m_config.get() == NULL)
             {
                 createSecureSocketContext_t xproc = NULL;
-                IEspPlugin *pplg = loadPlugin(SSLIB);
-                if (pplg)
-                    xproc = (createSecureSocketContext_t) pplg->getProcAddress("createSecureSocketContext");
-                else
-                    throw MakeStringException(-1, "dll/shared-object %s can't be loaded", SSLIB);
-
+                xproc = (createSecureSocketContext_t) pplg->getProcAddress("createSecureSocketContext");
                 if (xproc)
                     m_ssctx.setown(xproc(ClientSocket));
                 else
@@ -77,12 +77,7 @@ IHttpClient* CHttpClientContext::createHttpClient(const char* proxy, const char*
             else
             {
                 createSecureSocketContextEx2_t xproc = NULL;
-                IEspPlugin *pplg = loadPlugin(SSLIB);
-                if (pplg)
-                    xproc = (createSecureSocketContextEx2_t) pplg->getProcAddress("createSecureSocketContextEx2");
-                else
-                    throw MakeStringException(-1, "dll/shared-object %s can't be loaded", SSLIB);
-
+                xproc = (createSecureSocketContextEx2_t) pplg->getProcAddress("createSecureSocketContextEx2");
                 if (xproc)
                     m_ssctx.setown(xproc(m_config.get(),ClientSocket));
                 else

+ 1 - 1
esp/platform/espplugin.ipp

@@ -51,7 +51,7 @@ public:
         SharedObject::load(m_plugin.str(), true);       // I'm not really sure what this should be - if global (as default) there will be clashes between multiple dloads
         if (!loaded())
         {
-            ERRLOG("ESP Failed to load shared object (%s)", m_plugin.str());    
+            ERRLOG("Failed to load shared object (%s)", m_plugin.str());
             return false;
         }
         return true;

+ 1 - 5
system/security/securesocket/securesocket.hpp

@@ -31,11 +31,7 @@
 #include "jsocket.hpp"
 #include "jptree.hpp"
 
-#ifdef _WIN32
-#define SSLIB "securesocket.dll"
-#else
-#define SSLIB "libsecuresocket.so"
-#endif
+#define SSLIB "securesocket"
 
 enum SecureSocketType
 {

+ 9 - 1
thorlcr/msort/tsorts.cpp

@@ -997,7 +997,15 @@ public:
         assertex(transferserver.get()!=NULL);
         if (intercept)
             rowArray.kill(); // don't need samples any more. All merged from disk.
-        transferserver->merge(mapsize,map,mapupper,num,endpoints,partno);
+        try
+        {
+            transferserver->merge(mapsize,map,mapupper,num,endpoints,partno);
+        }
+        catch (IException *e)
+        {
+            startmergesem.interrupt(e);
+            stop();
+        }
     }
     virtual void SingleMerge()
     {