Skip to main content

HealthShare® Health Connect Change Notes (2025.1.2)

This document is meant to help you assess the impact of upgrading to the HealthShare Health Connect 2025.1.2 maintenance release. It also lists the changes since 2025.1.0, grouped by maintenance release category. To see a list of incompatibilities between an earlier version of HealthShare Health Connect and the 2025.1.2 release, use the Upgrade Impact Checklist.

InterSystems News, Alerts, and Advisories

From time to time, InterSystems publishes items of immediate importance to users of our software. These include alerts, mission-critical issues, important updates, fixes, and release announcements. You can obtain the most current list at https://www.intersystems.com/support-learning/support/product-news-alerts/Opens in a new tab. InterSystems recommends that you check this list periodically to obtain the latest information on these issues.

Changes Introduced in 2025.1.2

CPF File

DP-443328: Handle locale correctly during merge of [Map.*] sections

Category: CPF File
Platforms: All
Version: 2025.1.2

Previously, a issue arose when merging the CPF in a cluster with a mirror, some kind of configuration, and a namespace with interoperability enabled. Such a setup would result in the following error message: "ERROR #415: Invalid or duplicate section name Map.MASTERDATA". This issue has been resolved.

DataMove

DP-443033: Fix DataMove query if updates made at same time to multiple DataMoves

Category: DataMove
Platforms: All
Version: 2025.1.2

This change corrects an issue where updating multiple DataMoves all at the same time prevented some of them from being displayed when using ^DATAMOVE to list them. The issue has been resolved.

DP-443629: Fix DataMove DataCheck throttle rate

Category: DataMove
Platforms: All
Version: 2025.1.2

This change updated the DataMove DataCheck mechanism to respect the throttle limits more accurately. Previously, each range would work on 100 MB chunks of data and then recalculate the throttle. When there were many ranges, this recalculation could be inaccurate and could result in DataMove running faster than was specified and consuming excessive CPU. This issue has been resolved.

DP-444991: Single thread DataMove.API.DeleteSourceGlobals()

Category: DataMove
Platforms: All
Version: 2025.1.2

This change single threads DataMove.API.DeleteSourceGlobals() to improve system performance while kills are completing.

DTL Editor

DP-442733: Expose server errors when saving DTL or Rule fails

Category: DTL Editor
Platforms: All
Version: 2025.1.2

This change exposes entire server error messages when saving a DTL or Rule fails to help with troubleshooting.

Embedded Python

DP-445341: Install proper Python version in conan install

Category: Embedded Python
Platforms: All
Version: 2025.1.2

Previously, performing performing a conan install in a Unix container would instally the wrong version of Python, preventing you from using various Python features, such as Embedded Python. This issue has been resolved.

IKO - InterSystems Kubernetes Operator

DP-440242: Mirrored production support failure

Category: IKO - InterSystems Kubernetes Operator
Platforms: All
Version: 2025.1.2

If a cluster consists of a mirror pair and has a production that should start automatically, then it was possible that if both nodes were removed, the primary did not start being stuck in Waiting mode and the backup node was not created while the primary was ready. This issue has been resolved.

Installation

DP-443217: Update libexpat to 2.7.1

Category: Installation
Platforms: All
Version: 2025.1.2

This change updates the libexpat library to version 2.7.1.

DP-444249: Retain httpd service on Windows in Caché to InterSystems IRIS conversion

Category: Installation
Platforms: All
Version: 2025.1.2

Migration from Caché to InterSystems IRIS no longer deletes the apache httpd service.

DP-444488: install 64-bit VC++ Redistributables in CE to IRIS conversion if needed

Category: Installation
Platforms: All
Version: 2025.1.2

Previously, upgrading from Caché to InterSystems IRIS on a Window system did not correctly update the Visual C++ Redistributable, causing the upgrade to fail. The issue has been resolved.

DP-444893: allow upgrade after an OS upgrade on Unix

Category: Installation
Platforms: UNIX®
Version: 2025.1.2

This change ensures that upgrades of your InterSystems product after a major OS upgrade complete correctly.

Interoperability

DP-442273: Expose SubdirectryLevels in cloud storage inbound adapter

Category: Interoperability
Platforms: All
Version: 2025.1.2

This change exposes the SubdirectoyLevels property of the cloud storage inbound adapter so that you can choose whether or not to scan subdirectories.

DP-442936: Interface map utils to call OnGetConnections properly

Category: Interoperability
Platforms: All
Version: 2025.1.2

This change resolves an issue where the Production Validator did not include paths that rely on OnGetConnections() when the class extended either EnsLib.MsgRouter.RoutingEngine or Ens.BusinessProcessBPL; instead, there were special steps needed for both of these cases.

Now, OnGetConnections is called for all classes and has been augmented to handle the duplications that can occur in the processing of both EnsLib.MsgRouter.RoutingEngine and Ens.BusinessProcessBPL.

DP-443055: Fix loading of DICOM file with Implicit VR syntax and a private sequence

Category: Interoperability
Platforms: All
Version: 2025.1.2

This change resolves an issue that prevented the proper loading of a DICOM file that used Implicit VR transfer syntax and a private sequence.

DP-444586: [Interoperability] Limit message purge when optionalMessageLimitToConfigItems is specified

Category: Interoperability
Platforms: All
Version: 2025.1.2

