Browse Source

Merge branch 'candidate-7.0.4' into candidate-7.2.0

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman 6 years ago
parent
commit
68d62a9213

+ 1 - 1
cmake_modules/dependencies/artful.cmake

@@ -2,5 +2,5 @@
 SET_DEPENDENCIES ( CPACK_DEBIAN_PACKAGE_DEPENDS g++ openssh-client openssh-server expect rsync libapr1 python psmisc curl )
 
 if(SPARK)
-    SET_DEPENDENCIES ( CPACK_DEBIAN_PACKAGE_DEPENDS "openjdk-8-jdk | openjdk-9-jdk" )
+    SET_DEPENDENCIES ( CPACK_DEBIAN_PACKAGE_DEPENDS "openjdk-8-jdk" )
 endif(SPARK)

+ 1 - 1
cmake_modules/dependencies/bionic.cmake

@@ -2,5 +2,5 @@
 SET_DEPENDENCIES ( CPACK_DEBIAN_PACKAGE_DEPENDS g++ openssh-client openssh-server expect rsync libapr1 python psmisc curl )
 
 if(SPARK)
-    SET_DEPENDENCIES ( CPACK_DEBIAN_PACKAGE_DEPENDS "openjdk-8-jdk | openjdk-11-jdk" )
+    SET_DEPENDENCIES ( CPACK_DEBIAN_PACKAGE_DEPENDS "openjdk-8-jdk" )
 endif(SPARK)

+ 1 - 1
cmake_modules/dependencies/xenial.cmake

@@ -2,5 +2,5 @@
 SET_DEPENDENCIES ( CPACK_DEBIAN_PACKAGE_DEPENDS g++ openssh-client openssh-server expect rsync libapr1 python psmisc curl )
 
 if(SPARK)
-    SET_DEPENDENCIES ( CPACK_DEBIAN_PACKAGE_DEPENDS "openjdk-8-jdk | openjdk-9-jdk" )
+    SET_DEPENDENCIES ( CPACK_DEBIAN_PACKAGE_DEPENDS "openjdk-8-jdk" )
 endif(SPARK)

+ 1 - 0
docs/CMakeLists.txt

@@ -38,6 +38,7 @@ set (PORTAL_GEN_XSL ${CMAKE_CURRENT_BINARY_DIR}/BuildTools/PortalGen.xsl)
 
 if ( "${HPCC_MATURITY}" STREQUAL "release" )
 	set (DOC_VERSION "${DOC_VERSION}-${HPCC_SEQUENCE}")
+	set (DOC_VERSION_ONLY "${DOC_VERSION}")
 else()
    if (DOCTAG)
 	set (DOC_VERSION "${majorver}-${minorver}-${DOCTAG}")

+ 1 - 0
ecl/hql/hqlgram2.cpp

@@ -11198,6 +11198,7 @@ static void getTokenText(StringBuffer & msg, int token)
     case ONLY: msg.append("ONLY"); break;
     case ONWARNING: msg.append("ONWARNING"); break;
     case OPT: msg.append("OPT"); break;
+    case __OPTION__: msg.append("__OPTION__"); break;
     case OR : msg.append("OR"); break;
     case ORDER: msg.append("ORDER"); break;
     case ORDERED: msg.append("ORDERED"); break;

+ 1 - 0
ecl/hql/reservedwords.cpp

