InterSystems IRIS® Change Notes (2025.1.5)
This document is meant to help you assess the impact of upgrading to the InterSystems IRIS 2025.1.5 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 InterSystems IRIS and the 2025.1.5 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.5
Analytics - IRIS BI
- Do not reset ^DeepSee.BuildErrors for Selective Build
- Convert lastAccessed folderItem storage to UTC
DP-448589: Do not reset ^DeepSee.BuildErrors for Selective Build
Category: Analytics - IRIS BI
Platforms: All
Version: 2025.1.5
Previously, there was an issue that would cause a selective build on a cube for which build errors already existed to remove those errors from the ^DeepSee.BuildErrors global without reprocessing the facts in question. As a result, data could be missing from the cube until it is fully rebuilt. This issue has been resolved.
DP-450730: Convert lastAccessed folderItem storage to UTC
NOTE: This item may require a change to code, configuration, or operation.
Category: Analytics - IRIS BI
Platforms: All
Version: 2025.1.5
The %DeepSee.UserLibrary.folderItem:lastAccessed property is now stored in UTC rather than in the client's local time zone.
When accessed directly through SQL or REST, the property value is returned in UTC. UserPortal applications continue to display the value in the user's local time zone.
As a result of this change, existing lastAccessed values for inactive folder items that are never reopened may appear shifted by several hours. Active folder items are unaffected in the long term, as the lastAccessed value is automatically updated and stored in UTC the next time the item is opened.
DataMove
- When DataMove stops with a recoverable error, set higher error level in Messages.log
- Fix a possible memory leak in data move
- Allow journaling property to be modified on DataMove database after Activation
DP-449040: When DataMove stops with a recoverable error, set higher error level in Messages.log
Category: DataMove
Platforms: All
Version: 2025.1.5
When a DataMove encounters a STORE error while reading journal files, the error stops the DataMove entirely. In most cases, you can restart the DataMove to resume at the place it stopped. However, if you purge the journal file used by the DataMove before restarting it, you cannot restart the DataMove.
This change increases the severity of the error message provided when a DataMove encounters a STORE error to improve system alerting.
The previous error message was: 04/15/26-12:39:17:209 (21644) 0 [DataMove.Event] DataMove STC-ROLLBACK STOP signaled - Signaled by recoverable error
The new error message is: 04/15/26-12:39:17:209 (21644) 2 [DataMove.Event] DataMove STC-ROLLBACK STOP signaled - Signaled by recoverable error
DP-450553: Fix a possible memory leak in data move
Category: DataMove
Platforms: All
Version: 2025.1.5
This change addresses a memory leak that arose in the DataMove utility when allocating memory for journal buffer filtering.
DP-451396: Allow journaling property to be modified on DataMove database after Activation
Category: DataMove
Platforms: All
Version: 2025.1.5
With this change, it is possible to change a database's journaling state once Activation of the new mapping is completed.
Installation
DP-438189: Remove integratedML JAR file from non-ML Windows InterSystems IRIS kits
Category: Installation
Platforms: All
Version: 2025.1.5
This change removes the intersystems-integratedml-2.0.0.jar from the InterSystems IRIS installation directory for non-ML InterSystems IRIS kits 2024.2.0 and onward. For more information on how to install the default IntegratedML provider, see Installing AutoML.
DP-450479: Update expat to 2.7.5
Category: Installation
Platforms: All
Version: 2025.1.5
This change updates the expat XML parsing library included in installation to version 2.7.5.
Interoperability
DP-440081: Fix failure to record business service stats
Category: Interoperability
Platforms: All
Version: 2025.1.5
This change resolves an issue that prevented Business Services from recording stats.
Mirroring
DP-446151: Allow DejournalProcessor to continue running when error occurred during synchronizing state
Category: Mirroring
Platforms: All
Version: 2025.1.5
Previously, when the MIRRORMGR failed during the synchronizing state, the system stopped the DejournalProcessor daemon as the MIRRORMGR hibernated. Now, the DejournalProcessor daemon will continue running while MIRRORMGR waits to retry the operation it failed earlier.
Monitoring - Logs
DP-450883: Improve logic for censoring passwords in SOAP log
Category: Monitoring - Logs
Platforms: All
Version: 2025.1.5
This change improves the logic used to censor passwords in the SOAP log, as previous behavior could result in truncated logs if the string "Password" was included in the SOAP headers in a specific context.
Object Compiler
DP-442855: Fix failed compilation of routines when class name is very long
Category: Object Compiler
Platforms: All
Version: 2025.1.5
Previously, there was an issue caused by compiling the routine associated with a class independently when the class name was so long that the routine name truncated it. The issue has been resolved.
ODBC
DP-449637: Correct rounding edge cases on string to decimal conversion
Category: ODBC
Platforms: All
Version: 2025.1.5
Previously, there was a rounding issue that affected string conversions to the decimal numeric type while storing such values in a custom storage format. The issue has been resolved.
Security
- Portal source control pages should not always use CSPSHARE
- Audit job command even if not auditing logins
- Update openssl to 3.5.6
DP-435234: Portal source control pages should not always use CSPSHARE
NOTE: This item may require a change to code, configuration, or operation.
Category: Security
Platforms: All
Version: 2025.1.5
Source control hook implementations that both rely on CSPSHARE=1 to load dialogs from a custom application and do not already share authentication information another way will no longer work in this version.
For dialogs to work, the target application must share sessions or authentication with the current application. This sharing can be achieved in any of the following ways: the target application is the same as the current application, the target application shares a cookie path with the current application, or the target application has the same "Group by Id" setting as the current application.
DP-450859: Audit job command even if not auditing logins
Category: Security
Platforms: All
Version: 2025.1.5
Previously, when auditing of the JOB command was on but auditing of logins was off, the system would not audit the JOB command. This issue has been resolved, and now the auditing is only skipped if auditing for both logins and the JOB command are off.
DP-450945: Update openssl to 3.5.6
Category: Security
Platforms: All
Version: 2025.1.5
This change updates the OpenSSL version included in the product to 3.5.6.
SQL
- Require SQL privileges to create and drop procedures in TSQL dialects
- Fix deadlock error when creating HNSW index within a transaction
- Verify the existence of RTPC condition to prevent UNDEFINED error
- Fix compile time error on queries that have union %Parallel with ANN %parallel queries
- Fix query reconstruction for UDAF with FINALIZE
- Update RTPC dispatch code to honor truth values collation
DP-444284: Require SQL privileges to create and drop procedures in TSQL dialects
NOTE: This item may require a change to code, configuration, or operation.
Category: SQL
Platforms: All
Version: 2025.1.5
Users who were previously able to create or drop procedures using the MSSQL or Sybase TSQL dialects may no longer be able to do so without the appropriate SQL administrative privileges. Specifically, users must have the %CREATE_PROCEDURE, %DROP_PROCEDURE, or %CREATE_FUNCTION privilege, depending on the operation being performed. For more information, see SQL Privileges.
DP-448647: Fix deadlock error when creating HNSW index within a transaction
Category: SQL
Platforms: All
Version: 2025.1.5
Previously, a deadlock error could occur when creating an HNSW index within a transaction. The issue has been resolved.
DP-449068: Verify the existence of RTPC condition to prevent UNDEFINED error
Category: SQL
Platforms: All
Version: 2025.1.5
Previously, there was an issue that would return an UNDEFINED error when compiling a SQL query when table statistics were present. In particular, the UNDEFINED error could arise when the system would check for a selectivity value for an equality condition in a JOIN field.
DP-450240: Fix compile time error on queries that have union %Parallel with HNSW Vector Search %parallel queries
Category: SQL
Platforms: All
Version: 2025.1.5
This change fixes a <ZSQER>SQERror+5^%apiSQL compile error on union %Parallel query that has HNSW Vector Search %parallel queries as a union leg.
DP-450328: Fix query reconstruction for UDAF with FINALIZE
Category: SQL
Platforms: All
Version: 2025.1.5
Previously, SQL queries that employed user defined aggregate functions (UDAFs) with FINALIZE functions produced incorrect results when used with UNION %PARALLEL or other scenarios requiring SQL reconstruction. The issue has been resolved.
DP-451452: Update RTPC dispatch code to honor truth values collation
Category: SQL
Platforms: All
Version: 2025.1.5
Fixed a wrong result bug related to RTPC dispatch code for ISNULL truth values.
System
- %Library.GlobalEdit.GetGlobalSizeBySubscript() throws BLOCKNUMBER error
- Fixed msyslog() internal logging issue preventing superserver from starting
- Fixed issue with $vector operations on big strings
DP-448454: %Library.GlobalEdit.GetGlobalSizeBySubscript() throws BLOCKNUMBER error
Category: System
Platforms: All
Version: 2025.1.5
This change fixes an edge case in ##class(%GlobalEdit).GetGlobalSizeBySubscript(,,,,1) that occurred when the selected data range was small.
DP-449782: Fixed msyslog() internal logging issue preventing superserver from starting
Category: System
Platforms: UNIX®
Version: 2025.1.5
Previously, msyslog() error logging overwrote the UNIX domain socket path, which prevented socket cleanup and causes delegation to fail. This change fixes the issue.
DP-450151: Fixed issue with $vector operations on big strings
Category: System
Platforms: All
Version: 2025.1.5
This change resolves an issue with the $vector() operation that could cause it to read and return the incorrect values, particularly when working with big strings.
VS Code
DP-450472: Use UTF-8 encoding when loading test classes in unit test runner
Category: VS Code
Platforms: All
Version: 2025.1.5
Previously, there was an issue that caused the unit test running feature to fail to write test classes to disk using UTF-8 encoding. The issue has been resolved.
xDBCGateway
DP-450892: Update flags in XDBC class reference documentation
Category: xDBCGateway
Platforms: All
Version: 2025.1.5
This change removes a number of 'internal' and 'experimental' markers that were unintentionally left in the class API for the XDBC Gateway (%XDBC.*). This feature is fully supported.
Changes Introduced in 2025.1.4
Analytics - IRIS BI
DP-448363: Correct error in model tree expansion
Category: Analytics - IRIS BI
Platforms: All
Version: 2025.1.4
Previously, there was an error that prevented the Business Intelligence Analyzer from correctly displaying grouped bins of 100 members in a level of a data dimension; instead, it would return a SQLCODE -1 error. This issue has been resolved.
Containers
DP-449047: Correct issue so containers pass healthcheck
Category: Containers
Platforms: All
Version: 2025.1.4
This change resolves an issue that caused all supported containers to fail their healthcheck.
CPF File
DP-446617: Speed up interoperability namespace delete
Category: CPF File
Platforms: All
Version: 2025.1.4
This change improves the speed at which namespaces are deleted, particularly on interoperability-enabled systems with a large number (around 500) of namespaces.
DataMove
- Do not allow change in journal status during DataMove
- Update DataMove statistics more often if processing long strings
DP-447986: Do not allow change in journal status during DataMove
Category: DataMove
Platforms: All
Version: 2025.1.4
This change ensures that if a database has journaling enabled and is currently involved in a DataMove, you cannot disable journaling during the DataMove. Once the DataMove has been completed and deleted, you can change the journal state.
DP-448902: Update DataMove statistics more often if processing long strings
Category: DataMove
Platforms: All
Version: 2025.1.4
Previously, when attempting a DataMove on a global that only contained long strings, there was an issue that could prevent the system from updating the DataMove statistics or stopping the DataMove altogether. This change resolves these issues.
Global Module
- Fix wrong results when there is global/system collation mismatch
- Resolve issue with management of database buffers
DP-446180: Fix wrong results when there is global/system collation mismatch
Category: Global Module
Platforms: All
Version: 2025.1.4
Previously, there was an issue that could cause SQL queries that used the Global Iterator on globals that had not been previously referenced to return missing or incorrect results when the relevant globals had a collation that differed from the system default collation. This issue has been resolved.
To definitively avoid any risk of encountering this issue, ensure that the collations of the data and index globals used by SQL tables match the default collations of the system and database that contain those globals.
DP-448527: Resolve issue with management of database buffers
Category: Global Module
Platforms: All
Version: 2025.1.4
This change resolves an issue in the management of database buffers that could lead the system to write to an incorrect image of a block during a write cycle under extremely rare circumstances. The issue had never been observed to occur.
Integration
DP-446853: Configure generation of classes for empty elements
Category: Integration
Platforms: All
Version: 2025.1.4
Previously, when adding elements with %XML.Utils.SchemaReader, if an element had no sub-elements, but did have a type, the system would not default to creating a class for it but would create one for the type. This behavior is controlled by the KeepEmptyElements property of %XML.Utils.SchemaReader. Now, you may set KeepEmptyElements to 1 to generate classes for all empty elements (that is, elements that do not have sub-elements).
Interoperability
- Remove vestigial Serial MsgBankOperation body type
- Fix error with converting separators in X12 ISA segment
DP-447550: Remove vestigial Serial MsgBankOperation body type
Category: Interoperability
Platforms: All
Version: 2025.1.4
Previously, if a class extended both %SerialObject and %Persistent, the MsgBankOperation would always attempt to send a message as Serial body type, due to the order of the checks. However, the Serial body type was never properly supported, and TCPService would raise an error every time a message with Serial body type was sent by a MsgBankOperation.
The Serial body type has now been completely removed, to avoid raising this error inadvertently.
DP-449111: Fix error with converting separators in X12 ISA segment
Category: Interoperability
Platforms: All
Version: 2025.1.4
When retrieving values from an X12 ISA segment stored in a global, changing the repetition or component separator without also changing the element separator could result in those separators remaining escaped in the output. Instead of being replaced with the specified characters, they could appear as escape sequences.
This update ensures that repetition and component separators are correctly applied as specified when retrieving values, regardless of changes to the element separator.
Journaling
DP-449161: allow Manage^JRNROLL to handle rollbacks by NodeNameInPid jobs
Category: Journaling
Platforms: All
Version: 2025.1.4
Previously, if the CPF setting NodeNameInPid=1, Manage^JRNROLL cannot detect when the Mirror Manager process is performing a transaction rollback and so cannot skip this rollback during mirror start up. This issue has been resolved.
ODBC
DP-447202: Prevent crash when user pass null buffer in SQLBindParam
Category: ODBC
Platforms: All
Version: 2025.1.4
This change corrects an issue that cause the system to attempt writing to a NULL buffer that was passed as an output parameter to SQLBindParameter() ODBC function.
Security
- Change handling of null values returned from DispatchMap() in %CSP.REST.Login() when endpoint is not present
- update OpenSSL version to 3.5.4
DP-440832: Change handling of null values returned from DispatchMap() in %CSP.REST.Login() when endpoint is not present
Category: Security
Platforms: All
Version: 2025.1.4
Previously, requests to non-existent endpoints could cause the generated DispatchMap() method used in %CSP.REST.Login() to return an empty string.
This change introduces default handling for such cases, using the instance parameter HandleCorsRequest as the source of truth, even when the dispatch class maps the route to another subclass of %CSP.REST that uses a different HandleCorsRequest value.
DP-447333: update OpenSSL version to 3.5.4
Category: Security
Platforms: Windows
Version: 2025.1.4
This change updates the OpenSSL libraries on Windows systems to 3.5.4.
Sharding
- Federated Tables support compiling classes without journaling
- Fix wrong results issue with NOT EXIST condition
DP-445308: Federated Tables support compiling classes without journaling
Category: Sharding
Platforms: All
Version: 2025.1.4
This change adds optional arguments to the %SYSTEM.Sharding.CreateFederatedTable() and %SYSTEM.Sharding.ConnectFederatedTable() methods, permitting them to compile proxy classes without journaling. By default, these new arguments are set to 0, meaning the compilation of proxy classes is not journaled. See the class reference for more information, including the new method signatures.
DP-446517: Fix wrong results issue with NOT EXIST condition
Category: Sharding
Platforms: All
Version: 2025.1.4
This change corrects a wrong results issue that prevented NOT EXISTS conditions in a WHERE clause from being evaluated properly.
SQL
- Fix wrong result issues for parallelized BSL queries
- Fix EXISTS with %NOFLATTEN on multiple correlated fields
- Fix aggregation issue that led to wrong results
- Improve optimizer's combined selectivity estimation using uniqueness constraints
- Disable global iterator for non-default storage
- SQL: Correct importing of %Date and %Time fields
- Fix incorrect sorting order for ORDER BY ID DESC clause
- SQL Filer: Correct filing of index with serial sub-field in the map data
- Fix ORDER BY processing in UNION queries for Sybase TSQL
- Correct issues with null-handling functions
- Vector Search: add all fields correctly
- Fix wrong result issues for parallel queries that use a bitmap tempfile
- Fix wrong results issue caused by flattening EXISTS subqueries
- Fix incorrect ascending order for ORDER BY ID DESC clause for queries that use columnar pre-processing plans with GROUP BY
- Fix FRAMESTACK and MAXSTRING errors in queries with many WHERE conditions
- Correct parsing of stored procedures
DP-446041: Fix wrong result issues for parallelized BSL queries
Category: SQL
Platforms: All
Version: 2025.1.4
This change resolves a wrong results issue for parallelized BSL queries with ORDEER BY %ID DESC. This fix applies to parallelized queries using either adaptive parallel execution or the query reconstruction-based parallel mechanism.
DP-446430: Fix EXISTS with %NOFLATTEN on multiple correlated fields
Category: SQL
Platforms: All
Version: 2025.1.4
When evaluating correlated fields in an EXISTS subquery that uses the %NOFLATTEN option, multiple correlated fields were not handled correctly. This issue did not occur without %NOFLATTEN, as query reduction transforms correlated fields in the subquery into conditions on the parent query.
DP-446485: Fix aggregation issue that led to wrong results
Category: SQL
Platforms: All
Version: 2025.1.4
When an expression defined in a subquery was both selected and aggregated in a parent query (such as in the query SELECT t1.Name, t1.Age, t1.Age2, SUM(t1.Age2) FROM ( SELECT p.Name, p.Age, p.Age+p.Age Age2 FROM Sample.PERSON p) t1 ORDER BY t1.Name), it would be evaluated once in the subquery for aggregation, but not in the parent query. This behavior could lead to incorrect query results. As of this release, the issue has been resolved.
DP-446486: Improve optimizer's combined selectivity estimation using uniqueness constraints
Category: SQL
Platforms: All
Version: 2025.1.4
Previously, the optimizer estimated the combined selectivity of predicates on different fields by multiplying their individual selectivities. In cases where fields are constrained by a unique index and equality conditions (for example, A = ? AND B = ? on a unique index (A, B)), this approach could significantly underestimate the number of rows and lead to suboptimal query plans.
This update improves estimation in such scenarios by using a selectivity of approximately 1 / extentsize when a relevant index uniqueness constraint is present and satisfied, resulting in more accurate plan selection.
DP-446528: Disable global iterator for non-default storage
Category: SQL
Platforms: All
Version: 2025.1.4
This change disables the use of the global iterator for maps stored in non-default storage, ensuring more reliable query execution.
DP-446556: SQL: Correct importing of %Date and %Time fields
Category: SQL
Platforms: All
Version: 2025.1.4
This change resolves an issue that caused imports of columns with %Date or %Time types to fail with a SQLCODE -147 error.
DP-446673: Fix incorrect sorting order for ORDER BY ID DESC clause
Category: SQL
Platforms: All
Version: 2025.1.4
Previously, queries using columnar join plans with an ORDER BY ID DESC clause, and no additional ORDER BY or GROUP BY clauses, could return results in ascending order instead of descending. This update ensures the correct sort order is applied.
DP-446733: SQL Filer: Correct filing of index with serial sub-field in the map data
Category: SQL
Platforms: All
Version: 2025.1.4
When a table has a serial sub-field stored in the map data as part of the node's data (not nested within the serial field), performing INSERT or UPDATE operations on the table would result in the map data being incorrectly filed. This issue has been resolved.
DP-446836: Fix ORDER BY processing in UNION queries for Sybase TSQL
Category: SQL
Platforms: All
Version: 2025.1.4
Previously, there was an issue that caused the system to incorrectly parse UNION queries that included ORDER BY clauses in Sybase TSQL, resulting in wrong results. This issue has been resolved.
DP-447340: Correct issues with null-handling functions
Category: SQL
Platforms: All
Version: 2025.1.4
Previously, there was an issue that incorrectly handled null-handling functions, such as NVL, COALESCE, or IFNULL. In particular, queries that select from a view, use a null-handling function in a WHERE clause on a field that is derived from a function or case, use the same field in a GROUP BY, and employ a union were affected. The issue has been resolved.
DP-447418: Vector Search: add all fields correctly
Category: SQL
Platforms: All
Version: 2025.1.4
In certain cases, adding fields for a vector distance function could result in
an
DP-447896: Fix wrong result issues for parallel queries that use a bitmap tempfile
Category: SQL
Platforms: All
Version: 2025.1.4
This change resolves wrong result issues and runtime undefined issues for parallel queries that build a bitmap tempfile using bitmap indices.
DP-448049: Fix wrong results issue caused by flattening EXISTS subqueries
Category: SQL
Platforms: All
Version: 2025.1.4
Flattening an EXISTS subquery into a JOIN can introduce an additional stream to the query block, which may change a singleton SELECT into a non-singleton if the new stream lacks equality conditions on unique fields. This behavior previously led to wrong results issues.
This change ensures that singleton status is recalculated after flattening, ensuring correct query results.
DP-448180: Fix incorrect ascending order for ORDER BY ID DESC clause for queries that use columnar pre-processing plans with GROUP BY
Category: SQL
Platforms: All
Version: 2025.1.4
This change resolves an issue that incorrectly returned rows in ascending order from queries with an ORDER BY ID DESC clause (and no other ORDER BY clause), a GROUP BY clause, and a columnar join plan.
DP-448681: Fix FRAMESTACK and MAXSTRING errors in queries with many WHERE conditions
Category: SQL
Platforms: All
Version: 2025.1.4
Previously, a FRAMESTACK or MAXSTRING error could arise when executing queries with thousands of WHERE conditions. This issue has been resolved.
DP-449170: Correct parsing of stored procedures
Category: SQL
Platforms: All
Version: 2025.1.4
Previously, there was an issue that caused statements that created stored procedures to fail by incorrectly parsing the defined procedure. The issue has been resolved.
System
- Give better detail for <ROUTINELOAD> error
- Fix problem with omitted arguments passed to variable argument list
- Fix unprotected pointer reference in event message allocation
- Fix system startup hang when configured with 2TB of global buffers
DP-448309: Give better detail for <ROUTINELOAD> error
Category: System
Platforms: All
Version: 2025.1.4
This change adds detailed information about the cause of
DP-448332: Fix problem with omitted arguments passed to variable argument list
Category: System
Platforms: All
Version: 2025.1.4
Previously, when a method or routine defined as name(args...) was called with an argument list of commas with no valid arguments, the method or routine could lead to a process termination. This issue has been resolved.
DP-448526: Fix unprotected pointer reference in event message allocation
Category: System
Platforms: All
Version: 2025.1.4
This change corrects a issue where $SYSTEM.Event.Signal(pid, message) could crash (with a segmentation fault or access violation) if it was passed a message within a certain size range and the shared memory heap did not have sufficient memory for the message. Now, this case correctly fails with a <STORE> error.
DP-448888: Fix system startup hang when configured with 2TB of global buffers
Category: System
Platforms: All
Version: 2025.1.4
This change resolves an issue introduced in 2024.3 where the system could hang on startup when configured with at least 268435456 global buffers (approximately 2 terabytes, assuming buffers are 8 kilobytes).
VS Code
DP-449352: Fix issue with code used in VS Code debugger
Category: VS Code
Platforms: All
Version: 2025.1.4
Previously, running the VS Code debugger on a .int file would execute lines of .int code after translating them to the corresponding .cls code. Since this conversion is not always available, the debugger could occasionally highlight uselines of .cls code in the UI. Now, if there is no .cls code that corresponds with .int code, the debugger uses the .int code.
Web Gateway
DP-446609: Fix buffer overflow with long URLs with IIS
Category: Web Gateway
Platforms: Windows
Version: 2025.1.4
Previously, there was an issue that caused a buffer overflow when the IIS web server is used and the URL exceed approximately 500 characters. Such URLs would cause the web server worker process to crash. This issue has been resolved.
Work Queue Manager
DP-449126: Enable Journaling by Default for system work in Work Queue Manager
Category: Work Queue Manager
Platforms: All
Version: 2025.1.4
Previously, there was an issue that could cause automatic system daemons run by the Work Queue Manager might unintentionally run with journaling disabled, particularly if these daemons invoked custom user code. Now, all system daemons are always run with journaling enabled.
Changes Introduced in 2025.1.3
Compatibility Features
DP-444098: [Interoperability] Amend JavaScript for continued use in legacy Studio IDE
Category: Compatibility Features
Platforms: All
Version: 2025.1.3
The JavaScript used in the Zen based DTL Editor has been amended to allow for continued use in the legacy Studio IDE.
DataMove
- Fix UNDEFINED error in DataMove.Data.Force()
- Fix invalid global reference error in %Library.GlobalEdit:CompareRanges()
DP-445182: Fix UNDEFINED error in DataMove.Data.Force()
Category: DataMove
Platforms: All
Version: 2025.1.3
This change resolves an issue that cause DataMove.Data.Force() to fail with an UNDEFINED error.
DP-446670: Fix invalid global reference error in %Library.GlobalEdit:CompareRanges()
Category: DataMove
Platforms: All
Version: 2025.1.3
Previously, the CompareRange() method of the %Library.GlobalEdit class could erroneously return an invalid global reference error under certain circumstances. This issue has been resolved.
Gateways - .NET
DP-446181: Fix issues with external language gateway shutdown
Category: Gateways - .NET
Platforms: All
Version: 2025.1.3
Previously, when stopping an external language gateway during shutdown, the system only checked for exceptions, not status errors, resulting in issues restarting the gateway after shut down. This issue affected each external language server, and has now been resolved.
Installation
DP-445994: Fix IRIS WebGateway upgrade bug - remove insecure OpenSSL libs
Category: Installation
Platforms: All
Version: 2025.1.3
Previously, upgrading the Web Gateway would not remove old and insecure OpenSSL libraries from the /opt/webgateway/bin directory, even though upgrading your instance would remove these libraries. This issue has been resolved, and out of date OpenSSL libraries are removed when you upgrade either your instance or the Web Gateway.
Interoperability
- Visual Trace does not show all events
- Fix incorrect generation of MAXLEN for SAP properties
- Report update request when a job fails
- Interop secondary dbs no longer require %All
- [Interoperability] All production configuration page to be excluded from source control hooks
- Correct miscalculated timer count for MasterPendingResponses
- Update messaging client to 1.4.2
DP-439825: Visual Trace does not show all events
NOTE: This item may require a change to code, configuration, or operation.
Category: Interoperability
Platforms: All
Version: 2025.1.3
Previously, when there were more than 1,000 entries in the log table, the visual trace of a session might not have shown all of the events in the session, even if that was the configured behavior. Now, every event is always shown, so previously set values for LimitEvents and EventsMaxRows in ^EnsPortal.Settings are overridden.
DP-441132: Fix incorrect generation of MAXLEN for SAP properties
Category: Interoperability
Platforms: All
Version: 2025.1.3
This change resolves an issue that generated an incorrect MAXLEN for SAP properties.
DP-441183: Report update request when a job fails
Category: Interoperability
Platforms: All
Version: 2025.1.3
Previously, there was an issue that prevented the system from asking the user "Do you want to force an update" when a job failed. This issue has been resolved.
DP-445030: Interop secondary dbs no longer require %All
Category: Interoperability
Platforms: All
Version: 2025.1.3
Previously, when enabling interoperability for a namespace, the secondary and temporary databases the system automatically created required users to have %All permissions to access them. This has been changed so that now users require only %Admin_Manage these databases.
DP-445223: [Interoperability] All production configuration page to be excluded from source control hooks
Category: Interoperability
Platforms: All
Version: 2025.1.3
The Production Configuration page (Zen based) allows for selecting multiple items to enable or disable. However, this feature did not previously account for a setting that allows a site to exclude the production configuration page from source control hooks. This is now corrected.
DP-446688: Correct miscalculated timer count for MasterPendingResponses
Category: Interoperability
Platforms: All
Version: 2025.1.3
Previously, there was an issue that prevented subsequent <sync>s on the same <call> within a BPL process. That issue has been resolved.
DP-447127: Update messaging client to 1.4.2
Category: Interoperability
Platforms: All
Version: 2025.1.3
This change updates the messaging client to version 1.4.2, which adds ConsumerConfig and ProducerConfig options to Kafka adapters.
JSON
DP-446333: Fix import of JSON strings containing a Unicode character
Category: JSON
Platforms: All
Version: 2025.1.3
Previously, there was an issue that resulted in the improper import of a JSON string via the %FromJSON() or %FromJSONFile methods. In particular, if the JSON string being imported was longer than 8,192 characters and contained at least one Unicode character, then the imported JSON would erroneously contain many $c(0) characters. This issue has been resolved.
Licensing
DP-441735: Fix issue obtaining core license from license server on restart
Category: Licensing
Platforms: All
Version: 2025.1.3
This change resolves an issue that caused an instance to fail to obtain a core license from a license server when it was restarted.
Mirroring
DP-445299: Allow connection of Caché instance to Windows ISCAgent service
Category: Mirroring
Platforms: All
Version: 2025.1.3
This change corrects an issue that prevented the Arbiter of a Caché instance from connecting to the Windows ISCAgent service.
Monitoring
DP-441454: Add method to get all CSP gateway alternative ports
Category: Monitoring
Platforms: All
Version: 2025.1.3
This change adds a method in %CSP.Mgr.GatewayMgr called GetAlternativePorts() to get all the alternative ports of the gateway connection.
ODBC
DP-444546: Do not store ODBC password in registry (Windows) or odbc.ini (Unix)
Category: ODBC
Platforms: UNIX®
Version: 2025.1.3
The system no longer automatically creates or stores ODBC passwords in the Windows registry or in the odbc.ini on Unix. However, if you manually create a new DSN and include a password, that password will still be stored in the Windows registry or in the odbc.ini file, as it was previously.
Security
- Require %Admin_Manage:Use to create, modify, or delete a database
- Fix PROTECT error in /oauth2 application
DP-441086: Require %Admin_Manage:Use to create, modify, or delete a database
Category: Security
Platforms: All
Version: 2025.1.3
This change adds the %Admin_Manage:Use resource as a requirement to creating, modifying, or deleting a database.
DP-445108: Fix PROTECT error in /oauth2 application
NOTE: This item may require a change to code, configuration, or operation.
Category: Security
Platforms: All
Version: 2025.1.3
Previously, the CSPSystem user required READ access to IRIRSSYS to handle the CORS preflight request. This issue would previously cause a PROTECT error and is now resolved.
In addition to that behavior change, the OAuth2.Server.REST class has been renamed to %OAuth2.Server.REST. Any references to this class must be updated or your code will fail to compile. In particular, web applications that your instance has generated as part of an OAuth2 server configuration, such as /oauth2, may specify the old class name.
Sharding
DP-444066: Fix regression causing some queries federated table to fail with NOLINE
Category: Sharding
Platforms: All
Version: 2025.1.3
Previously, there was an issue that caused queries on federated tables to fail with a NOLINE error if they referred to a calculated field whose SqlComputeCode used a SQL query to retried a field from another table. This issue has been resolved.
SMP - System Management Portal
DP-443562: Create source control object before importing documents in SMP
Category: SMP - System Management Portal
Platforms: All
Version: 2025.1.3
Previously, importing documents in the Management Portal ignored the source control status of the documents. This issue has been resolved.
SQL
- Fix wrong results issue for queries with ORDER BY %ID DESC
- Fix TO_CHAR to support $h when the format is time
- Support CTE within CREATE VIEW
- Fix DATEDIFF transform for sargability
- Fix result type of multi-index maps when conditions on ID are present
- Fix issue with TRIM in a subquery
- SQL: Correct datatype output conversion for selected value from a subquery
- RTPC: fix RTPC compilation for queries with %STARTWITH and LIKE
- Disable parallelization for query block with OFFSET
- Use new SQL CPF parameter to disable NLS collation mismatch logging to messages.log
- Correct selectivity for JOINS on outlier fields
- Fix wrong results issues
- Fix automatic frozen plan utility upon upgrade
- SQL: Correct LOAD DATA into a linked table (linked via the JDBC Gateway)
- Prevent override for streamless virtual fields
- Fix missing trailing delimiters in DATEDIFF conditions
- Fix query processing issue with RTPC and an IN list
DP-437743: Fix wrong results issue for queries with ORDER BY %ID DESC
Category: SQL
Platforms: All
Version: 2025.1.3
This change resolves a wrong results issues that affected queries that used an ORDER BY %ID DESC clause.
DP-439424: Fix TO_CHAR to support $h when the format is time
Category: SQL
Platforms: All
Version: 2025.1.3
This change resolves an issue with the TO_CHAR SQL function that prevented it from correctly converting $HOROLOG values to the specified time format string supplied by the format argument to the function.
DP-441317: Support CTE within CREATE VIEW
Category: SQL
Platforms: All
Version: 2025.1.3
This change adds support for Common Table Expressions within a CREATE OR REPLACE VIEW statement.
DP-441437: Fix DATEDIFF transform for sargability
Category: SQL
Platforms: All
Version: 2025.1.3
This change ensures that WHERE conditions involving DATEDIFF expressions are transformed to increase the likelihood that they are sargable.
DP-444252: Fix result type of multi-index maps when conditions on ID are present
Category: SQL
Platforms: All
Version: 2025.1.3
Previosusly, a wrong results issue that arose when three conditions were met. First, there was a WHERE range condition on ID. Second, the optimizer chose a multi-index on bitmap indexes. Finally, the extentsize is 1. This issue has been resolved.
DP-444717: Fix issue with TRIM in a subquery
Category: SQL
Platforms: All
Version: 2025.1.3
This change resolves an issue that caused a query to fail if it used the TRIM SQL function in a subquery.
DP-444802: SQL: Correct datatype output conversion for selected value from a subquery
Category: SQL
Platforms: All
Version: 2025.1.3
Previously, queries that selected a field that required datatype conversion for Display/ODBC from a subquery did not properly return the external format of the field's value. This issue has been resolved.
DP-445153: RTPC: fix RTPC compilation for queries with %STARTWITH and LIKE
Category: SQL
Platforms: All
Version: 2025.1.3
This change resolves an issue that caused queries that use %STARTSWITH or LIKE with a constant value to fail compilation when RTPC was enabled. This issue has been resolved.
DP-445425: Disable parallelization for query block with OFFSET
Category: SQL
Platforms: All
Version: 2025.1.3
This change fixes an issue where parallel queries with the OFFSET command could return RUNTIME UNDEFINED.
DP-445590: Use new SQL CPF parameter to disable NLS collation mismatch logging to messages.log
Category: SQL
Platforms: All
Version: 2025.1.3
This change introduces the DisableNLSCollationMismatchLogging CPF parameter for SQL. When this parameter is set to true, the system does not log warnings to messages.log when SQL queries contain globals that have different NLS collations. However, the warnings still appear in the query plan.
DP-445629: Correct selectivity for JOINS on outlier fields
Category: SQL
Platforms: All
Version: 2025.1.3
This change resolves an issue that caused a significant performance decrease in queries that use a JOIN on outlier fields in equivalence classes, largely affecting upgrades from Caché.
DP-445844: Fix wrong results issues
Category: SQL
Platforms: All
Version: 2025.1.3
This change resolves a wrong results issue that affected queries with WHERE conditions that use BETWEEN clauses combined with arithmatic expressions, or that include repeated use of unary expressions (such as unary negation, %PLUS, %MINUS, TO_NUMBER, or collation functions) within the WHERE clause or elsewhere in the query.
DP-446162: Fix automatic frozen plan utility upon upgrade
Category: SQL
Platforms: All
Version: 2025.1.3
This change resolves an issue that prevented the Frozen/Upgrade status from being correctly applied to query plans where the statement includes the IsolationLevel:0 comment option.
DP-446548: SQL: Correct LOAD DATA into a linked table (linked via the JDBC Gateway)
Category: SQL
Platforms: All
Version: 2025.1.3
Previously, if you used LOAD DATA on a linked table created with a JDBC gateway connection, you could receive the following error message: SQLCODE: <-400>: Fatal error occurred %msg: Index 1 out of bounds for length 1. The issue has been resolved.
DP-446761: Prevent override for streamless virtual fields
Category: SQL
Platforms: All
Version: 2025.1.3
This change resolves an issue with query processing that could cause a full outer join to return an extra empty record.
DP-447096: Fix missing trailing delimiters in DATEDIFF conditions
Category: SQL
Platforms: All
Version: 2025.1.3
This change resolves an issue that caused DATEDIFF conditions to occassionally fail. The issue has been resolved.
DP-447128: Fix query processing issue with RTPC and an IN list
Category: SQL
Platforms: All
Version: 2025.1.3
This change resolves a prepare-time issue that could arise when RTPC is enabled and a query employs an IN list with at least one non-streamless value (such as a BIT).
System
DP-444964: Modified stat collection to avoid changing the argument stack
Category: System
Platforms: All
Version: 2025.1.3
This change resolves an error that could cause a core dump with signal 11 in the ECPCliR process when serving a long string to an ECP application server while ^TRACE is attached to the ECPSvrW process.
VS Code
DP-443739: Fix Lite Terminal syntax coloring
Category: VS Code
Platforms: All
Version: 2025.1.3
Previously, when you typed a leading colon in the Lite Terminal to use a terminal alias (which is not currently supported by the Lite Terminal), syntax coloring would unexpectedly duplicate the user's input. This issue has been resolved.
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
- Fix DataMove query if updates made at same time to multiple DataMoves
- Fix DataMove DataCheck throttle rate
- Single thread DataMove.API.DeleteSourceGlobals()
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.
Gateways - IRIS
DP-441133: Validate Server Name when saving ELS definition
Category: Gateways - IRIS
Platforms: All
Version: 2025.1.2
This change validates a Server Name when saving as a Config.Gateways object. This validation specifically ensures that the Server Name does not contain any of the following characters: \/:*?"<>|
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
- Update libexpat to 2.7.1
- Retain httpd service on Windows in Caché to InterSystems IRIS conversion
- install 64-bit VC++ Redistributables in CE to IRIS conversion if needed
- allow upgrade after an OS upgrade on Unix
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
- Expose SubdirectryLevels in cloud storage inbound adapter
- Interface map utils to call OnGetConnections properly
- Fix loading of DICOM file with Implicit VR syntax and a private sequence
- [Interoperability] Limit message purge when optionalMessageLimitToConfigItems is specified
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
- Fix transaction rollback with LogRollback
- Fix error when dejournaling a journal file created prior to 2025.1
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.
DP-444963: Fix error when dejournaling a journal file created prior to 2025.1
Category: Journaling
Platforms: All
Version: 2025.1.2
This change fixes an issue that resulted in an error "Failed to convert bad journal block to new format" in messages.log when dejournaling a journal file created prior to 2025.1, such as in journal restore or mirroring with a Primary member running on a pre-2025.1 system.
Mirroring
- Address issues that can cause inconsistent data in mirror dejournaling
- Fix issue with running a mirror catchup
- Fix mirror download that could miss some system globals
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.
Monitoring - Logs
- Convert messages to UTF-8 before sending to the OTel exporter
- Allow empty default value in LOGDM config
DP-442833: Convert messages to UTF-8 before sending to the OTel exporter
Category: Monitoring - Logs
Platforms: All
Version: 2025.1.2
This change converts messages to UTF-8 before sending them to the OTel exporter.
DP-444177: Allow empty default value in LOGDM config
Category: Monitoring - Logs
Platforms: All
Version: 2025.1.2
This change allows both a default value and a new value to be empty when editing LOGDMN configurations in CHUI.
This change also sets the interval to 10 seconds, if the config is left empty.
Native - Node.js
DP-442262: Fixing irisnode (non-elsk) loading on redhat 10
Category: Native - Node.js
Platforms: All
Version: 2025.1.2
Previously, on Red Hat 10 machines, the irisnode module was not properly loaded. This issue has been resolved.
DP-444446: Fixing isRunningInDocker function check
Category: Native - Node.js
Platforms: All
Version: 2025.1.2
Previously, there was an issue when checking if code was executed within Docker that could lead to false positives (that is, code that was not executed within Docker was interpreted as being run in Docker) and result in some unfavorable downstream behavior. The 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
- Unauthenticated login to check for system unauthenticated settings
- Enforce safe file extension in Export APIs
- Fix file path handling in DownloadStream Zen method
- Upgrade code for resources that had missing default permissions
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
- Throw Error on All %Date vs %TimeStamp Behavior Changes
- Fix issue that severed link between foreign server and foreign tables
- Fix wrong result issues caused by evaluating conditions too early
- Fix
error in queries with NVL() and NOT IN in a WHERE clause - Resolve error from vector joining queries
- SQL: Correct dts handling
- record unused parameters in CTE definitions
- Regenerate stale cached queries on ECP database servers
- RTPC: correct combining range logic if there is field=exp join
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
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.
UI - DTL Editor
DP-442850: Correct source control error for Deltanji users
Category: UI - DTL Editor
Platforms: All
Version: 2025.1.2
This change resolves an issue that prevented Deltanji users from creating rules using the new rule editor.
VDoc - X12
DP-443356: [Interoperability] Correct macro definition used by X12 Parser
Category: VDoc - X12
Platforms: All
Version: 2025.1.2
This change resolves an issue with the Interoperability X12 Parser that could lead to
unhandled errors being thrown (culminating in an
Changes Introduced in 2025.1.1
Analytics
DP-441462: Prevent uauthorized execution of pivotTable:ParseMDXExpression
Category: Analytics
Platforms: All
Version: 2025.1.1
Users that execute the %DeepSee.Component.PivotTable.ParseMDXExpression() method now require the %DeepSee_Portal:USE permission.
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
- Implement user input escaping in showsource.csp application
- Disable AutoCompile by default for /csp/user, /isc/studio/templates and new CSP application; Tighten privileges for pre-login code
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 the current version, 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. You must now manually compile tag-based CSP pages. 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
- Fix mapping overlap error in DataMove
- New permission required for use of DataMove
- Quote DataMove global mappings in Actions file
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
- Ens.BP.Utils.Upgrade to use minimal memory and avoid STORE error on upgrade
- make Windows Installer product version match instance version
- set INSTALLDIR property before it is being using by custom actions in unattended install
- Perform name validation on insert not modify
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
- Fix bad MAXLEN generated for SAP props
- Make TCP adapter default to not logging connections
- Fix error allowing Record Mapper to open malformed records
- EnsLib.HL7.Message::commitSegmentByIndex() to safely retrieve segment
- Protect EnsPortal.ServiceRegistry.Dialog.* pages
- Ensure that ZEN instance methods can only be called from the current page
- FTP inbound adapter to never create temp file if ArchivePath set
- Update to messaging client to version 1.4.1
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
- Fallback to doing a partial deploy instead of throwing an error for %SwizzleObject and %XML.Adaptor objects
- Removed unnecessary hangs in %occSysDescriptor routine
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
- Keep error status when validating Userinfo response
- Correctly validate pretty-printed values
- Allow the creation of blank web application files via %apiSRC
- do not reset settings in %UnitTest.Managerwithout permissions
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
- Allow SECURITY CHUI to edit LDAP EscalationRole Attribute
- Reduce data collected from WRC contact form submission in Management Portal
- Fix handling of OpenSSL error queue in $System.Encryption APIs
- Input escaping in SQL query editor and supporting APIs
- SQL: LOAD SQL, protect against incorrect SETUSER command
- Strip leading and trailing whitespace for some LDAP properties
- DBEncStartKeyFile now is forced to have a directory
- Make sure encryption key is loaded validating CPF in container
- Don't reset Security.Users ChangePassword flag when set explicitly
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
- fix prepare error for INSERT statements
- use correct SelectMode when generating RTPC query plan
- Apply collation to select and group results
- Correct <UNDEFINDED> in fastInsert for INSERT OR UPDATE %NOLOCK
- Correct filing of a table with a single required field stored in its own global
- cloning correlated fields
- Fix wrong result issues on parallel queries that have aggregates on subqueries
- Correct selectivity of a unique field in one-row table
- Fix clean up of workers in parallel queries
- Fix UNDEFINED issues in queries
- LOAD SQL fails when DIALECT not specified, bug fix to default to 'IRIS'
- Don't rewrite streamless null handling functions
- TT: Exclude collection map from goodindex
- Fix wrong result issue for parallel queries that have GROUP BY on a user-defined function
- Fix compile time errors on initializing variables that has been replaced by literal values
- Fix UNDEFINED errors on queries that have shared ASL modules that have temp-files and uses parallelization
- Don't call copydt for %Exact(field)
- Skip rewriting the null-handling function if the condition does not involve a streamless expression
- Don't regenerate implied internal NCNUL conditions in subquery
- Fix wrong result issue for parallel queries that have joined stream views
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
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
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
- Don't create DataMove on Generate() Error
- Avoid loop in with ADO.NET client
- Fix problem with source control hook
- Fix $increment(^gvn,x) when ignoring
error - DataMove updates multiple copies mapping correctly
- $Order() or Merge with null subscript could fail on U2 instance
- The VSCode Lite Terminal can no longer fail after a Lock command
- IRISTEMP database is no longer a sparse database
- Don't create duplicate IRISMETRICS in CPF file
- Disable fast file expansion on AIX
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
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
- Fix host item, business rule, and send action errors in Production Configuration interface
- Handle invalid classname for get default settings
- SaveProductionHostSettings() to include SC for prod settings
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 Gateway
- set selinux attributes on /opt/webgateway/temp
- Use PING command to test connection health
- Fix regression where web server's signal handler is not restored
DP-438191: set selinux attributes on /opt/webgateway/temp
Category: Web Gateway
Platforms: All
Version: 2025.1.1
This change resolves an issue that arose on Red Hat systems where SELinux is set to enforcing because the installer did not properly create the necessary directories for the Web Gateway, causing Startup errors in the CSP.log.
DP-438680: Use PING command to test connection health
Category: Web Gateway
Platforms: All
Version: 2025.1.1
The Web Gateway checks the health of most connections to the server approximately every 7 minutes. In some cases, the Web Gateway would perform a full request/response cycle with the server to test the health. These cycles have been replaced with a lightweight PING command to lighten the background work of the Web Gateway.
DP-438762: Fix regression where web server's signal handler is not restored
Category: Web Gateway
Platforms: All
Version: 2025.1.1
This change resolves an issue that failed to restore a web server's SIGSEGV/SIGABRT handler after the Web Gateway's SIGSEGV/SIGBRT handler finished, which resulted in the Web Gateway's handler being called repeatedly and flooding CSP.log with the same stack trace.
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: [email protected]
Current release notes (and complete product documentation) can be found online at https://docs.intersystems.com.