This change resolves an issue that purged all messages when TypesToPurge was set to "All Types", even if configuration items were explicitly mentioned in optionalMessageLimitToConfigItems.

Journaling

DP-444604: Fix transaction rollback with LogRollback

Category: Journaling
Platforms: All
Version: 2025.1.2

Previously, there was an issue that caused TROLLBACK to fail if the LogRollback flag was set. This issue was introduced in 2025.1.0 and is now resolved.

Mirroring

DP-441013: Address issues that can cause inconsistent data in mirror dejournaling

Category: Mirroring
Platforms: All
Version: 2025.1.2

This change addresses issues that could compromise data integrity in mirroring. These issues were unlikely to have occurred in most mirrored environments, given the specificity of the conditions and timing that would be required to trigger them.

Specifically, during non-catchup mirror dejournaling, if a mirrored database that was in the active mirror gets dismounted and remounted, in rare cases dejournaling may have continued to apply updates to that database following the remount despite the fact that it is no longer in the active mirror. When this occurred, some or all of the journal file that was currently being dejournaled may have been applied to that database, leaving it "more current" than it was at the time that it was dismounted. If, while this was ongoing, a mirror catchup operation for that database was initiated (which is the default mount behavior), that database may silently end up with inconsistent data.

This has theoretically always existed, and has always been difficult to trigger, but became comparably easier to trigger in the following product versions:

Caché 2018.1 maintenance releases starting with 2018.1.10 IRIS 2023.1 maintenance releases starting with 2023.1.5 IRIS 2024.1 maintenance releases starting with 2024.1.1 IRIS 2024.2 and all subsequent major releases

This behavior can be avoided operationally by pausing dejournaling for the database, and making sure that succeeds, before dismounting it.

DP-443143: Fix issue with running a mirror catchup

Category: Mirroring
Platforms: All
Version: 2025.1.2

This change resolves an issue that arose when running a mirror catchup while another was already running, which could cause the initial catchup to fail entirely if any of the requested databases overlapped. This issue did not exist prior to 2024.1.

DP-444574: Fix mirror download that could miss some system globals

Category: Mirroring
Platforms: All
Version: 2025.1.2

Previously, when pulling down a mirrored database from the primary, the process could exclude the following globals: CacheTemp*, mtemp*, ISC.*, %ISC.*, IRIS.*, %IRIS.*, %odd*, %nls*, %csp*, %SYS, %tercap, %MV*, %iKnow, and %sqlcq. This issue has been resolved.

Networking

DP-442961: Allow extent index rebuild to succeed during startup for ECP databases

Category: Networking
Platforms: All
Version: 2025.1.2

This change resolves an issue that caused a rebuild of the extent index to prevent ECP connections from being established.

Object Library

DP-443649: Create source control object before importing documents in Atelier API XML load endpoint

Category: Object Library
Platforms: All
Version: 2025.1.2

Importing documents using the Atelier API XML load endpoint previously ignored the source control status of the documents because the %SourceControl object was not instantiated. This issue has been resolved.

Security

DP-441786: Unauthenticated login to check for system unauthenticated settings

Category: Security
Platforms: All
Version: 2025.1.2

This change resolves an issues in the REST unauthenticated login logic so that an unauthenticated login attempt will first check if the authentication is enabled on the system.

DP-443403: Enforce safe file extension in Export APIs

Category: Security
Platforms: All
Version: 2025.1.2

This change enforces safe file extensions for exported files through the %CSP.UI.Portal.Dialog.ExportOutput and %CSP.UI.Portal.SQL.ExportOutput classes.

DP-444133: Fix file path handling in DownloadStream Zen method

Category: Security
Platforms: All
Version: 2025.1.2

With this change, downloads via DownloadStream() in CSP.UI.Portal.SQL.ExportStatement.zen, CSP.UI.Portal.Dialog.Export.zen, and DeepSee.UI.FolderManager.zen are restricted to files generated by the export process in the system’s temporary directory.

DP-444671: Upgrade code for resources that had missing default permissions

Category: Security
Platforms: All
Version: 2025.1.2

This change resolves an issue that prevented roles from inheriting the default permissions associated with a resource. This issue has been resolved.

SQL

DP-439174: Throw Error on All %Date vs %TimeStamp Behavior Changes

Category: SQL
Platforms: All
Version: 2025.1.2

This change ensures that comparisons between %Date and %TimeStamp types behave as documented and produce more accurate error messages when the comparison fails.

DP-440648: Fix issue that severed link between foreign server and foreign tables

Category: SQL
Platforms: All
Version: 2025.1.2

Previously, there was an issue that could sever a link between a foreign server and its foreign tables when the foreign server was recompiled, but not deleted. This issue has been resolved.

DP-442145: Fix wrong result issues caused by evaluating conditions too early

Category: SQL
Platforms: All
Version: 2025.1.2

This change resolves an issues that led to wrong results for queries that combine inner joins, a HAVING condition, and an ORDER BY clause.

DP-442659: Fix error in queries with NVL() and NOT IN in a WHERE clause

Category: SQL
Platforms: All
Version: 2025.1.2

This change corrects a regression that raised an error in some complex queries that employed the NVL() function and NOT IN comparator in a WHERE clause.

DP-442942: Resolve error from vector joining queries

Category: SQL
Platforms: All
Version: 2025.1.2

