| Products | Versions |
|---|---|
| DataSynapse GridServer | 7.2.0 |
GridServer 7.2.0 Hotfix01 has been released. Here are the release notes:
================================================================================
Introduction
Hotfixes are cumulative.
================================================================================
Affected Components for 7.2.0_hotfix01
The following components are updated by this hotfix:
.NET Specific
Admin Interface
Batch
C++ Specific
Database
Driver
Drivers-All
Engine
Engine Daemon
GUI
Java Specific
Manager
Python
REST API
Security
Tomcat
================================================================================
Closed Issues in 7.2.0_hotfix01 (This Release)
.NET Specific
GS-20398
An issue where a .NET driver configured with a blank DSSecondaryDirector repeatedly logged "LoginPlugin: Can't login to
PrivateBrokerConnection: Server URL must not be null" is fixed. A blank DSSecondaryDirector is now correctly treated as primary
Director only. Genuinely malformed Director URLs continue to be reported at startup.
GS-20393
A .NET client crash (ArgumentOutOfRangeException) that could occur under heavy concurrent logging is fixed. LogWriter.Flush() is now
thread-safe, consistent with Write() and WriteLine(). This applies to both the .NET driver and the .NET bridge.
GS-20391
An issue where .NET driver sessions on net8.0 are cancelled after brief network disruptions or missed Broker heartbeats
is fixed. The driver now reconnects and resubmits in-flight tasks automatically.
GS-20386
An issue where a short network interruption could cause .NET driver sessions to be cancelled on the Manager, accompanied by a
NullReferenceException, is fixed. The DSLoginTimeout propertywith default value 10 seconds, is now applied to both the primary and secondary
Director login senders.
GS-20380
An issue where the .NET driver failed a task instead of resubmitting it when the task's Direct Data Transfer (DDT) output could not
be downloaded from the Engine is fixed. A System.Net.WebException on a DDT output download is now treated as a recoverable error and
the task is resubmitted, subject to the existing resubmitOnDDTFailure job option.
GS-19757
Resolved a System.ArgumentException: Tasklet object not found for handle error introduced during the .NET 8 migration.
This exception occurred during tasklet handle lookups due to redundant remove operations.
GS-19756
Resolved an intermittent System.Reflection.TargetException introduced during the migration from .NET Framework 4.8 to .NET 6. Previously,
switching services through the .NET 6 bridge triggered this error and caused task failures. This update stabilizes service switching and
prevents these failures.
GS-19752
Fixed an issue where the .NET 8 driver threw a System.NullReferenceException upon losing its connection to the Broker Spanning Service.
GS-19751
Fixed thread-safety issues causing stuck sessions in the .NET driver.
GS-19583
Dual-runtime support for .NET 8 and .NET 10 is added.
Note: You must manually delete the existing bridge packages, net5bridge-win64-7.2.zip and net5bridge-linux64-gcc83-7.2.zip. Use the new
runtime-specific packages instead: netbridge-win64-net8-7.2.zip, netbridge-win64-net10-7.2.zip, netbridge-linux64-net8-7.2.zip, and netbridge-linux64-net10-7.2.zip.
GS-20743
Fixed .NET Core jobs (.NET 8) bypassing all service conditions (discriminators) and running on non-matching engines, which caused
cross-environment engine leakage (For example, SIT engines picking up UAT jobs).
Admin Interface
GS-20384
An unnecessary message in the Manager Log Viewer stating that an extremely long line truncated is removed. This message displays incorrectly
when the logs that contain long lines are viewed.
GS-19741
A new global action, "Cancel all tasks on the page", is added to the Task Admin Page. This bulk operation cancels all uncompleted
tasks on the current view simultaneously.
Batch
GS-19750
Support for the pipe symbol (|) within batch commands has been added. The system now passes commands as a string array to the Java
Process Exec command. Commands with pipe symbol (|) must be specified in a string array format and prefixed with /bin/sh;-c;
For example, shell commands: '/bin/sh;-c;df -Pl . | tail -n1'
C++ Specific
GS-20382
Resolved a missing instrumentationEnabled JobId property warning in the Driver logs by ensuring the required property is now supplied.
GS-19759
Resolved intermittent task deserialization failures for encrypted payloads. To prevent leaving payloads with stale credentials while
waiting for a driver connection, the credential re-encryption process now retries for up to 20 seconds before aborting.
GS-19746
Fixed a C++ driver crash caused by providing an incorrect username or password in the driver.properties file. The driver now logs an
"Invalid Password" error instead of crashing.
GS-19730
C++ Driver crash caused by a lack of robust exception handling is resolved. The logic for onUnknownException is improved ensuring graceful
failure rather than cascading unknown exceptions and driver termination.
GS-19431
Addressed a performance defect where Grid Cache drivers would hang during system calls, resulting in 100% CPU utilization.
Database
GS-20390
Resolved an issue where job records including spanned service session entries for certain Brokers dropped from the reporting database.
GS-20375
Microsoft SQL Server 2022 is now supported for the GridServer Reporting Database.
GS-19825/GS-20373
The GridServer Manager now supports Active Directory (Windows) authentication for a Microsoft SQL Server Reporting Database, in
addition to SQL Server authentication. This allows deployments that do not permit SQL Server authentication to connect to the
Reporting Database using domain credentials.
GS-19329
The GridServer Manager can now retrieve Reporting Database credentials from a HashiCorp Vault server instead of storing them in the
local configuration. The Vault access is configured through the following installation properties:
DSVaultEnabled (default false)
DSVaultUrl
DSVaultAuthMethod (token or approle, default token)
DSVaultToken
DSVaultRoleId
DSVaultSecretId
DSVaultSecretPath
DSVaultNamespace
When DSVaultEnabled is set to true, the Manager reads the Reporting Database username and password from the configured Vault secret path.
Driver
GS-20395
The Java SDK now publishes the complete list of third-party dependencies required to use the thin driver JAR (DSDriverNoDeps.jar).
Every SDK build generates jdriver/DEPENDENCIES.txt and ships it alongside the driver JARs in both the Linux and Windows SDKs. Use
this file as the authoritative dependency list. The contents of DSDriver.jar are unchanged.
GS-19744
Support for a Netty-based HTTP File Server is added for the Java Driver. To use it, set DSWebserverType=netty in your application's
driver.properties file.
Note: TLSEnabled is not supported for the Netty File Server. You must call DriverManager.disconnect() to release resources;
otherwise the Netty File Server cannot shut down properly.
GS-19660
Resolved an issue that caused Java Driver threads to hang indefinitely in createService() following a DriverManager.disconnect()
and a failed reconnection attempt. If a login fails due to a non-authentication error, the driver now immediately reports the
underlying connection error instead of blocking.
GS-20643
When running a job through PDriver on a 64-bit Windows engine, the DSOS variable that incorrectly set to win32, a platform that
is no longer supported. PDriver now sets DSOS to win64 on 64-bit Windows engines because the change is in the PDriver installer.
PDriver must be uninstalled and reinstalled from the updated GridServer SDK bundle to pick up the fix.
Drivers-All
GS-19747
The Java Driver now stops initialization (rather than continuing) if the Internal File Server fails to launch. This ensures
reliable startup behavior and prevents the driver from proceeding with an uninitialized File Server. The fix applies to the Java
Driver only and covers startup failures, not runtime failures.
Few scenarios for Internal FileServer failure with SSL Manager:
+-----------------+------------------+-----------------+-----------------------------------------------------+
| Manager | File Server | Certs | Explanation |
+-----------------+------------------+-----------------+-----------------------------------------------------+
| ssl | HTTP | ssl.keystore | If the certificate is missing/incorrect, |
| | | | Driver attempts to login and fails with below |
| | | | error: |
| | | | [LoginPlugin] Can't login to PrivateBrokerConnection|
| | | | :javax.net.ssl.SSLHandshakeException: sun.security. |
| | | | validator.ValidatorException |
+-----------------+------------------+-----------------+-----------------------------------------------------+
| ssl | HTTPS | ssl.keystore | - If both the certificates are not present, then the|
| | | | File Server fails to launch, and Driver stops |
| | | server.keystore | ( i.e. not continue ) |
| | | | |
| | | | - If incorrect certs are placed, pointing to |
| | | | incorrect CA or server cert, this cannot be |
| | | | determined during File Server launch. Hence the |
| | | | Driver attempts to login. |
+-----------------+------------------+-----------------+-----------------------------------------------------+
GS-18762
Added two new properties to driver.properties to manage TCP connection reuse in the C++ Driver. This mitigates port exhaustion
caused by a high volume of concurrent connections. By default, both the properties are set to true. Setting either of properties to false forces
the TCP connection to close after use rather than returning to the pool. This reduces the number of open ports held by the driver process.
DSHttpSubmissionKeepalive: Controls connections to the Director for job submissions and heartbeats.
DSHttpDDTKeepalive: Controls connections used to download task results.
Note: These properties apply process-wide. Using multiple driver instances within the same process with conflicting values is not supported.
Engine
GS-20397
A new Engine property, Essential Grid Libraries (GRIDLIB_ESSENTIAL), specifies which Grid Libraries an Engine must load before accepting tasks.
This extends legacy Gridlib Load Delay behavior to any named bridge (For example, .NET 8) and prevents tasks from failing due to incomplete synchronization.
Configuration & Values:
Configure this per-Engine or globally by navigating to Server Configuration > Engine options > Global Essential Grid Libraries.
Valid values:
Blank (Default): Waits for the default .NET Framework bridge on Windows. Does not wait on other platforms.
Comma-separated list: Base library names (e.g., netbridge-win64,net5bridge-win64).
all: Waits for full Grid Library synchronization.
Windows Upgrade Requirement
To display this field after upgrading a Windows Engine, manually add GRIDLIB_ESSENTIAL="" to the engine-config element in Config.xml.win32
and Config.xml.win32.default. Non-Windows platforms do not require manual edits.
Warning: Modifying this property restarts the affected Engine daemon(s) and forcefully terminates any running jobs. Apply these changes only
during a maintenance window or when the grid is idle.
GS-20396
Resolved a delay in task processing caused by slow Engine session teardowns. Cleanup tasks (like destroy() and temporary file removal) now
run asynchronously so that the new task is not blocked. This default behavior is managed via the -DDSAsyncSessionTeardown property.
GS-20394
Fixed a bug that forced all tasks onto instance-0 because other Engine instances remained unprepared during the Gridlib Load Delay. Tasks are
now correctly distributed across all instances once instance-0 finishes loading the grid library.
GS-20385
When the configured instance count is reduced, Engine instances are prevented from scaling down on RHEL. This is resolved now.
GS-20383
Resolved an issue causing Linux Engines to display or store the Engine password in cleartext. It is now stored in an encrypted format.
GS-20009/GS-19761
The parked state of an engine now persists in the database. Engines retain the parked status even after restarting or reconnecting.
GS-19734
Added org.apache.commons.lang3 to DSEngine.jar to resolve a java.lang.ClassNotFoundException for StringUtils during recursive
service calls.
GS-18815
Added support for running the GridServer Engine and Java Driver/SDK services under Java 21. Deployment and service-launch scripts
(deploy.bat, deploy.sh, runJava.bat, and runJava.sh) have been updated to detect and execute using JDK 21. No changes are required
for the Engine's embedded JRE.
GS-20430
Secure File Server TLS Credentials:
Added three new masked fields for File Server KeyStore, TrustStore, and Key Passwords. Unlike the old Command-line Arguments method,
these fields pass credentials directly to the JVM and store them encrypted, preventing local users from viewing them in plaintext.
Constraints:
Admin Tool Only: These fields cannot be managed through the REST API.
No Whitespace: Passwords must not contain spaces or tabs.
Manual Upgrade Steps:
For existing installations, you must enable these fields manually:
1.Update Configuration: On each Manager, add the following key-values to the
section of manager-data/conf/Config.xml. (.win32 for Windows,.unix for Linux) and restart the Manager:
2.Migrate Passwords: Move any existing passwords from the Command-line Arguments field to the new masked fields.
You must delete the old Command-line Arguments entries to stop exposing the passwords on the command line.
Engine Daemon
GS-19755
Fixed a decryption issue causing "Authentication failed" errors for RunAs users with 16-character passwords. Ensure the RunAs
service account has the correct permissions.
GS-19732
Fixed an issue in the external Engine Daemon admin tool failing to handle curly brackets in URLs.
Note: You must encode URL macros using UTF-8.
GUI
GS-20421
In the Administration Tool where the list of applied hotfixes under Product Info > Updates are displaying in incorrect order is fixed.
The list now accurately displays applied hotfixes in sequence by version.
GS-20376
The Bootstrap library is upgraded from 3.3.7 to 5.3.8.
GS-20517
In the Manager Admin interface, the "Issues addressed in hotfixes" page is improved. The entries are now complete,
organized by hotfix release number, and equipped with a show/hide toggle button to easily view longer descriptions.
Java Specific
GS-19742
Oracle Java 21 is now supported across all GridServer components: Manager, Engine, and Driver. This includes a fix to the Windows
service wrapper (service.bat) for correct JDK 17 and JDK 21 detection.
GS-19703
Java Driver logging performance is improved. The log file size is now tracked with an in-memory counter instead of a filesystem
stat() call on every write.
GS-19549
Service.bat is updated to properly evaluate the Java version and configure the PATH environment variable so that the JDK set through
JAVA_HOME takes precedence.
Manager
GS-20392
Fixed an issue where Grid Library deployments failed to synchronize to the Secondary Director when the Primary Director is configured
in a combined Director and Broker topology.
GS-20388
The Gridlib Load Delay can now be configured globally for all Engines from the Manager, at Admin > Manager Config > Engines and
Clients > Engine Options > Global Gridlib Load Delay. When it is set to a non-zero value, the global delay applies to all Engines unless
the individual Engine Configuration overrides it. When it is set to 0, only the per-Engine Configuration value is used.
GS-20381
Services now support enabling both data compression (compressData) and data encryption (encryptionEnabled) simultaneously.
Previously, enabling encryption silently disabled compression.
When both the options are enabled:
Outbound: Data is compressed first, then encrypted.
Inbound: Data is decrypted first, then decompressed.
Each feature continues to function independently as before.
Upgrade Compatibility Notice
Important: All grid components—including the Director, Broker, Engine, and active drivers—must be upgraded to version 7.2.0_hotfix01 before enabling both the options on a service.
Mixed-Version Grids: In an un-upgraded or mixed-version environment, services configured with both compression and encryption fails during data deserialization.
Backward Compatibility: Services utilizing only compression, only encryption, or neither remain byte-compatible with earlier releases and do not require changes.
GS-20372
A command-line license import tool is now included with the GridServer Manager installation. The scripts apply-license.sh (Linux)
and apply-license.bat (Windows), located in the Manager installation directory, allow the license file to be applied without logging
into the Director UI. The scripts are compatible with Java 11, 17, and 21 and can be run immediately after a silent install or at any
time post-install.
GS-19749
Resolved an issue where unexpected Engine VM terminations (For example, cloud preemption or host crashes) improperly consumed task retry attempts.
The Manager can now perform a TCP liveness check against the Engine Daemon's file server port before incrementing the retry counter.
If the host is unreachable, the task is rescheduled transparently without counting as a failure.
This behavior is managed by the new incrementRetryOnDaemonUnreachable property:
false: Verifies Daemon reachability and preserves the retry count if unreachable.
true (Default): Retains legacy behavior, incrementing the retry counter regardless of host status.
GS-19632
Removed internal developer dashboard and prototyping assets that were inadvertently included under /livecluster/public in the
shipped web application.
GS-18089
Configuration can now be imported and exported from the command line using new REST endpoints under /livecluster/rest/import-export.
Python
GS-20387
Support for Python 3.14 is added.
REST API
GS-20516
New REST operation — GET /livecluster/rest/engine/ddt-status?id= reports whether the host running a given Engine still holds untransferred
Direct Data Transfer (DDT) output. The result covers all Engine instances on that host and is true without probing if any, is busy. It returns true
or false only when the status is known. Anything that leaves it undetermined is raised as an error rather than reported as false. Use it before
taking an Engine host out of service.
GS-18939
A Swagger UI and an OpenAPI 3.0 specification for the Manager's administrative REST API are now available. The Swagger UI is served
at /livecluster/swagger-ui/index.html and the specification at /livecluster/rest/openapi.json and /livecluster/rest/openapi.yaml.
Both are also reachable from Admin > System Admin > REST API Swagger Documentation.
The feature is disabled by default and is not enabled by an upgrade. When it is disabled, the URLs return 404. Enable it by
setting rest.openapi.enabled=true, either through the silent installer or through the REST API on /livecluster/rest/manager/value.
You can enable the setting, rest.openapi.enabled=true in manager-data/conf/installation.properties by navigating at
Admin > System Admin > Manager Configuration > Security > Admin User Management. This method requires a restart.
Note: The setting is per Manager node and is not replicated, including from a Primary Director to a Secondary Director, so enable it
on every node that should serve the documentation. Access requires either an existing Manager console session or HTTP Basic
credentials. Use Authorize in the Swagger UI before Try it out.
Security
GS-19753
Hostname verification is now enabled by default for the Java Driver and Engine when TLS is enabled. This verifies the hostname in
the certificate against the connection hostname.
GS-19738
The jose4j library is upgraded to version 0.9.6 to address the security vulnerability CVE-2023-31582.
GS-19737
Kafka client is upgraded to 3.9.2 to address the security vulnerability CVE-2023-25194.
GS-19735
Apache ZooKeeper is upgraded to version 3.9.1 to address the security vulnerability CVE-2023-44981.
GS-19731
Apache Commons FileUpload has been removed from the product, and Apache Commons IO is upgraded to version 2.18.0. This addresses the
security vulnerability affecting Apache Commons FileUpload versions earlier than 1.6.
GS-17990
Enabled TLS 1.3 support for all grid components, including the .NET 8 Driver, for both inbound and outbound connections.
Tomcat
GS-19760/GS-20377
Apache Tomcat has been upgraded to version 10.1.57, resolving vulnerabilities associated with the Tomcat 9.0 branch and updating the REST API connector and authenticator.
Java Requirement: Tomcat 10.1.x requires Java 11 or higher. Java 8 is no longer supported for the GridServer Manager.
Manual Upgrade Requirement
To ensure proper functionality during an upgrade, you must manually update server.xml by performing the following steps:
1.Copy datasynapse/manager/conf/server.xml to datasynapse/manager-data/conf/server.xml. This replaces the existing server.xml file with the the updated version.
2.Restart the Manager.
Warning: On SSL-enabled Managers, TLS ports fail to start if server.xml is not updated. Backup existing server.xml and make the corresponding changes in server.xml post upgrade.
GS-19739
The system property -Xrs -Dds.logToSystem=true, added during Azul Zulu OpenJDK 17 support, is removed to prevent the catalina.out file
from exhibiting excessive growth. Installation logs and Linpack test loggers are also excluded from catalina.out.
================================================================================
To download this hotfix, login to the Support Portal and navigate to Downloads > Hotfixes > AvailableDownloads > DataSynapse > GridServer > 7.1.0.
GridServer 7.2.0 Hotfix01 Release Announcement