@@ -378,6 +378,7 @@ static const char * eclReserved12[] = {//Attributes
     "notrim",
     "only",
     "opt",
+    "__option__",
     "out",
     "outer",
     "packed",

+ 3 - 2
esp/bindings/http/platform/httpprot.cpp

@@ -579,9 +579,10 @@ void CPooledHttpThread::threadmain()
 
     try
     {
-        if (!keepAlive && m_socket != nullptr)
+        if (m_socket != nullptr)
         {
-            m_socket->shutdown(SHUTDOWN_WRITE);
+            if (!keepAlive)
+                m_socket->shutdown(SHUTDOWN_WRITE);
             m_socket.clear();
         }
     }

+ 3 - 2
esp/services/ws_machine/ws_machineService.cpp

@@ -908,7 +908,8 @@ unsigned Cws_machineEx::addRoxieStateHash(const char* hash, StateHashes& stateHa
     {
         //Add a new 'StateHash'. Set its hashID to totalUniqueHashes and set its count to 1.
         hashID = totalUniqueHashes;
-        stateHashes.setValue(hash, new CStateHash(hashID, 1));
+        Owned<IStateHash> newStateHash = new CStateHash(hashID, 1);
+        stateHashes.setValue(hash, newStateHash);
         totalUniqueHashes++;
     }
     return hashID;
@@ -1180,7 +1181,7 @@ int Cws_machineEx::runCommand(IEspContext& context, const char* sAddress, const
         if (command.length() < 1)
             return exitCode;
 
-        IFRunSSH * connection = createFRunSSH();
+        Owned<IFRunSSH> connection = createFRunSSH();
         connection->init(command.str(),NULL,NULL,NULL,m_SSHConnectTimeoutSeconds,0);
         // executed as single connection
         connection->exec(IpAddress(sAddress),NULL,false);

+ 7 - 0
esp/src/eclwatch/DynamicESDLDefinitionQueryWidget.js

@@ -41,6 +41,13 @@ define([
             if (this.inherited(arguments))
                 return;
 
+            if (params.Id) {
+                this.grid.select(params.Id);
+                this.definitionWidget.init({
+                    Id: params.Id
+                });
+            }
+
             this._refreshActionState();
             this.refreshGrid();
             this.addContextMenuItems();

+ 48 - 23
esp/src/eclwatch/PackageMapQueryWidget.js

@@ -188,39 +188,64 @@ define([
                 theForm.set('action', action);
                 return true;
             },
+
             _onDelete: function (event) {
-                if (confirm('Delete selected packages?')) {
-                    var context = this;
-                    WsPackageMaps.deletePackageMap(this.packagesGrid.selection.getSelected()).then(function (response) {
-                        context.packagesGrid.rowSelectCell.toggleAllSelection(false);
-                        context.refreshGrid(response.DeletePackageResponse);
-                        return response;
-                    }, function (err) {
-                        context.showErrors(err);
-                        return err;
+                var context = this;
+                var selection = this.packagesGrid.getSelected();
+
+                if (confirm(this.i18n.DeleteSelectedPackages)) {
+                    arrayUtil.forEach(selection, function (item, idx) {
+                        WsPackageMaps.deletePackageMap({
+                            request: {
+                                PackageMap: item.Id,
+                                Target: item.Target,
+                                Process: item.Process
+                            }
+                        }).then(function(response){
+                            if (lang.exists("DeletePackageResponse.status", response)) {
+                                if (response.DeletePackageResponse.status.Code === 0) {
+                                    context.refreshGrid();
+                                }
+                            }
+                        });
                     });
                 }
             },
+
             _onActivate: function (event) {
                 var context = this;
-                WsPackageMaps.activatePackageMap(this.packagesGrid.selection.getSelected()).then(function (response) {
-                    context.packagesGrid.rowSelectCell.toggleAllSelection(false);
-                    context.refreshGrid();
-                    return response;
-                }, function (err) {
-                    context.showErrors(err);
-                    return err;
+                var selection = this.packagesGrid.getSelected();
+
+                WsPackageMaps.activatePackageMap({
+                    request: {
+                        Target: selection[0].Target,
+                        Process: selection[0].Process,
+                        PackageMap: selection[0].Id
+                    }
+                }).then(function (response){
+                    if (lang.exists("ActivatePackageResponse.status", response)) {
+                        if (response.ActivatePackageResponse.status.Code === 0) {
+                            context.refreshGrid();
+                        }
+                    }
                 });
             },
             _onDeactivate: function (event) {
                 var context = this;
-                WsPackageMaps.deactivatePackageMap(this.packagesGrid.selection.getSelected()).then(function (response) {
-                    context.packagesGrid.rowSelectCell.toggleAllSelection(false);
-                    context.refreshGrid();
-                    return response;
-                }, function (err) {
-                    context.showErrors(err);
-                    return err;
+                var selection = this.packagesGrid.getSelected();
+
+                WsPackageMaps.deactivatePackageMap({
+                    request: {
+                        Target: selection[0].Target,
+                        Process: selection[0].Process,
+                        PackageMap: selection[0].Id
+                    }
+                }).then(function (response){
+                    if (lang.exists("DeActivatePackageResponse.status", response)) {
+                        if (response.DeActivatePackageResponse.status.Code === 0) {
+                            context.refreshGrid();
+                        }
+                    }
                 });
             },
 

+ 1 - 0
esp/src/eclwatch/nls/hpcc.js

@@ -147,6 +147,7 @@ define({root:
     DeleteSelectedDefinitions: "Delete selected definitions?",
     DeleteSelectedFiles: "Delete Selected Files?",
     DeleteSelectedGroups: "Delete selected group(s)?",
+    DeleteSelectedPackages:"Delete selected packages?",
     DeleteSelectedPermissions: "Delete selected permission(s)?",
     DeleteSelectedQueries: "Delete Selected Queries?",
     DeleteSelectedUsers: "Delete selected user(s)?",

+ 9 - 31
esp/src/src/WsPackageMaps.ts

@@ -2,7 +2,6 @@ import * as lang from "dojo/_base/lang";
 import "dojo/i18n";
 // @ts-ignore
 import * as nlsHPCC from "dojo/i18n!hpcc/nls/hpcc";
-import * as arrayUtil from "dojo/_base/array";
 
 import * as ESPRequest from "./ESPRequest";
 
@@ -108,35 +107,14 @@ export function validatePackage(params) {
     });
 }
 
-export function activatePackageMap(packageMaps) {
-    return ESPRequest.send("WsPackageProcess", "ActivatePackage", {
-        request: {
-            Target: packageMaps[0].Target,
-            Process: packageMaps[0].Process,
-            PackageMap: packageMaps[0].Id
-        }
-    });
-}
-export function deactivatePackageMap(packageMaps) {
-    return ESPRequest.send("WsPackageProcess", "DeActivatePackage", {
-        request: {
-            Target: packageMaps[0].Target,
-            Process: packageMaps[0].Process,
-            PackageMap: packageMaps[0].Id
-        }
-    });
+export function activatePackageMap(params) {
+    return ESPRequest.send("WsPackageProcess", "ActivatePackage", params);
 }
-export function deletePackageMap(packageMaps) {
-    var request = {};
-    arrayUtil.forEach(packageMaps, function (item, idx) {
-        request["PackageMaps.PackageMapEntry." + idx + ".Id"] = item.Id;
-        request["PackageMaps.PackageMapEntry." + idx + ".Target"] = item.Target;
-        request["PackageMaps.PackageMapEntry." + idx + ".Process"] = item.Process;
-    });
-    lang.mixin(request, {
-        "PackageMaps.PackageMapEntry.itemcount": packageMaps.length
-    });
-    return ESPRequest.send("WsPackageProcess", "DeletePackage", {
-        request: request
-    });
+
+export function deactivatePackageMap(params) {
+    return ESPRequest.send("WsPackageProcess", "DeActivatePackage", params);
 }
+
+export function deletePackageMap(params) {
+    return ESPRequest.send("WsPackageProcess", "DeletePackage", params);
+}

+ 7 - 0
system/jlib/jfile.cpp

@@ -6240,6 +6240,13 @@ public:
 #else
         close(hfile);
 #endif
+#if defined(__linux__)
+        if (ptr)
+        {
+            munmap(realptr(),realsize());
+            ptr = NULL;
+        }
+#endif
     }
 
     byte *base()                        { return ptr; }

+ 5 - 1
testing/unittests/unittests.cpp

@@ -183,9 +183,13 @@ int main(int argc, char* argv[])
 
     if (useDefaultLocations)
     {
+        StringBuffer binDir;
+        makeAbsolutePath(argv[0], binDir, true);
+
         // Default library location depends on the executable location...
         StringBuffer dir;
-        splitFilename(argv[0], &dir, &dir, NULL, NULL);
+        splitFilename(binDir.str(), &dir, &dir, NULL, NULL);
+
         dir.replaceString(PATHSEPSTR "bin" PATHSEPSTR, PATHSEPSTR "lib" PATHSEPSTR);
         if (verbose)
             DBGLOG("Adding default library location %s", dir.str());