This change resolves an UNDEFINED error that arose when a vector join was used in queries to join ID columns.

DP-443375: SQL: Correct dts handling

Category: SQL
Platforms: All
Version: 2025.1.2

An issue has been resolved where the compilation of an embedded SQL statement in non-procedure block code with a defined variable named 'dts' would cause DATETIME conversion logic to be generated when comparing a string field to a host variable.

DP-443588: record unused parameters in CTE definitions

Category: SQL
Platforms: All
Version: 2025.1.2

This change stores all parameters, including unused ones, in common table expression definitions. Previously, unused parameters could be incorrectly assigned when executing a CTE; this change resolves that issue.

DP-443950: Regenerate stale cached queries on ECP database servers

Category: SQL
Platforms: All
Version: 2025.1.2

Previously, when a table was recompiled on an ECP database server, the application server could detect if a cached query was stale, but would not regenerate it as expected. This issue has been resolved.

DP-444449: RTPC: correct combining range logic if there is field=exp join

Category: SQL
Platforms: All
Version: 2025.1.2

This change resolves an issues that caused queries to fail due to incorrect runtime plan choice range selectivity detection when the field with the range condition is used in the JOIN condition and in the WHERE clause.

System

DP-443703: JOBEXAM now handles PPG Trees of height > 3

Category: System
Platforms: All
Version: 2025.1.2

This change resolves an issue where JOBEXAM failed to print PPGs when large process private globals that require at least three levels of pointer blocks were instantiated.

Changes Introduced in 2025.1.1

Analytics - Reports

DP-442351: Upgrade FOP 2.10 to FOP 2.11

Category: Analytics - Reports
Platforms: All
Version: 2025.1.1

This change removes FOP 2.10 and updates it with FOP 2.11.

CSP / ZEN

DP-439659: Implement user input escaping in showsource.csp application

Category: CSP / ZEN
Platforms: All
Version: 2025.1.1

This change implements user input escaping in the showsource.csp application to harden security.

DP-441283: Disable AutoCompile by default for /csp/user, /isc/studio/templates and new CSP application; Tighten privileges for pre-login code

NOTE: This item may require a change to code, configuration, or operation.

Category: CSP / ZEN
Platforms: All
Version: 2025.1.1

The autocompile option automatically compiles tag-based CSP pages when a user accesses the page. In previous versions, this was enabled by default. In previous versions, the autocompile option for tag-based CSP pages has been disabled, and the privileges the compile runs with have been reduced accordingly. The former change does not affect existing web applications, but the latter does. To restore the old behavior, grant the CSPSystem user the necessary privileges for compiling classes, including the write privilege on the routine database of the web application's namespace. InterSystems discourages enabling autocompile or granting CSPSystem additional privileges. If it must be enabled, autocompile should only ever be used in development environments; the privileges required for compilation are wide-reaching and introduces unnecessary risk for production systems.

DataMove

DP-439539: Fix mapping overlap error in DataMove

Category: DataMove
Platforms: All
Version: 2025.1.1

Previously, moving routines to a new database would generate mappings that the journal filtering mechanism would detect as overlapping, prompting an error. This issue has been resolved.

DP-440115: New permission required for use of DataMove

NOTE: This item may require a change to code, configuration, or operation.

Category: DataMove
Platforms: All
Version: 2025.1.1

The DataMove utility now requires the %Admin_Manage:USE permission.

DP-441495: Quote DataMove global mappings in Actions file

Category: DataMove
Platforms: All
Version: 2025.1.1

This change corrects the parsing of the Actions file during DataMove activation by appropriately adding quotes around the conditions.

Embedded Python

DP-441673: Suppressing <languageoverride> tags in BPL generation when no LanguageOverride is set

Category: Embedded Python
Platforms: All
Version: 2025.1.1

Previously, some ""'=..LanguageOverride checks were missing while generating XML from BPLs, making it impossible to run code written on the latest release on an earlier version. The issue has been corrected.

Global Module

DP-442214: Fix type byte in ECP client cache when big string changes between vector and string types

Category: Global Module
Platforms: All
Version: 2025.1.1

A problem has been corrected that could lead to incorrect/corrupted big string values returned on an ECP client if an application were to change the value of a global node from a "normal" big string to a $vector stored as big string or vice versa. This can only occur if the new big string value uses at least as many big string blocks as the old and only if the value is swapped directly in one SET command, not killed or set to a smaller value in an intermediary step.

Installation

DP-437836: Install /dev/cda directory in HealthConnect and IRISHealth kits

Category: Installation
Platforms: UNIX®
Version: 2025.1.1

INTERNAL This change installs the /dev/cda directory into kits. It was not getting picked up by IPE scripts.

DP-439845: Ens.BP.Utils.Upgrade to use minimal memory and avoid STORE error on upgrade

Category: Installation
Platforms: All
Version: 2025.1.1

Previously, the upgrade routine could completely use up available process memory, with a linear space requirement proportional to the number of business processes to be upgraded. As a result, systems with a significant number of business processes could encounter a STORE error upon upgrade. This change modifies how the upgrade occurs such that the space requirement is now constant, preventing the STORE error.

DP-441160: make Windows Installer product version match instance version

Category: Installation
Platforms: All
Version: 2025.1.1

The Windows Installer internal ProductVersion will now be the same as the instance's version, except for the major version token, which will be set to IRISmajor-2000, due to restrictions on maximum allowed value of Windows Installer major and minor versions (255).

DP-441265: set INSTALLDIR property before it is being using by custom actions in unattended install

Category: Installation
Platforms: All
Version: 2025.1.1

INSTALLDIR property is now set earlier in the install process to ensure InterSystems\Configurations\IRIS\<INSTANCE>\Directory registry key is properly set when it is needed.

DP-442472: Perform name validation on insert not modify

Category: Installation
Platforms: All
Version: 2025.1.1

This change moves the validation of web application names so that the check is only performed before performing an Insert operation, which ensures that the upgrade process occurs smoothly.

IntegratedML - Core

DP-441867: lnxubuntu2404x64 and lnxubuntu2404arm64 h5py upgraded from 3.11 to 3.13

Category: IntegratedML - Core
Platforms: All
Version: 2025.1.1

This change upgrades the version of h5py from 3.11.0 to 3.13.0.

Interoperability

DP-438179: Fix bad MAXLEN generated for SAP props

Category: Interoperability
Platforms: All
Version: 2025.1.1

This change resolves an issue that caused imported SAP properties to have incorrect MAXLEN on InterSystems products.

DP-438527: Make TCP adapter default to not logging connections

Category: Interoperability
Platforms: All
Version: 2025.1.1

Previously, TCP adapters wrote event log entries for new connections by default. Now, this behavior must be set up manually by setting the Log Adapter Connection exposed in the Development section of the Settings tab in the Production Configuration interface.

DP-439620: Fix error allowing Record Mapper to open malformed records

Category: Interoperability
Platforms: All
Version: 2025.1.1

Previously, a record map with duplicate field name would not throw an error when opened in the Record Mapper, but would report an error when you generated the code and class object. Now, it is impossible to import such a record map in the first place.

DP-440254: EnsLib.HL7.Message::commitSegmentByIndex() to safely retrieve segment

Category: Interoperability
Platforms: All
Version: 2025.1.1

Previously, when opening an HL7 message that had already been saved, the private property %maps was not properly populated, which caused an UNDEFINED error. This issue has been resolved to make it safer to retrieve segments and avoid this UNDEFINED error.

DP-441256: Protect EnsPortal.ServiceRegistry.Dialog.* pages

Category: Interoperability
Platforms: All
Version: 2025.1.1

Previously, when the web app allowed unauthenticated access, anyone could access pages in the EnsPortal.ServiceRegistry.Dialog package. These pages were intended as pop-up windows in the EnsPortal.ServiceRegistry.External and EnsPortal.ServiceRegistry.Public pages, which are resource-protected. However, if an unauthenticated user tried to access any of these pop-up window pages directly, they were not protected by any resource.

This change makes sure these pop-up windows are also protected by resources and cannot be accessed by unauthenticated users.

DP-441318: Ensure that ZEN instance methods can only be called from the current page

Category: Interoperability
Platforms: All
Version: 2025.1.1

This change ensures that instance ZenMethods on a page cannot be called from another page.

DP-442340: FTP inbound adapter to never create temp file if ArchivePath set

Category: Interoperability
Platforms: All
Version: 2025.1.1

Previously, when using SFTP and a set archive path, there was redundant work associated with creating a local temp file. This change downloads the file directly to the archive path, without creating a temp file.

DP-442826: Update to messaging client to version 1.4.1

Category: Interoperability
Platforms: All
Version: 2025.1.1

This change updates the messaging client to version 1.4.1. It includes changes from DP-442113, DP-441865, and DP-441880.

This updated version fixes an issue that could cause the Kafka client to enter a loop that would either never break or could take a very long time to break, potentially leading to the system running out of memory.

The updated version also improves message commit behavior for the Kafka client on the Java side, exposing two new parameters. One, autocommit, is on by default and ensures that messages are committed automatically. The other, maxpollrecords, enables you to set the size of a batch size (the default value is 500). The commit process now also only occurs after persisting a message to disk, ensuring that unexpected stoppages do not impact performance.

Journaling

DP-441350: fix potential accvio in jrnupgbuf()

Category: Journaling
Platforms: All
Version: 2025.1.1

This change addresses an issue that could cause access violation in a 2025.1 release when reading a journal file created in an earlier release.

Monitoring

DP-435912: Fix ^IRIS.SystemPerformance "no such id" error

Category: Monitoring
Platforms: All
Version: 2025.1.1

Previously, $$waittime^SystemPerformance could throw a "no runid" error, rather than return the expected output. This issue has been resolved.

DP-441368: Address spurious alerts raised by Health Monitor

Category: Monitoring
Platforms: All
Version: 2025.1.1

Previously, the Health Monitor could trigger emails and alerts that required no action. This change addresses some of the causes of those issues by logging the username whenever the Health Monitor is activated or deactivated to messages.log and introducing a new class, SYS.Monitor.Health.Manager, which contains methods that allow the user to reset periods, charts, sensor objects, or defaults as needed.

Monitoring - Metrics

DP-440440: SQL METRICS: Correct SAM GetStatInfo for SQL statement statistics

Category: Monitoring - Metrics
Platforms: All
Version: 2025.1.1

This change corrects a problem where the SAM stats for iris_sql_queries_avg_runtime and iris_sql_queries_avg_runtime_std_dev could be incorrect.

Networking

DP-439915: Corrected long name rtn invalidation across ECP

Category: Networking
Platforms: All
Version: 2025.1.1

Previously, compiled a routine with a long name over ECP could result in the daemon crashing. This issue has been resolved.

Object Compiler

DP-438196: Fallback to doing a partial deploy instead of throwing an error for %SwizzleObject and %XML.Adaptor objects

Category: Object Compiler
Platforms: All
Version: 2025.1.1

It was previously possible for the MakeClassDeployed method in the %SYSTEM.OBJ class to throw an error for objects that extend %SwizzleObject and %XML.Adaptor classes, halting execution. Now, the rather method skips deploying classes that encounter this error and deploys the others.

DP-440446: Removed unnecessary hangs in %occSysDescriptor routine

Category: Object Compiler
Platforms: All
Version: 2025.1.1

This change removes some unneeded hang time during class compiling classes.

Object Library

DP-441388: Keep error status when validating Userinfo response

Category: Object Library
Platforms: All
Version: 2025.1.1

This change fixes a issue that caused %SYS.OAuth2.AccessToken.GetUserInfo() to lose the error status if the Userinfo endpoint returned an invalid JWT. Previously, this method would return 0 it was unable to validate the JWT instead of the error status returned from ##class(%SYS.OAuth2.Validation).ValidateJWT(). Now, the error status is correctly returned in %SYS.OAuth2.AccessToken.GetUserInfo().

DP-442395: Correctly validate pretty-printed values

Category: Object Library
Platforms: All
Version: 2025.1.1

The %Studio.Global class can be used to get and set global node values as pretty-printed strings like ZWrite. Previous changes added some code to validate that the pretty-printed value was safe to evaluate using $XECUTE. However, the validation would fail in rare cases involving empty string literals. This changes fixes that validation.

DP-442552: Allow the creation of blank web application files via %apiSRC

Category: Object Library
Platforms: All
Version: 2025.1.1

This change corrects an issue in VS Code that caused an UNDEFINED error to be thrown when attempting to save a blank file. Now, the system saves the blank file instead of throwing an error.

DP-442700: do not reset settings in %UnitTest.Managerwithout permissions

Category: Object Library
Platforms: All
Version: 2025.1.1

In %UnitTest.Manager, after all tests are run it will automatically reset some settings that the unit test may have modified to avoid changes to the environment caused by running a test. This is only possible if you have WRITE permissions to IRISSYS/IRISLIB database and if you did not then it would throw PROTECT errors such as:

ERROR #5002: ObjectScript error: <PROTECT>%OnClose+7^%UnitTest.Manager.1 ^%oddENV("callererrorinfo"),/data/db/mgr/Error running class: 0

Now, the system checks for permissions to write to the globals before attempting to save/restore these settings.

Object Parser

DP-441771: populate return string in case of failure initializing xml parser.

Category: Object Parser
Platforms: All
Version: 2025.1.1

Previously, errors raised by the SAX parsing initialization method were not reported. Now, they are properly returned to the calling interface so that they can be logged.

Security

DP-437628: Allow SECURITY CHUI to edit LDAP EscalationRole Attribute

Category: Security
Platforms: All
Version: 2025.1.1

This change corrects a typo that prevented users from setting of the LDAPAttributeEscalationRoles field from the LDAP section of the ^SECURITY CHUI.

DP-439227: Reduce data collected from WRC contact form submission in Management Portal

Category: Security
Platforms: All
Version: 2025.1.1

This change reduces the amount of information that the WRC contact form in the Management Portal collects when submitting a ticket.

DP-439420: Fix handling of OpenSSL error queue in $System.Encryption APIs

Category: Security
Platforms: All
Version: 2025.1.1

This change fixes a case where the OpenSSL error was not reported correctly when $System.Encryption.RSASHAVerify() fails. If the public key was specified using the exponent and modulus, and the signature failed, the system would return false, but $System.Encryption.RSAGetLastError() would not return the correct value. Further, the error would be left on the OpenSSL error queue which could result in a spurious error being reported for a later call. 

Additionally, the libssh2 and ldap libraries did not always clean up the OpenSSL error queue. If too many unprocessed errors accumulate in the error queue, they might not all fit in the buffer for RSAGetLastError() or ECGetLastError(), which means the function will return a bunch of spurious errors, and omit the actual error the last call encountered.

Both of these issues have been resolved.

DP-439657: Input escaping in SQL query editor and supporting APIs

Category: Security
Platforms: All
Version: 2025.1.1

This change mitigates security risks from malicious user input in the SQL Query Editor in the Management Portal and supporting APIs

DP-440541: SQL: LOAD SQL, protect against incorrect SETUSER command

Category: Security
Platforms: All
Version: 2025.1.1

This change ensures that when loading and executing SQL statements with LOAD SQL, SETUSER commands that specify a non-existent username are not executed, preventing undesired behavior.

DP-441172: Strip leading and trailing whitespace for some LDAP properties

Category: Security
Platforms: All
Version: 2025.1.1

Leading and trailing whitespace on the following properties is now stripped when an object is saved: LDAPBaseDN, LDAPBaseDNForGroups, LDAPCACertFile, LSAPSearchUsername.

DP-441210: DBEncStartKeyFile now is forced to have a directory

Category: Security
Platforms: All
Version: 2025.1.1

If you specify a key file for unattended startup, the filename is now normalized so that it is stored with a directory specification to ensure that the key file is always located where the system expects to find it.

DP-441396: Make sure encryption key is loaded validating CPF in container

Category: Security
Platforms: All
Version: 2025.1.1

When starting your instance in a container, the eventual CPF validation that occurs requires the IRISSECURITY database to be correctly mounted. Previously, when this database was encrypted, it could not be mounted because the encryption key had not yet been loaded. This change resolves the issue by loading the key before the validation is performed.

DP-441540: Don't reset Security.Users ChangePassword flag when set explicitly

Category: Security
Platforms: All
Version: 2025.1.1

The ChangePassword flag in Security.Users indicates that the current password is a temporary password that will need to be changed at the next login. This flag is reset when the User record is saved with a new password. Previously, if ChangePassword was explicitly set to 1 and the password was changed programmatically via Modify(), the ChangePassword flag would revert back to 0. This change corrects that behavior.

Additionally, if the password is changed in the Management Portal and ChangePassword is set to 1, it will remain set after the password change.

Sharding

DP-441552: Tune Table: Use the mapinfo from toExtent to update block count in CopyBlockCounts

Category: Sharding
Platforms: All
Version: 2025.1.1

This change resolves an issue that caused table statistics to be stored in a global that could be different between shard-local tables and master tables, meaning that queries on sharded tables would use incorrect statistics and potentially return bad results.

SMP - System Management Portal

DP-440805: Harden security on Globals pages

Category: SMP - System Management Portal
Platforms: All
Version: 2025.1.1

The CSP pages for viewing and editing Globals recognize a "refreshpage" URL query parameter that specifies the page to return to when pressing the cancel button. However, the value of the parameter was being rendered unescaped in the HTML, which made the pages vulnerable to XSS. This change fixes the bug by escaping the value of the query parameter before rendering it in the HTML.

SQL

DP-435920: fix prepare error for INSERT statements

Category: SQL
Platforms: All
Version: 2025.1.1

This change resolves an issue that caused INSERT statements that used a trigger with CodeMode 'objectgenerator' and were prepared over JDBC or ODBC would fail with an error.

DP-438361: use correct SelectMode when generating RTPC query plan

Category: SQL
Platforms: All
Version: 2025.1.1

Previously, when generating a query plan to view in the Management Portal, an issue could cause the SelectMode of your query to be set incorrectly, resulting in incorrectly generated RTPC query plans. The issue has been resolved.

DP-438895: Apply collation to select and group results

Category: SQL
Platforms: All
Version: 2025.1.1

This change resolves an issue that caused queries that both select and group results by long text fields to fail with a error by automatically collating the offending fields.

DP-439346: Correct <UNDEFINDED> in fastInsert for INSERT OR UPDATE %NOLOCK

Category: SQL
Platforms: All
Version: 2025.1.1

Previously, INSERT OR UPDATE statements specifying the %NOLOCK option could incorrectly throw an <UNDEFINDED> error. This issue has been resolved.

DP-439474: Correct filing of a table with a single required field stored in its own global

Category: SQL
Platforms: All
Version: 2025.1.1

When filing a table with only one field of either the %Library.Vector or %Library.Embedding types, if that field is required, the data for that field would be stored in its own global node (the default expected behavior for %Library.Vector or %Library.Embedding typed field), but fail to define the master map. As a result, queries against the table may have returned wrong results. The issue has been corrected.

DP-439478: cloning correlated fields

Category: SQL
Platforms: All
Version: 2025.1.1

This change corrects an issue that arose when converting OR queries to UNION queries, specifically when they involved correlated fields.

DP-439530: Fix wrong result issues on parallel queries that have aggregates on subqueries

Category: SQL
Platforms: All
Version: 2025.1.1

Previously, there was an issue that could cause queries that use aggregate functions in subqueries and are executed in parallel to return wrong results. The issue has been resolved.

DP-439538: Correct selectivity of a unique field in one-row table

Category: SQL
Platforms: All
Version: 2025.1.1

Previously, if a table contained a single row, the selectivity for a unique field was previously calculated as 1. This change replaces it with 0.999 to allow better plans when bitmap indexes are available.

DP-439699: Fix clean up of workers in parallel queries

Category: SQL
Platforms: All
Version: 2025.1.1

Previously, there was an issue that caused the system to inadequately clean up cached subquery temporary tables created by worker processes in parallel queries. The issue has been resolved.

DP-440188: Fix UNDEFINED issues in queries

Category: SQL
Platforms: All
Version: 2025.1.1

This change fixes previous UNDEFINED runtime errors in queries with virtual fields that refer to constant parameters.

DP-440438: LOAD SQL fails when DIALECT not specified, bug fix to default to 'IRIS'

Category: SQL
Platforms: All
Version: 2025.1.1

Previously, LOAD SQL commands that did not contain the DIALECT clause would not work and would end early without providing useful feedback. This change ensures that omitting this optional clause does not cause the LOAD SQL command to fail in totality in addition to improving error messages for this command.

DP-441138: Don't rewrite streamless null handling functions

Category: SQL
Platforms: All
Version: 2025.1.1

This change prevents queries that use streamless null handling functions from being rewritten to ensure optimal performance.

DP-441611: TT: Exclude collection map from goodindex

Category: SQL
Platforms: All
Version: 2025.1.1

Previously, there was a chance that after collecting statistics with TUNE TABLE, the query optimizer would not correctly select an index when creating an optimized query plan. The issue has been resolved.

DP-441722: Fix wrong result issue for parallel queries that have GROUP BY on a user-defined function

Category: SQL
Platforms: All
Version: 2025.1.1

This change corrects a wrong result issue for parallel queries that have GROUP BY on a user-defined function.

DP-441910: Fix compile time errors on initializing variables that has been replaced by literal values

Category: SQL
Platforms: All
Version: 2025.1.1

This change fixes compile time errors on initializing variables that have been replaced by literal values. 

A typical error message for such a compile time errors might look as follows: ERROR #5475: Error compiling routine: %sqlcq.DP441804.uEFGfyj4LgZgn0PqWSdqnGVtYdM7.1.  Errors:  ERROR: %sqlcq.DP441804.uEFGfyj4LgZgn0PqWSdqnGVtYdM7.1.int(609) #1011: Invalid name : 'i%IDO11="",i%NIFNO35="",{color:#172b4d}*0=""*{color},i%PractitionerTypeO56="",i%Iiunout67ppC2="",i%Iiunout67ppC3="",i%Iiunout67ppC4="",i%Iiunout67ppC5="",i%Iiunout67ppC6="",i%Iiunout67ppC7="",i%NIFNO23=" ",i%vpRMLSPNIFNO6="",i%PractitionerTypeO134=" "' : Offset:28 [%0Am113mdun+1^%sqlcq.DP441804.uEFGfyj4LgZgn0PqWSdqnGVtYdM7.1] [reportErrors+36^%apiRTN:DP441804]

DP-441933: Fix UNDEFINED errors on queries that have shared ASL modules that have temp-files and uses parallelization

Category: SQL
Platforms: All
Version: 2025.1.1

This change fixes UNDEFINED errors on queries that have shared ASL modules and use parallelization by correctly passing temp-file number variables needed by the shared ASL modules to the workers.

DP-442444: Don't call copydt for %Exact(field)

Category: SQL
Platforms: All
Version: 2025.1.1

This change corrects an issue that previously prevented the compilation of some queries that used %EXACT.

DP-442569: Skip rewriting the null-handling function if the condition does not involve a streamless expression

Category: SQL
Platforms: All
Version: 2025.1.1

This change resolves an issue that rewrote null-handling functions that did not involve a streamless expression, which had previously caused an infinite loop.

DP-442868: Don't regenerate implied internal NCNUL conditions in subquery

Category: SQL
Platforms: All
Version: 2025.1.1

This change fixes an issue that caused queries that used UNION %PARALLEL and NOT %INLIST to fail at compile time.

DP-442948: Fix wrong result issue for parallel queries that have joined stream views

Category: SQL
Platforms: All
Version: 2025.1.1

This change fixes a wrong results issue that could affect parallel queries that have an outer join into a non-merged (streamed) view or subquery where the value within the view that participates in the outer join condition is a field that is indexed, build a temp file for this join, and do not have a UNION or TOP clause.

System

DP-439028: Don't create DataMove on Generate() Error

Category: System
Platforms: All
Version: 2025.1.1

This change deletes a partially created DataMove object if the Generate() method in the DataMove.API class fails.

DP-439093: Avoid loop in with ADO.NET client

Category: System
Platforms: All
Version: 2025.1.1

This change fixes an infinite loop on the server that could occur with the InterSystems IRIS ADO.NET client.

DP-439266: Fix problem with source control hook

Category: System
Platforms: All
Version: 2025.1.1

Previously, some source control hooks that called into InterSystems services could cause access violations. These issues have been resolved.

DP-439284: Fix $increment(^gvn,x) when ignoring error

Category: System
Platforms: All
Version: 2025.1.1

An issue has been resolved that could lead to a process or system hang if the DO $INCREMENT command is used to increment a global in a situation where it ignores (as described in the ObjectScript Reference) a condition.  This problem has existed since the initial support of DO $INCREMENT.

DP-439624: DataMove updates multiple copies mapping correctly

Category: System
Platforms: All
Version: 2025.1.1

Previously, when running two DataMoves at the same time, one for local namespaces and one for mirrored namespaces, the mappings for the DataMove that was activated first were lost when the other was activated. This issue has been resolved such that mappings are securely retained.

DP-439707: $Order() or Merge with null subscript could fail on U2 instance

Category: System
Platforms: All
Version: 2025.1.1

On a U2 instance, an invocation of the $Order function or a Merge command on an array with a null subscript could terminate the process with a memory access error. This issue has been resolved.

A $Order() function or Merge command on a U2 instance, with an array that has null subscripts, could terminate the process with a memory access error.

DP-439889: The VSCode Lite Terminal can no longer fail after a Lock command

Category: System
Platforms: All
Version: 2025.1.1

Some commands, such as a LOCK command that unlocks a certain lock, could cause the VSCode Lite Terminal process to fail.

DP-440651: IRISTEMP database is no longer a sparse database

NOTE: This item may require a change to code, configuration, or operation.

Category: System
Platforms: All
Version: 2025.1.1

In prior versions, the IRISTEMP database on non-Windows platforms was internally expanded as a sparse file to allow for rapid expansion; disk space would be consumed if and when the IRISTEMP blocks were written by the system. When the IRISTEMP grows very large in this way, it is possible that the writes to it may eventually leave vast numbers of "holes" in the file. While that behavior is expected, it has occasionally been observed to cause an unpredictable amount of overhead due to the operating system's management of unwritten extents, and in rare cases this could have a destabilizing effect. Since expansion for all databases has been made much faster in general starting in 2025.1, the sparse feature of IRISTEMP is no longer a valuable tradeoff and has been disabled.  

With this change, IRISTEMP will consume file system space as it expands rather than as the system writes the blocks.  As long as IRISTEMP is left to expand automatically (recommended), the extra space consumed on the system as a result of this change is limited by the size of the database cache, since as the database cache becomes largely consumed by newly allocated IRISTEMP blocks, they would have been written either way.  Any site that pre-expands IRISTEMP to a very large size expecting that space to remain unused at the filesystem level should reconsider that practice. 

Note that on non-Windows platforms, IRISTEMP is re-initialized at startup at a virtual initial size of 20MB rather than the previous value of 240MB.  As before, the real size of the IRIS.DAT file is left unchanged so the expansions from 20MB up to its previous size are virtual only and the configuration parameter 'MaxIRISTempSizeAtStart' can be used to cause this old file to be truncated.

DP-441088: Don't create duplicate IRISMETRICS in CPF file

Category: System
Platforms: All
Version: 2025.1.1

Previously, CPF conversion code that executed when upgrading your instance on Unix system would create a second IRISMETRICS database, which would not be used. This change ensure that this unneeded database is not created.

DP-441381: Disable fast file expansion on AIX

Category: System
Platforms: AIX
Version: 2025.1.1

A performance problem on AIX was discovered that was triggered by use of the new fast file expansion, so it is now disabled.  The speed of database expansion for AIX is still improved over previous versions, but not as dramatically so.

UI - Production Config

DP-439402: Fix host item, business rule, and send action errors in Production Configuration interface

Category: UI - Production Config
Platforms: All
Version: 2025.1.1

This change resolves some issues in the Production Configuration interface that caused error messages to be shown when a Host item does not have connections, the business rule of a router does not have any actions, and when then transform of a send action is not a real DTL or otherwise does not exist.

DP-441127: Handle invalid classname for get default settings

Category: UI - Production Config
Platforms: All
Version: 2025.1.1

While creating or editing a host, if the UI tries to get the default settings of a classname that does not exist, the function previously threw an error. Now, it returns an empty array to avoid the UI posting an error message.

DP-442496: SaveProductionHostSettings() to include SC for prod settings

Category: UI - Production Config
Platforms: All
Version: 2025.1.1

When attempting to save a production, there was previously an issue that prevented calling %OnAfterSave() after modifying the setting. This issue has been resolved.

UI - Rule Editor

DP-440611: Remove use of Artifactory API keys in builds

Category: UI - Rule Editor
Platforms: All
Version: 2025.1.1

This change causes the system to use Artifactory access tokens, rather than API keys, which are being deprecated in the next Artifactory upgrade.

UI - SQL

DP-440326: Fix endless loop in SQL Diagnostics page for new types of logs

Category: UI - SQL
Platforms: All
Version: 2025.1.1

This fixes an issue in which the logic formatting the statement in the main SQL Diagnostics table was not coming from a LOAD DATA command, which used to be the only command generating logs for this table. That logic has now been fixed.

VS Code

DP-440419: Fix execution of multi-line input in Lite Terminal

Category: VS Code
Platforms: All
Version: 2025.1.1

The Lite Terminal front-end in VS Code accepts multi-line input. The server currently executes this by turning the newlines into spaces, and the XECUTEing the input as a single line. However, this does not work in all cases, especially if the input contains legacy command structures. This changes fixes the execution by using the private routine buffer to load each line of input into a temporary routine that then gets executed, preserving the multi-line structure of the user's input.

Web Services

DP-437099: Correct inconsistency in CORS handling configuration

NOTE: This item may require a change to code, configuration, or operation.

Category: Web Services
Platforms: All
Version: 2025.1.1

Previously, CORS handling was inconsistent if a web application used map forwarding. In previous versions, the value of the HandleCorsRequest parameter in the dispatch class defined in the web application determined CORS handling, unless the route had Cors="true", in which case the HandleCorsRequest parameter in the final dispatch class (that is, the one that handles the request) would determine CORS handling.

With this change, the HandleCorsRequest parameter in the final dispatch class always determines CORS handling.

This change also requires that you recompile all existing REST web services upon upgrade.

xDBC Server

DP-442403: Fix indefinite hangs in external language server

Category: xDBC Server
Platforms: All
Version: 2025.1.1

This change corrects an issue that caused the external language server to hang indefinitely because Fetch data is never sent back.

For Additional Help

If you need assistance with evaluating how upgrading to this maintenance release will affect your applications, systems, or related plans, please contact the InterSystems Worldwide Support Center:

  • Phone:  +1.617.621.0700
  • Fax:  +1.617.734.9391
  • Email:  support@intersystems.com

Current release notes (and complete product documentation) can be found online at https://docs.intersystems.com.

FeedbackOpens in a new tab