InterSystems IRIS for Health™ Change Notes (2024.1.3)
This document is meant to help you assess the impact of upgrading to the InterSystems IRIS for Health 2024.1.3 maintenance release. It also lists the changes since 2024.1.0, grouped by maintenance release category. To see a list of incompatibilities between an earlier version of InterSystems IRIS for Health and the 2024.1.3 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 2024.1.3
Analytics
DP-430388: Fix Typo in Autosave Call in DashboardViewer
Category: Analytics
Platforms: All
Version: 2024.1.3
This change fixes a typo when calling the runAutosave clientMethod in the onbeforeunload handler. This was causing an error that was largely being ignored, but it was logging an error to the console. Since runAutosave was already called on a timer, this change does not cause much functional difference.
DP-433703: Prevent build error from disrupting cube build
Category: Analytics
Platforms: All
Version: 2024.1.3
This change handles error reporting so that a cube built from Architect is not disrupted in the event of a build error on the final fact.
Analytics - IRIS BI
DP-427437: Throw operational errors generated by %LogBuildError()
Category: Analytics - IRIS BI
Platforms: All
Version: 2024.1.3
Previously, when the %LogBuildError() method of the %DeepSee.Utils class failed, its errors were ignored, causing several silent errors. This has been resolved.
Cloud
DP-431703: iris-main: don't retry CPF merge on failure
Category: Cloud
Platforms: All
Version: 2024.1.3
Previously, when you attempt a CPF merge for the first time (meaning there is no "last successful merge file") and it fails, an issue results in repeated change detections and merge attempts. This change resolves those issues by unconditionall updated the CPF mertge file modification date and size for any merge outcome.
Containers
DP-433975: Add mirror state "Waiting" to readiness script
Category: Containers
Platforms: All
Version: 2024.1.3
Previously, when you bring up a pod after deleting the primary and backup pods, an error with readiness checking could prevent a new instance from coming back up. This issue has been resolved by adding a "waiting" stage that differentiates such cases from states that require intervention (like "stopped" or "crashed") or states that should be temporary (like "transition" or "synchronizing").
CSP Server
DP-431230: Do not reauthenticate async WebSockets when CSRFToken=1
Category: CSP Server
Platforms: All
Version: 2024.1.3
This change corrects a bug in which a WebSocket application would call the ^ZAUTHENTICATE routine upon each request if CSRFToken=1 for the application.
With this correction, the application is no longer forced to reauthenticate.
Embedded Python
DP-435978: Fix exception during HALT with %OnClose method calling a Python method
Category: Embedded Python
Platforms: All
Version: 2024.1.3
In some circumstances when the %OnClose method of a class with Python methods is called during HALT, and the method being halted involves objects as property values, there could be a memory access exception that terminates the process unexpectedly. This issue has been resolved.
FHIR
IF-6106: Bearer token string is visible in Interop message trace and FSLOG
NOTE: This item may require a change to code, configuration, or operation.
Category: FHIR
Platforms: All
Version: 2024.1.3
FHIRServer no longer uses the request object (HS.FHIRServer.API.Request) to pass an OAuth bearer token string through the processing infrastructure. Instead, it uses the request object's AdditionalInfo "USER:TokenId" element to pass an identifier that can be used as a key to retrieve the bearer token information from a protected location, rather than directly from the AdditionalInfo "USER:OAuthToken" element.
See the documentation for the GetTokenInfo() and GetTokeInfoItem() methods in the HS.HC.Util.InfoCache class for details on how to use this mechanism.
In paritcular, custom ObjectScript that receives a bearer token via a request object sent by HS.FHIRServer.RestHandler, HF.FHIRServer.RestClient.FHIRService, or HS.FHIRServer.RestClient.Interop will need to be changed immediately to use the methods in HS.HC.Util.InfoCache immediately.
Any custom ObjectScript that places a bearer token string into a request object and subsequently passes the request object to HS.FHIRServer.Service or HS.FHIRServer.Interop.HTTP will continue to work as is. However, InterSystems strongly recommends that you convert this custom code to use HS.HC.Util.InfoCache as soon as possible.
Interoperability
- LDAP Adapter Supports URI Schemes for Connection from Unix Servers
- [EnsLib.ITK.Framework.Operation.SOAPOperationBase support ProxyHttpTunnel
DP-430060: LDAP Adapter Supports URI Schemes for Connection from Unix Servers
Category: Interoperability
Platforms: UNIX®
Version: 2024.1.3
The core InterSystems IRIS class %SYS.LDAP provides the method Initialize() to allow Unix clients to connect to LDAP server(s) using the URI schemes ldap:// or ldaps://
This change adds this capability to the EnsLib LDAP Outbound Adapter. A new setting "Connect With URI Scheme" uses the Initialization() method and not the Init() method. Note: The Initialization() method is not supported for Windows OS clients and a warning is reported in the event log.
The default is to have "Connect With URI Scheme" off.
If "Connect With URI Scheme" is on, you can enter multiple LDAP Server host names in the "LDAP Server" setting.
ldaps:// will be used if Use SSL is enabled.
When "Connect With URI Scheme" is enabled, the setting "LDAP Server" (LDAPServer) can be set to include multiple LDAP Server host names separated by a space.
DP-436465: [EnsLib.ITK.Framework.Operation.SOAPOperationBase support ProxyHttpTunnel
Category: Interoperability
Platforms: All
Version: 2024.1.3
Previously, the ITK SOAP Operation Base class did not support the ProxyHttpTunnel adapter setting. This issue has been resolved.
Mirroring
DP-436342: Make sure "CatchUp" mirror operation won't skip journal file without valid end
Category: Mirroring
Platforms: All
Version: 2024.1.3
This change corrects a problem with the "CatchUp" mirror operation on that could lead to missing updates if a journal file in the middle of a sequential series was truncated or not fully downloaded.
Object Library
DP-434164: Correct regression in OAuth2 Request JWT generation
Category: Object Library
Platforms: All
Version: 2024.1.3
This change resolved an issue that could cause an OAuth2 client to fail to generate request JWT's, depending on the algorithms specified.
Security
- Normalize Error Message for SMP File Imports
- LDAP always fallback to StartTLS if there is a connection failure on port 636
- Return extra LDAP attributes correctly
- Generalized error message for missing directory imports
DP-433707: Normalize Error Message for SMP File Imports
Category: Security
Platforms: All
Version: 2024.1.3
Previously, import dialogs would throw an error when a file did not exist and failed validation, but not if a file was in a restricted directory.
Now, filepath validation explicitly checks for restricted directories. Also, the error messages raised when failing to import a file, whether it is stored in a restricted directory or simply does not exist, no longer explicitly say that the file does not exist.
DP-435305: LDAP always fallback to StartTLS if there is a connection failure on port 636
Category: Security
Platforms: UNIX®
Version: 2024.1.3
On Unix systems, if an LDAP connection fails on port 636, the system now issues a StartTLS command to initiate the connection instead.
DP-435741: Return extra LDAP attributes correctly
Category: Security
Platforms: All
Version: 2024.1.3
Previously, on UNIX platforms, there was an issues that prevented an LDAP server from returning valuable extra information (such as the user's Attributes) to a user record. The issue has been resolved.
DP-435953: Generalized error message for missing directory imports
Category: Security
Platforms: All
Version: 2024.1.3
The Management Portal returns a generic error message when the system fails to import a file and no longer reveals when a directory does not exist.
Sharding
DP-419566: Unmap IRIS.Federated package when cleaning up shard namespace
Category: Sharding
Platforms: All
Version: 2024.1.3
Previously, after deassigning and clearning up a shard namespace, the IRIS.Federated package was not unmapped as expected. This issue has been resolved.
SQL
- Handle $vector properly in application metadata stack
- SQL: Correct JSON_OBJECT with an argument that is a JSON_ARRAYAGG function
- Init AMS info: Add support for oref.prop as SQL host variable
- RTPC: Set procedureblock for rtpcHelper correctly
- RTPC: Don't put literal subscript of SQL host variable in the public list
- Include CONCAT in ODBC function extensions that no longer require bracket fn syntax
- avoid <MAXNUMBER> error when calculating selectivity for large joins
- Include functional index parameters in ExportDDL() output
- Fix UNDEFINED error in parallel queries with correlated subqueries
- Correct compilation error with long CASE statement
- Disable global iterator if map meets certain conditions
- Quote indices correctly in code generation for BUILD INDEX
- Correct parameters passed through GatherTableStats()
- Fix infinite looping in DESC clause
DP-433410: Handle $vector properly in application metadata stack
Category: SQL
Platforms: All
Version: 2024.1.3
Previously, when a vector was a parameter in the Application Metadata Stack, the full list of elements would be stored, resulting in a <MAXSTRING> error for long vectors. This issue has been resolved.
DP-434202: SQL: Correct JSON_OBJECT with an argument that is a JSON_ARRAYAGG function
Category: SQL
Platforms: All
Version: 2024.1.3
Previously, using the JSON_ARRAYAGG function as an argument to the JSON_OBJECT function would return an improperly formated value from the JSON_OBJECT call.
For example:
SELECT JSON_OBJECT('states': JSON_ARRAYAGG(Home_State) ) FROM Sample.Person WHERE Home_State %STARTSWITH 'D'
returned:
{"states":"[\"DE\",\"DE\",\"DE\",\"DE\",\"DE\"]"}
instead of:
{"states":["DE","DE","DE","DE","DE"]}
DP-434358: Init AMS info: Add support for oref.prop as SQL host variable
Category: SQL
Platforms: All
Version: 2024.1.3
This change resolves an issue that caused a SQLCODE -400 error when a dynamic object is used as a host variable in an ORDER BY clause.
DP-435155: RTPC: Set procedureblock for rtpcHelper correctly
Category: SQL
Platforms: All
Version: 2024.1.3
This change corrects an issue that prevented SQL query compilation when converting data between the Logical, Display, and ODBC formats.
DP-435292: RTPC: Don't put literal subscript of SQL host variable in the public list
Category: SQL
Platforms: All
Version: 2024.1.3
This change corrects an issue that caused compile time errors in embedded SQL queries when a SQL host variable is a literal, not a number.
DP-435347: Include CONCAT in ODBC function extensions that no longer require bracket fn syntax
Category: SQL
Platforms: All
Version: 2024.1.3
The CONCAT ODBC function extension no longer required the traditional bracket function syntax.
DP-435639: avoid <MAXNUMBER> error when calculating selectivity for large joins
Category: SQL
Platforms: All
Version: 2024.1.3
Previously, calculating the selectivity value for SQL statements that employ large joins could result in a <MAXNUMBER> error. This issue has been resolved.
DP-435866: Include functional index parameters in ExportDDL() output
Category: SQL
Platforms: All
Version: 2024.1.3
Previously, $SYSTEM.SQL.Schema.ExportDDL() did not include parameters in the outputted DDL for functional index definitions, such as IGNOREPUNCTUATION on %iFind indices. If these parameters are set to a non-default value, they are now exported.
DP-435928: Fix UNDEFINED error in parallel queries with correlated subqueries
Category: SQL
Platforms: All
Version: 2024.1.3
Previously, queries executed in parallel that had correlated subqueries could occassionally fail with an UNDEFINED error. This issue has been resolved.
DP-436122: Correct compilation error with long CASE statement
Category: SQL
Platforms: All
Version: 2024.1.3
This change resolves an issue that caused the system to raise an error when a long CASE statement was used inside a SELECT query.
DP-436567: Disable global iterator if map meets certain conditions
Category: SQL
Platforms: All
Version: 2024.1.3
Previously, there was a SUBSCRIPT error that could prevent results from being returned properly. The issue has been resolved.
DP-436828: Quote indices correctly in code generation for BUILD INDEX
Category: SQL
Platforms: All
Version: 2024.1.3
This change resolves an issue that incorrectly formated index names while processing a BUILD INDEX command, causing unexpected errors.
DP-436865: Correct parameters passed through GatherTableStats()
Category: SQL
Platforms: All
Version: 2024.1.3
This change resolves an issue that incorrectly passed parameters through the $SYSTEM.SQL.Stats.Table.GatherTableStats() method, resulting in an unexpected SYNTAX error.
DP-436998: Fix infinite looping in DESC clause
Category: SQL
Platforms: All
Version: 2024.1.3
Previously, there was an issue that caused queries with an ORDER BY ID DESC clause to be caught in an infinite loop. This issue has been resolved.
System
- Fix error handling when redirecting output in %ToJSON()
- Prevent storing a list longer than the maximum string length
DP-435328: Fix error handling when redirecting output in %ToJSON()
Category: System
Platforms: All
Version: 2024.1.3
Previously, if you called %ToJSON(), redirected the output, and there was an error during the output, the system could throw an exception that would terminate the process. This issue has been resolved.
DP-437169: Prevent storing a list longer than the maximum string length
Category: System
Platforms: All
Version: 2024.1.3
Previously, on Unicode installations, appending a list element to a global using the syntax
SET $LIST(^gloref,*+1)=
Unit Tests
DP-434894: Fix hunspel library loading on linux platforms.
Category: Unit Tests
Platforms: All
Version: 2024.1.3
This change reolves an issue that prevented some iKnow classes from being loaded on Linux platforms.
VS Code
- Show correct terminal prompt in Lite Terminal
- Lite Terminal should only send prompt if child process is ready for input
DP-435146: Show correct terminal prompt in Lite Terminal
Category: VS Code
Platforms: All
Version: 2024.1.3
Previously, when the terminal prompt had been changes with $SYSTEM.Process.TerminalPrompt(), the change would not be visible until a new session was started. This issue has been resolved.
DP-435368: Lite Terminal should only send prompt if child process is ready for input
Category: VS Code
Platforms: All
Version: 2024.1.3
Previously, there was an error with processing in the Lite Terminal that could cause it to prompt the user for input before it is ready to process a new command. This issue has been resolved.
Changes Introduced in 2024.1.2
Fixed Security Issues
DP-427671
CWE: CWE-434: Unrestricted Upload of File with Dangerous Type
Severity: Medium
CVSS Score: 4.3
Version: 2024.1.2
FIXED: For particular portal pages, a user may be able to upload file types other than those listed in the upload dialog.
DP-427673
CWE: CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
Severity: Medium
CVSS Score: 6.4
Version: 2024.1.2
FIXED: For a particular page within InterSystems portal applications, an attacker may be able to craft a malicious link to execute arbitrary JavaScript.
DP-432190
CWE: CWE-613: Insufficient Session Expiration
Severity: Medium
CVSS Score: 5.6
Version: 2024.1.2
FIXED: Under certain configurations, explicit OAUTH logout may not complete, and a session would still be valid until it expired.
DP-432619
CWE: CWE-284: Improper Access Control
Severity: Medium
CVSS Score: 5.4
Version: 2024.1.2
FIXED: A user may be able to view some entries within other users’ SQL query history (only the SQL statements themselves, not the results of the queries).
Analytics
DP-433422: Fix call to delete facts in UPDATEFACTSTEMP task
Category: Analytics
Platforms: All
Version: 2024.1.2
This change ensures that calls to %SynchronizeCube in asynchronous mode correctly delete facts corresponding to deletions of source records.
Analytics - IRIS BI
- Restrict file types in analytics import options
- Security updates for Business Intelligence dashboard
- Prevent XSS attacks previously possible through certain BI dashboard fields
- CSPSHARE parameter removed from IRIS BI export URLs
DP-430839: Restrict file types in analytics import options
Category: Analytics - IRIS BI
Platforms: All
Version: 2024.1.2
Before this change, it was possible to upload any file type on the Business Intelligence Image Upload page, the Term List Manager import option, and the PMML Model Tester import option.
With this change, the file types are restricted. The Image Upload page accepts only image file types, the Term List Manager accepts only .xls or .xlsx files, and the PMML Model Tester accepts only .xml and .pmml files.
DP-431453: Security updates for Business Intelligence dashboard
Category: Analytics - IRIS BI
Platforms: All
Version: 2024.1.2
This change improves the security of the InterSystems IRIS Business Intelligence dashboard.
DP-431612: Prevent XSS attacks previously possible through certain BI dashboard fields
Category: Analytics - IRIS BI
Platforms: All
Version: 2024.1.2
This change improves the security of the InterSystems IRIS Business Intelligence dashboard.
DP-432093: CSPSHARE parameter removed from IRIS BI export URLs
Category: Analytics - IRIS BI
Platforms: All
Version: 2024.1.2
Previously, IRIS BI export utilities used the CPSHARE parameter to handle session cookies. To avoid unnecessary conflict with the application's "Prevent login CSRF attack" web security setting, this parameter is no longer used. Instead, the CSP architecture now automatically maintains the session.
Containers
DP-432047: Improve error reporting for unsupported architectures
Category: Containers
Platforms: All
Version: 2024.1.2
Previously, starting an InterSystems IRIS container on an unsupported CPU architecture would return a somewhat vague error message. This error message has been improved to say explicitly that the CPU architecture is unsupported.
CSP / ZEN
- Enable the Setting "Prevent Login CSRF Attack" by Default for New Applications and InterSystems IRIS Applications
- Remove CSPSHARE from SQL Dialog url
DP-429338: Enable the Setting "Prevent Login CSRF Attack" by Default for New Applications and InterSystems IRIS Applications
Category: CSP / ZEN
Platforms: All
Version: 2024.1.2
DP-421886 hardens the system against session fixation attacks. For CSP applications, session sharing with CSPSHARE=1 isn't allowed anymore with "Prevent Login CSSRF attack" checked. "Prevent Login CSSRF attack" should be checked by default, according to the following rules:
1. New CSP/ZEN apps that created by clients should have "Prevent Login CSRF Attack" enabled by default.
2. The following InterSystems IRIS applications should have "Prevent Login CSRF Attack" enabled by default: /ui/interop/rule-editor, /csp/broker, /csp/sys, /csp/sys/exp, /csp/sys/mgr, /csp/sys/op, /csp/sys/sec, /csp/documatic, /isc/pki.
DP-433777: Remove CSPSHARE from SQL Dialog url
Category: CSP / ZEN
Platforms: All
Version: 2024.1.2
Previously, the SQL interface in the Management Portal used the CPSHARE parameter to handle session cookies. To avoid unnecessary conflict with the application's "Prevent login CSRF attack" web security setting, this parameter is no longer used. Instead, the CSP architecture now automatically maintains the session.
CSP Server
DP-433569: web gateway metric accuracy
Category: CSP Server
Platforms: All
Version: 2024.1.2
Previously, the web gateway metrics API could report inaccurate latency and connection counts. This issue has been resolved.
Embedded Python
DP-429194: WSGI Fixes and Tweaks in Preparation for Experimental Release
Category: Embedded Python
Platforms: All
Version: 2024.1.2
This change makes some tweaks and fixes related to the new WSGI web application feature. Includes StreamTrait changes, Python module changes, error message updates, and updates to the Security.Applications class. These are mainly quality-of-life upgrades, except for one bug fix that corrects an incorrect content-length header in a specific edge case.
FHIR Server
IF-7521: FHIRServer Interop Request: UsernameGet() Method Causes Viewing Failure without %HS_ImpersonateUser
Category: FHIR Server
Platforms: All
Version: 2024.1.2
Previously, the system would fail to display HS.FHIRServer.Interop.Requests messages when the username differed from the viewing user's username, leading to a view failure in the trace. This issue has been resolved.
Gateways - Python
DP-432446: use irispython 5.0.0
Category: Gateways - Python
Platforms: All
Version: 2024.1.2
This change increases the version of the irispython .whl to 5.0.0.
Installation
DP-435063: Fix typo in SuperServer port conversion
Category: Installation
Platforms: All
Version: 2024.1.2
This change corrects an issue with creating a new SuperServer port when ^CONFIG("Startup","DefaultPort") is not defined during an upgrade conversion.
Interoperability
DP-433767: Correct inefficient Business Process query used to find pending responses
Category: Interoperability
Platforms: All
Version: 2024.1.2
This change ensures that a query issued by a Business Process to identify pending requests only references tables that used in the query.
Journaling
DP-432348: Error renaming journal file no longer causes system to hang
Category: Journaling
Platforms: All
Version: 2024.1.2
Previously, an error renaming journal files could cause journal switch to fail and the system to hang in a transient condition. This has been fixed.
Management Portal
DP-434292: Escape output captured by %CSP.Portal.SourceControl.IO if NewLineTranslation is set
Category: Management Portal
Platforms: All
Version: 2024.1.2
Previously, some line breaks added by %CSP.Portal.SourceControl.IO were HTML-escaped, resulting in an incorrect display of source control output in the Management Portal. This issue has been resolved.
Natural Language Processing
DP-432596: Don't strip punctuation when normalizing user input
NOTE: This item may require a change to code, configuration, or operation.
Category: Natural Language Processing
Platforms: All
Version: 2024.1.2
iKnow APIs no longer strip punctuation when normalizing user input.
You can manually strip punctuation from user input to avoid unintended behavior.
Networking
DP-434431: Correct <WRITE> error
Category: Networking
Platforms: All
Version: 2024.1.2
This change resolves an issue that caused a <WRITE error when the first write command was issued before a remote member has issued a read command for the SSL TCP device.
NLP Core
- Upgrade Hunspell library to version 1.3.4
- Remove UIMA references in InterSystems IRIS Java pom.xml file
DP-431233: Upgrade Hunspell library to version 1.3.4
Category: NLP Core
Platforms: All
Version: 2024.1.2
This change upgrades the Hunspell library to version 1.3.4.
DP-433246: Remove UIMA references in InterSystems IRIS Java pom.xml file
Category: NLP Core
Platforms: All
Version: 2024.1.2
All UIMA components were removed from InterSystems IRIS in a previous release. This change removes references to UIMA from InterSystems IRIS Java pom.xml.
Object Library
- $SYSTEM.OBJ.ExportUDL() no longer appends a newline after final line of text
- Resource cleanup daemon was not working
DP-432266: $SYSTEM.OBJ.ExportUDL() no longer appends a newline after final line of text
Category: Object Library
Platforms: All
Version: 2024.1.2
Previously $SYSTEM.OBJ.ExportUDL() appended a newline after the last line of text, while the Atelier API did not. This caused erroneous diffs in source control for customers who used both APIs. Now neither API appends a newline after the last line of text, which eliminates the risk of these erroneous diffs.
DP-433351: Resource cleanup daemon was not working
Category: Object Library
Platforms: All
Version: 2024.1.2
This change ensures that resources claimed by a job are correctly cleaned up when the job unexpectedly terminates, including in the event of a system crash.
ODBC
DP-432012: Upgrade unixODBC to 2.3.12
Category: ODBC
Platforms: UNIX®
Version: 2024.1.2
This change upgrades unixODBC to version 2.3.12,
Security
- Enable access to Configuration menu from non-%SYS namespaces
- CSP URL prefix used with OAuth2 logout URL
- New web applications and various built-in applications have "Prevent Login CSRF Attack" enabled by default
- Define all INFORMATION.SCHEMA catalog classes as READONLY
- Handle POST requests in OAuth2.Response
- Modify OAuth2.Response CSRF protections for the form_post response type
- Fall back to use StartTLS if LDAP connection fails with a specified port
- correct false negatives on LDAP server
DP-430206: Enable access to Configuration menu from non-%SYS namespaces
Category: Security
Platforms: All
Version: 2024.1.2
Fixes a bug in which many options in the System Administration > Configuration menu were not shown unless you were in the %SYS namespace. The same bug generated the following error message in the Application Error log for the namespace you were in:
<CLASS DOES NOT EXIST>IsShardingEnabled+2^%CSP.UI.Portal.Sharding.Utils.1 *Security.Services
DP-432291: CSP URL prefix used with OAuth2 logout URL
Category: Security
Platforms: All
Version: 2024.1.2
Previously the logout URI generated by {{##class(%SYS.OAuth2.Authorization).GetLogoutEndpoint()}} would not include the CSP URL prefix. Now, if a prefix is configured for the OAuth2 client's Redirect URI, then it will be used for the logout URI too.
DP-432708: New web applications and various built-in applications have "Prevent Login CSRF Attack" enabled by default
Category: Security
Platforms: All
Version: 2024.1.2
New user-created web applications now have "Prevent Login CSRF Attack" enabled by default.
The following InterSystems IRIS applications also now have "Prevent Login CSRF Attack" enabled by default:
/csp/broker /csp/sys /csp/sys/exp /csp/sys/mgr /csp/sys/op /csp/sys/sec /csp/documatic /isc/pki /ui/interop/rule-editor
DP-432769: Define all INFORMATION.SCHEMA catalog classes as READONLY
Category: Security
Platforms: All
Version: 2024.1.2
Previously, two of the INFORMATION.SCHEMA classes used for SQL Catalog information where not defined as READONLY; these were INFORMATION.SCHEMA.CURRENTCONNECTIONS and INFORMATION.SCHEMA.STATEMENTPRIVACTIONS. This has been corrected.
DP-432970: Handle POST requests in OAuth2.Response
Category: Security
Platforms: All
Version: 2024.1.2
A previous change added logic to OAuth2.Response to handle OPTIONS requests to this endpoint separately from the expected GET request. However, it also disallowed POST requests, which are needed to support the "form_post" response mode (https://openid.net/specs/oauth-v2-form-post-response-mode-1_0.html).
This change allows processing of POST requests.
DP-432971: Modify OAuth2.Response CSRF protections for the form_post response type
Category: Security
Platforms: All
Version: 2024.1.2
This change modifies OAuth2.Response CSRF protections for the form_post response type.
DP-434470: Fall back to use StartTLS if LDAP connection fails with a specified port
Category: Security
Platforms: UNIX®
Version: 2024.1.2
With this change, you may specify a port as part of the hostname without changing your LDAP configuration on Unix clients. If you had specified a non-encrypted port in your hostname, InterSystems recommends removing it to use 636 (the default port number) or specify a port which is encrypted with TLS.
DP-434822: correct false negatives on LDAP server
Category: Security
Platforms: All
Version: 2024.1.2
Previously, a user could get false negatives on test connections based on the configuration of an LDAP server. This issue has been resolved.
SMP - System Management Portal
DP-433116: Properly escape values when printing a result set as CSV
Category: SMP - System Management Portal
Platforms: All
Version: 2024.1.2
Previously, when printing the results of a query in the Management Portal, values and column names that contained a double-quote character were not being escaped properly. This has been corected.
SQL
- Fix Bug with YEAR() Transform
- TT: correct error msg if sample size = 0
- SQL Parser: Correct parsing of --comment after single character token
- check the type of val when calculate the avg length of windows function
- Correct the checking for window functions
- resolve column number issue in SQL Shell interface
- Fix a code generation issue on parallelized, cached, correlated subqueries
- SQL DDL: Correct locking for BUILD INDEX statement
- Correctly collect query parameter when combining range conditions
DP-430073: Fix Bug with YEAR() Transform
Category: SQL
Platforms: All
Version: 2024.1.2
An issue where the YEAR() function returned an "undefined" error has been resolved.
DP-433248: TT: correct error msg if sample size = 0
Category: SQL
Platforms: All
Version: 2024.1.2
This change alters the error message raised when issuing a TUNE TABLE command with a sample size of 0. The
new error message reads: "Failed to get sample of data from the table
DP-433373: SQL Parser: Correct parsing of --comment after single character token
Category: SQL
Platforms: All
Version: 2024.1.2
An issue has been resolved with the SQL parsing of a --comment at the end of a line of an SQL statement when the comment follows a single character token with no whitespace between the comment and the token.
DP-433397: check the type of val when calculate the avg length of windows function
Category: SQL
Platforms: All
Version: 2024.1.2
This change fixes a <SUBSCRIPT> error when using a window function in a nested query, without adding it to the select list of the outermost query.
DP-433460: Correct the checking for window functions
Category: SQL
Platforms: All
Version: 2024.1.2
This change resolves an <UNDEFINED> error that arose when using window functions.
DP-433946: resolve column number issue in SQL Shell interface
Category: SQL
Platforms: All
Version: 2024.1.2
This change resolves an issue in code generated for queries that specified more than 128 columns in the SQL Shell interface.
DP-434235: Fix a code generation issue on parallelized, cached, correlated subqueries
Category: SQL
Platforms: All
Version: 2024.1.2
This change fixes a code generation issue that could cause runtime <UNDEFINED> errors in sub-queries that were parallelized, cached, and correlated.
DP-434300: SQL DDL: Correct locking for BUILD INDEX statement
Category: SQL
Platforms: All
Version: 2024.1.2
This change ensures that a BUILD INDEX statement successfully acquires an extent-level lock during a build.
DP-434443: Correctly collect query parameter when combining range conditions
Category: SQL
Platforms: All
Version: 2024.1.2
This change corrects an issue with combining range conditions (such as using < and > in a single condition instead of using BETWEEN) in SQL queries.
System
- Fix instance variable handling in $isvector
- Change DataMove state to ActivateReady/Run after permission problem during Activate
- Fix database corruption possible in multi-volume databases with certain combinations of truncation and expansion
- Fix writing when converting Vector global in big string blocks of multi-volume DB.
- Fix DataMove mappings
DP-432506: Fix instance variable handling in $isvector
Category: System
Platforms: All
Version: 2024.1.2
Previously, the implementation of $isvector() in vector.cpp did not handle the case of instance variables or properly pop instance variables off of the argstack, leading to corruption of the argstack. This has been fixed.
DP-433269: Change DataMove state to ActivateReady/Run after permission problem during Activate
Category: System
Platforms: All
Version: 2024.1.2
Previously, when an error occurred during DataMove startup, users could not restart it without manual intervention and had to manually change the state to ActiveReady. The system now handles such errors automatically, including setting the state to ActiveReady.
DP-433375: Fix database corruption possible in multi-volume databases with certain combinations of truncation and expansion
Category: System
Platforms: All
Version: 2024.1.2
Previously, under extremely rare circumstances, truncated a multi-colume database could corrupt a value in the database label, causing the process to encounter <DISKHARD> errors if it continues to run and read blocks from said database. This issue has been resolved.
DP-433429: Fix writing when converting Vector global in big string blocks of multi-volume DB.
Category: System
Platforms: All
Version: 2024.1.2
This change resolves an issue that casued the system to incorrectly write string blocks back to a volume file when converting a vector global.
DP-433501: Fix DataMove mappings
Category: System
Platforms: All
Version: 2024.1.2
This change resolves an issue that prevented Data Move from moving data between databases when certain mappings were used.
Web Services
DP-433047: Do not disable I/O redirection in SOAP log
Category: Web Services
Platforms: All
Version: 2024.1.2
Previously, SOAP logging logic explictly disabled I/O redirection, which could cause an issue if SOAP logic was called in a context where I/O redirection is turned on. This could cause issues with a REST service invoking a SOAP client; clearing I/O redirection would either cause the headers to be omitted or for the response to be truncated (depending on the size of the response). The SOAP logging logic has been corrected not to modify the redirection status of the current device.
Work Queue Manager
DP-434279: Fix freeing of message space in shared memory heap
Category: Work Queue Manager
Platforms: All
Version: 2024.1.2
Previously, when the length of an event message sent by the Event Signal was greater than 64 KB and was subsequently freed, multiple pages in the shared memory heap could be lost. This issue has been resolved.
Changes Introduced in 2024.1.1
Analytics - IRIS BI
- Enforce pWait parameter when Resultset:%ExecuteAsynch fails to obtain a write lock
- Change %TEST column to IrisBITest to avoid requiring delimited identifiers
- Provide more context information in drill-down labels in pivot tables
- Make Save behavior of locked pivot tables more intuitive
DP-432207: Enforce pWait parameter when Resultset:%ExecuteAsynch fails to obtain a write lock
Category: Analytics - IRIS BI
Platforms: All
Version: 2024.1.1
Previously, when a %DeepSee.ResultSet:%ExecuteAsynch call with parameter pWait=1 failed to obtain a write lock on a query that was already being worked on my another ResultSet, it could ignore the pWait parameter, resulting in a faulty response. Now when a call fails to obtain a write lock, the pWait parameter is enforced and the %DeepSee.ResultSet:%ExecuteAsynch call will wait for completion until timeout.
DP-432576: Change %TEST column to IrisBITest to avoid requiring delimited identifiers
Category: Analytics - IRIS BI
Platforms: All
Version: 2024.1.1
Previously, cubes with a build restriction had a column with the delimited alias %TEST, which could then be treated as a literal by external SQL servers. However, this alias would cause a compile failure in InterSystems IRIS when delimited identifiers were turned off. The column alias has been changed to IrisBITest, which makes it compatible with both external servers and InterSystems IRIS servers for which delimited identifiers are turned off.
DP-432611: Provide more context information in drill-down labels in pivot tables
Category: Analytics - IRIS BI
Platforms: All
Version: 2024.1.1
Previously, when clicking through drill-down levels, the Analyzer showed only the level name and not the member name; as a result of this, the context of a pivot table might not be clear. This change adds more context information to the Analyzer's drill-down labels.
DP-432616: Make Save behavior of locked pivot tables more intuitive
Category: Analytics - IRIS BI
Platforms: All
Version: 2024.1.1
This change modifies the Analyzer to make various behaviors related to locked tables more intuitive. These include:
- Tables that are not locked have no restrictions outside of regular security restrictions.
- If a saved table is locked, it is not possible to change or delete its definition.
- A locked table can be saved with the Save As option; this is subject first to Locked table rules and second to other permissions.
- A locked table cannot be saved with the Save option or deleted until the lock is manually removed.
Analytics - MDX Engine
DP-432237: Fix bookkeeping for cell cache when pre-computing
Category: Analytics - MDX Engine
Platforms: All
Version: 2024.1.1
This change ensures that the MDX engine can recognize precomputed cell aggregates during a cube build.
Analytics - Reports
DP-429661: Upgrade Formatting Objects Processor from 2.4 to 2.9 for Zen Reports
Category: Analytics - Reports
Platforms: All
Version: 2024.1.1
Upgraded Formatting Objects Processor from version 2.4 to version 2.9 for Zen Reports.
DP-432529: Update PDFBox source files
Category: Analytics - Reports
Platforms: All
Version: 2024.1.1
The change updates the source files for PDFBox to version 2.0.31.
Backup/Restore
DP-429299: fix some incorrect error statuses returned by Restore() and FinishRestore()
Category: Backup/Restore
Platforms: All
Version: 2024.1.1
Previously, Backup.Online.FinishRestore() would sometimes return an error status, despite executing sucessfully. This issue has been resolved.
This change also addresses some cases where the error returned by Backup.Online.Restore() may not contain the real error that caused the database to fail restoriation.
CCR Client Tools
DP-431799: Fix error in BaselineExport()
Category: CCR Client Tools
Platforms: All
Version: 2024.1.1
Previously, BaselineExport() could fail while querying for classes to export. This issue has been resolved.
Containers
- Update Namespaces Before "Execute" Actions Are Run
- Upgrade to httpd 2.4.59 in WebGateway-LockedDown Docker image
DP-430357: Update Namespaces Before "Execute" Actions Are Run
Category: Containers
Platforms: All
Version: 2024.1.1
The change ensures that during a CPF merge, all database and namespace actions (for example, "CreateDatabase") are run before "Execute" actions are run. This prevents possible
DP-432035: Upgrade to httpd 2.4.59 in WebGateway-LockedDown Docker image
Category: Containers
Platforms: All
Version: 2024.1.1
This change upgrades httpd to version 2.4.59 in the WebGateway-LockedDown Docker image.
CPF File
- Fix CPF conversion of [Gateways] section
- Activate namespace changes before other [Actions] need them
DP-429759: Fix CPF conversion of [Gateways] section
Category: CPF File
Platforms: All
Version: 2024.1.1
This change corrects the conversion of the [Gateways] section of the CPF when upgrading to a release with this change.
DP-432379: Activate namespace changes before other [Actions] need them
Category: CPF File
Platforms: All
Version: 2024.1.1
Previously, [Actions] that required activation of a certain namespace could execute before that namespace was activated, causing a Namespace error. Namespace activation now takes place before the [Actions] that need them.
CSP / ZEN
DP-430532: Correct errors in method generators in %ZEN.Component.object
Category: CSP / ZEN
Platforms: All
Version: 2024.1.1
This change corrects the method generators in %ZEN.Component.object.
CSP Server
DP-431672: Security improvements for handling OAuth2 tokens
Category: CSP Server
Platforms: All
Version: 2024.1.1
This change improves security for OAuth2 tokens.
Embedded Python
- Stop fallback to default python if PythonRuntimeLibrary is set
- Add Embedded Python Events to Feature Tracker
- Change format of Feature Tracker data for embedded Python
- Fix crash when embedded Python calls SAX Parser
- order of mgr/python and lib/python in sys.path changed
DP-430050: Stop fallback to default python if PythonRuntimeLibrary is set
Category: Embedded Python
Platforms: All
Version: 2024.1.1
This change prevents the system from falling back to use the default Python option if PythonRuntimeLibrary (a CPF parameter) is set, but the system cannot access the file.
DP-430260: Add Embedded Python Events to Feature Tracker
Category: Embedded Python
Platforms: All
Version: 2024.1.1
Adds new Public API %SYS.Python.IrisPlatform().
Adds the following Embedded Python events to feature tracker:
FT.EP_IRISInsidePython (the number of times InterSystems IRIS is called from inside Python) FT.EP_PythonInsideIRIS (the number of times Python is called from inside InterSystems IRIS) FT.EP_PythonRuntimeLibrary (the location of the Python runtime library) FT.EP_platform (the Python platform string)
DP-430573: Change format of Feature Tracker data for embedded Python
Category: Embedded Python
Platforms: All
Version: 2024.1.1
This change adjusts the format of the data that the Feature Tracker sends when embedded Python is used.
DP-430600: Fix crash when embedded Python calls SAX Parser
Category: Embedded Python
Platforms: All
Version: 2024.1.1
This change fixes a bug that caused a crash when embedded Python called methods in %XML.Reader (which uses the SAX Parser).
DP-432350: order of mgr/python and lib/python in sys.path changed
Category: Embedded Python
Platforms: All
Version: 2024.1.1
Previously, because mgr/python did not come before lib/python in sys.path, customer changes to iris_site.py were overwritten on upgrading. Now mgr/python comes before lib/python, allowing the customer to mask iris_site.py and retain their changes to that file.
Global Module
- Fix system hangs on failure writing to IRISTEMP (especially due to ENOSPC)
- validation for incoming ECP connections
DP-429086: Fix system hangs on failure writing to IRISTEMP (especially due to ENOSPC)
Category: Global Module
Platforms: AIX
Version: 2024.1.1
This change fixes two errors in the error handling logic for asynchronous I/O database writes that could lead to a system hang when writing errors to IRISTEMP. The issue most commonly occurred when running out of space in a filesystem for IRISTEMP on UNIX or Linux systems; it was rare to encounter the error on a Windows system.
The first error had previously caused the write daemon failed to release ownership of the globals resource, leading to a system hang.
The second error caused extreme slowness due to the write daemon taking too long to retry writing and being unable to keep pace with the system.
DP-429732: validation for incoming ECP connections
Category: Global Module
Platforms: All
Version: 2024.1.1
This change validates all ECP connections before they are accepted or fully activated. Once the connections are validated, the proper daemons are started. If the connections are not validated, they are dropped and logged.
Healthcare Interoperability
HSIEC-9321: Corect removal of submission sets associated with documents
Category: Healthcare Interoperability
Platforms: All
Version: 2024.1.1
Previously, the removal of a document would trigger the removal of a submission set with both type IsSnapshotOf and HasMember. This change corrects that behavior, so removing a document only removes submissions sets with a type of IsSnapshotOf.
Installation
DP-429584: Unable to launch documentation from the cube
NOTE: This item may require a change to code, configuration, or operation.
Category: Installation
Platforms: All
Version: 2024.1.0
If you are using Windows IIS as your web server or have upgraded from either 2023.2 or 2023.3, then you cannot open documentation through the launcher by default. To manually create a workaround, see the "Connect Your Web Server Manually" section of "Access the Management Portal and Other Built-in Web Applications Using Your Web Server."
DP-430721: Install all localization files
Category: Installation
Platforms: UNIX®
Version: 2024.1.1
This change updates the UNIX® installer to dynamically find and copy all localization files into <install_dir>/mgr/Locale.
IntegratedML - Core
- Updates AutoML to support Python 3.12
- Correct index error when predicting probability in AutoML in newer dependency kits
- Python changes for 3.12
DP-431524: Updates AutoML to support Python 3.12
Category: IntegratedML - Core
Platforms: All
Version: 2024.1.1
This change updates AutoML to support Python 3.12.
DP-432826: Correct index error when predicting probability in AutoML in newer dependency kits
Category: IntegratedML - Core
Platforms: All
Version: 2024.1.1
Previously, on platforms using newer tensorflow and related dependencies, an error could occur when predicting probability for a single row of data. This has been corrected.
DP-432924: Python changes for 3.12
Category: IntegratedML - Core
Platforms: All
Version: 2024.1.1
This change enables the use of Python 3.12.
Interoperability
- Prevent silent failure and orphaning during Business Processes cleanup
- [Interoperability] Message Search Cancel to use $SYSTEM.SQL.CancelQuery()
DP-431491: Prevent silent failure and orphaning during Business Processes cleanup
Category: Interoperability
Platforms: All
Version: 2024.1.1
Previously, failed attempts at deleting persistent Business Process objects would delete the Business Process, but orphan its associated Context and Thread objects. This failure would also not be reported to the caller nor recorded in the Event Log. This issue has been resolved; these types of errors are now logged and preserve the Business Process object so it can be deleted later.
DP-432095: [Interoperability] Message Search Cancel to use $SYSTEM.SQL.CancelQuery()
Category: Interoperability
Platforms: All
Version: 2024.1.1
The Interoperability Message Search Cancel now uses $SYSTEM.SQL.CancelQuery() instead of $System.Util.SendInterrupt().
Journaling
DP-430495: Addressed possible data integrity issues in mirroring
Category: Journaling
Platforms: All
Version: 2024.1.1
This change addressed two issues that could cause missing updates in mirror dejournaling, thus affecting data integrity.
Language SDK
DP-431692: Upgrade messaging client version to 1.3.1
Category: Language SDK
Platforms: All
Version: 2024.1.1
This change updates the message client to version 1.3.1.
Licensing
DP-432449: Cap app licenses to prevent accvio
Category: Licensing
Platforms: All
Version: 2024.1.1
Previously, app licenses could allocate a huge license table on a core-based key, causing an access violation, potentially corrupting shared memory. This change caps app licenses at 200,000 and prevents accvio.
Localization
DP-432271: correctly convert filenames on Unicode systems
Category: Localization
Platforms: All
Version: 2024.1.1
Previously, there was an issue that incorrectly raised "file not found" errors when parsing XML files on a Unicode system. This issue has been resolved.
Management Portal
DP-431469: Fix Management Portal Help link for Health Connect
Category: Management Portal
Platforms: All
Version: 2024.1.1
Previously, the Help link in the Health Connect Management Portal incorrectly opened the HealthShare documentation. This issue has been resolved.
Monitoring
DP-430202: Make Log Daemon Respect Log Level Filter
Category: Monitoring
Platforms: All
Version: 2024.1.1
Previously, the log daemon emitted log entries no matter the value set in Config.Logging::Level. For instance, if the log level is "WARN", the log daemon now only pipes log entries with levels "WARN" or higher to the child process (specified by Config.Logging::ChildProcessLaunchCommand).
Networking
DP-431843: Adjusted ECP compressed buffer size
Category: Networking
Platforms: All
Version: 2024.1.1
Previously, there was an issue that caused an compressed ECP buffer to be larger than the original buffer. This issue has been resolved.
NLP
DP-429728: Remove UIMA components from IRIS
NOTE: This item may require a change to code, configuration, or operation.
Category: NLP
Platforms: All
Version: 2024.1.1
Following the deprecation of UIMA in 2020.1, it has been removed from the product in this release.
Object - .NET XEP
DP-430042: Update xep-dotnet Version to 2.2.0
Category: Object - .NET XEP
Platforms: All
Version: 2024.1.1
xep-dotnet version 2.2.0 has been released, so this change makes InterSystems IRIS kits use xep-dotnet 2.2.0.
Object Library
- Fix regression in XML generation
- Explicitly exclude system classes from %Studio.Project deployment
- Exempt ^UnitTest.Result from transactions when running unit tests
- Dynamic objects: Fix data corruption when no default argument provided
- Correct CreateDirectoryTree() if intermediate directory has restricted permissions
- Change JWK "kid" field to a string
- Improve security of OAuth2
DP-429162: Fix regression in XML generation
Category: Object Library
Platforms: All
Version: 2024.1.1
A previous release introduced a change corrected XML generation when one class extends another class from a separate XML namespace when ELEMENTQUALIFIED=0. However, this change also caused the system to use the wrong namespace when ELEMENTQUALIFIED=1. This issue has been corrected.
DP-429884: Explicitly exclude system classes from %Studio.Project deployment
Category: Object Library
Platforms: All
Version: 2024.1.1
Previously, Ens* classes wereclassified as "derived" for uses related to %Studio.Project, which caused them to be included in a deployed file.
Now, system classes derived from a non-system class are excluded when searching for classes to include in a deployment.
DP-430629: Exempt ^UnitTest.Result from transactions when running unit tests
Category: Object Library
Platforms: All
Version: 2024.1.1
A previous change caused %UnitTest.Manager to write its results directly to ^UnitTest.Result instead of a process-private global. That change meant that the results are now written within a transaction, which changes the overall behavior of test suites that use TSTART and TROLLBACK in the OnBefore/AfterAllTests handlers.
This change suspends transactions before updating ^UnitTest.Result so that the previous test behavior is restored.
DP-431291: Dynamic objects: Fix data corruption when no default argument provided
Category: Object Library
Platforms: All
Version: 2024.1.1
Before this change, the %Library.DynamicObject instance methods %Get(), %Set(), and %IsDefined() could return corrupted data when called in the context of a dynamic object that did not have a defined key and the method arguments did not include a default value. Now, in such a scenario, the methods return an empty string.
DP-431373: Correct CreateDirectoryTree() if intermediate directory has restricted permissions
Category: Object Library
Platforms: All
Version: 2024.1.1
Before this change, the CreateDirectoryTree() method in %Library.File would fail in the case where an intermediate directory had restricted permissions but the lower level directory was accessible. Now, this method works correctly.
DP-431935: Change JWK "kid" field to a string
Category: Object Library
Platforms: All
Version: 2024.1.1
Previously, the JWK field "kid" was incorrectly stored as a number instead of a string, which could cause third-party applications to return an error when validating data types. This issue has been resolved.
DP-431999: Improve security of OAuth2
Category: Object Library
Platforms: All
Version: 2024.1.1
This change improves the security of OAuth2.
ObjectScript
- $vop("vset") return vector should be undefined for undefined elements in v2 where the bitmap was 1
- Vector joiner hash function for doubles and integers consistently produces random numbers
- Correct $vectorop("-", vexpr) negation for certain values
DP-430009: $vop("vset") return vector should be undefined for undefined elements in v2 where the bitmap was 1
Category: ObjectScript
Platforms: All
Version: 2024.1.1
This change alters the behavior of the "vset" operation of the $vectorop function. In particular, it ensure that the returned vector contains undefined elements for undefined elements in the second vector argument where the bitmap was 1.
DP-432429: Vector joiner hash function for doubles and integers consistently produces random numbers
Category: ObjectScript
Platforms: AIX
Version: 2024.1.1
Previously, the vector joiner hash function for doubles and integers was not producing random numbers in certain environments. This has been fixed.
DP-432654: Correct $vectorop("-", vexpr) negation for certain values
Category: ObjectScript
Platforms: All
Version: 2024.1.1
This change corrects an issue in which $vectorop("-", vexpr) was incorrectly negating certain values.
ODBC
DP-433165: In ODBC ReadAhead, do not change pointer to active fetch statement
Category: ODBC
Platforms: All
Version: 2024.1.1
Previously, in ODBC ReadAhead, there was an issue that changed a pointer to an active fetch statement. This has been corrected.
Security
- No longer restrict irisusr group members when creating OCSP response file
- Remove namespace switch in %CSP.UI.Portal.Application:GetSecurityConfigArray()
- Wrap UI call to isAuditEnabled
- Wrap UI call to IsShardingEnabled
- Alter custom LDAP connection code on Unix machines
- Handle OPTIONS Requests in OAuth2 Client Pages
- Upgrade OpenSSL to 3.1.4
DP-429507: No longer restrict irisusr group members when creating OCSP response file
Category: Security
Platforms: All
Version: 2024.1.1
When creating an OCSP response file, a user's umask could restrict other irisusr group members from accessing or rewriting the file (with file ownership determined by the process creating it). This change ensures that the group permissions are not masked out by a user's umask.
DP-429554: Remove namespace switch in %CSP.UI.Portal.Application:GetSecurityConfigArray()
Category: Security
Platforms: All
Version: 2024.1.1
This change prevents a $lt;PROTECT> error that previously arose when the user did not have access to %SYS and attempted to access the Management Portal.
DP-429662: Wrap UI call to isAuditEnabled
Category: Security
Platforms: All
Version: 2024.1.1
This change fixes an error that could cause the system to prematurely raise a <PROTECT> error when the user lacked proper permissions when opening the Management Portal. The issue has been resolved.
DP-429790: Wrap UI call to IsShardingEnabled
Category: Security
Platforms: All
Version: 2024.1.1
Previously, the permission check on whether a user could access the Security pages in the Management Portal call Security.System:isShardingEnabled(), which could throw errors (seen in the Application log) when the user lacked %Admin_Secure and %DB_IRISSYS.
This behavior has been modified so that the call to isShardingEnabled() is only issued when the user has %Admin_Secure and %DB_IRISSYS.
DP-429829: Alter custom LDAP connection code on Unix machines
Category: Security
Platforms: UNIX®
Version: 2024.1.1
Customers that are on a Unix machine and have written their own LDAP connection code using the %SYS.LDAP class should update usages of ##class(%SYS.LDAP).Init() with ##class(%SYS.LDAP).Initialize() instead. Customers on Windows should still use ##class(%SYS.LDAP).Init().
DP-430237: Handle OPTIONS Requests in OAuth2 Client Pages
Category: Security
Platforms: All
Version: 2024.1.1
This change modifies the OAuth2 Client pages OAuth2.Response and OAuth2.PostLogoutRedirect to properly handle OPTIONS requests.
Previously, an OPTIONS request was treated the same as a GET request and could result in changes in the server's state (for instance, exchanging the authorization code for an access token or initiating a user logout), which would invalidate a subsequent call.
DP-432721: Upgrade OpenSSL to 3.1.4
Category: Security
Platforms: All
Version: 2024.1.1
This change upgrades the version of OpenSSL in use to version 3.1.4.
SMP - System Management Portal
- Allow Windows UNC paths in Management Portal backup pages
- Use DisplayName for source control menus
- Add HTML escaping to source control output
DP-431433: Allow Windows UNC paths in Management Portal backup pages
Category: SMP - System Management Portal
Platforms: All
Version: 2024.1.1
Previously, the Management Portal for database backups did not recognize Windows UNC paths as valid paths. This issue has been resolved.
DP-432719: Use DisplayName for source control menus
Category: SMP - System Management Portal
Platforms: All
Version: 2024.1.1
The change updates the BPL editor, the DTL editor, and other Management Portal pages to use the DisplayName value in source control menus.
DP-432792: Add HTML escaping to source control output
Category: SMP - System Management Portal
Platforms: All
Version: 2024.1.1
Previously, pages in the Management Portal that displayed source control output did perform HTML escaping. This has been corrected.
SQL
- JSON_TABLE - update PATH expression evaluation to use ASQ
- Improve performance of YEAR() queries
- Column Alias Support in Common Table Expressions
- Don't calculate selectivity for %Library.DynamicObject columns and reduce maxBucketValLength
- SQL: Refresh SQL Run Time Extent table timestamp when tune table metadata manually changed
- Correct datatype conversion/wrong result for columnar null handling functions
- SQL: Correct frozen plan <PROPERTY DOES NOT EXIST> issue
- Prevent Global Name Conflicts with Similar-Named Temporary Tables
- Use Real Column Numbers for Virtual Stream Fields for SELECT Commands
- only allow SELECT * when issued against a single table
- Fix runtime <UNDEFINED> issue for parallelized queries
- Correct error in Tune Table
- Remove debug code for Tune Table
- Correct behavior of CASE with timestamp values
- Fix <UNDEFINED> errors for some parallelized queries
- Fix bug in CAST() function
- Fix canonical expressions of aggregates on user defined functions
- Fix error when doing a FULL OUTER JOIN with Foreign Tables
- Fix code generation for %ODBCOUT
DP-428463: JSON_TABLE - update PATH expression evaluation to use ASQ
Category: SQL
Platforms: All
Version: 2024.1.1
Prior to this change, JSON Path Language expressions in the PATH clause of a call to JSON_TABLE were limited to member accessor expressions. This limitation is now removed, so these expressions can make use of the full JSON Path Language syntax.
DP-429343: Improve performance of YEAR() queries
Category: SQL
Platforms: All
Version: 2024.1.1
This change improves the performance of queries with conditions on YEAR().
DP-429593: Column Alias Support in Common Table Expressions
Category: SQL
Platforms: All
Version: 2024.1.1
This change adds support for column aliases in Common Table Expression definitions, according to following pattern: WITH <ident> [( <ident> \{, <ident>} )] AS ...
For example: WITH mycte(a,b) AS (SELECT f1,f2 FROM t1) SELECT * FROM mycte
DP-429656: Don't calculate selectivity for %Library.DynamicObject columns and reduce maxBucketValLength
Category: SQL
Platforms: All
Version: 2024.1.1
The change removes the calculation for selectivity for fields that are of type %Library.DynamicObject, as these fields are likely to be unique and so have little value to the Tune Table command.
DP-429702: SQL: Refresh SQL Run Time Extent table timestamp when tune table metadata manually changed
Category: SQL
Platforms: All
Version: 2024.1.1
Previously, when individual Tune Table statistics were updated through the Management Portal or the $SYSTEM.SQL.Stats.Table methods the extent metadata's timestamp was not updated, causing the process to use stae metadata and could lead to the use of a suboptimal query plan. This issue has now been resolved.
DP-429925: Correct datatype conversion/wrong result for columnar null handling functions
Category: SQL
Platforms: All
Version: 2024.1.1
Previously, null-handling functions such as NVL, IFNULL, ISNULL, NULLIF, and COALESCE would return perform incorrect datatype conversions or return wrong results when issued against columnar tables. This issue has been resolved.
DP-430082: SQL: Correct frozen plan <PROPERTY DOES NOT EXIST> issue
Category: SQL
Platforms: All
Version: 2024.1.1
Previously, there was an issue that caused a query that used %ROWLIMIT and %ROWOFFSET while attempting to use a frozen plan to fail at execution time with a <PROPERTY DOES NOT EXIST> error. The issue has been resolved.
DP-430386: Prevent Global Name Conflicts with Similar-Named Temporary Tables
Category: SQL
Platforms: All
Version: 2024.1.1
A problem has been corrected when creating global temporary tables with long names, where the global name used conflicts with the name of a global temporary table. Global temporary tables use managed extents and do not use USEEXTENTSET to determine global names for storage. The global name is determined at DDL run-time in the DDL API, in order to turn the globals into process-private globals. We do not discover until later, when we attempt to record the class attributes in the extent registry, that there is a global name conflict. (The same issue can happen with non-temporary tables when USEEXTENTSET is off.)
DP-430476: Use Real Column Numbers for Virtual Stream Fields for SELECT Commands
Category: SQL
Platforms: All
Version: 2024.1.1
When selecting into an array, the output array is subscripted by column number. These column numbers are pre-computed. However, for virtual stream fields, the real column number is now used in place of the pre-computed column number to avoid
DP-430485: only allow SELECT * when issued against a single table
Category: SQL
Platforms: All
Version: 2024.1.1
This change returns a proper error message to correctly process SELECT * queries and ensure that they only attempt to access data from a single table.
DP-430678: Fix runtime <UNDEFINED> issue for parallelized queries
Category: SQL
Platforms: All
Version: 2024.1.1
This change fixes a runtime <UNDEFINED> issue for some parallelized queries.
DP-430755: Correct error in Tune Table
Category: SQL
Platforms: All
Version: 2024.1.1
This change corrects a bug that sometimes occurred when running Tune Table.
DP-430758: Remove debug code for Tune Table
Category: SQL
Platforms: All
Version: 2024.1.1
This change removes internal-only debug code for Tune Table.
DP-430968: Correct behavior of CASE with timestamp values
Category: SQL
Platforms: All
Version: 2024.1.1
Before this change, a query that used CASE with timestamp values could return incorrect values. This change corrects the error.
DP-431065: Fix <UNDEFINED> errors for some parallelized queries
Category: SQL
Platforms: All
Version: 2024.1.1
This change corrects an <UNDEFINED> error that occurred when executing a query that uses parallel query processing, with subqueries that have arguments.
DP-431095: Fix bug in CAST() function
Category: SQL
Platforms: All
Version: 2024.1.1
This change corrects a bug in the CAST() function.
DP-431826: Fix canonical expressions of aggregates on user defined functions
Category: SQL
Platforms: All
Version: 2024.1.1
Previously, in rare cases, two user-defined aggregate functions with different arguments could be incorrectly interpreted as the same function, causing them to return the same results. This issue has been resolved.
DP-431899: Fix error when doing a FULL OUTER JOIN with Foreign Tables
Category: SQL
Platforms: All
Version: 2024.1.1
Previously, doing a FULL OUTER JOIN on foreign tables with WHERE clauses in each table could cause an error. This issue has been resolved.
DP-432705: Fix code generation for %ODBCOUT
Category: SQL
Platforms: All
Version: 2024.1.1
Before this change, it was possible to get an <UNDEFINED> error when using the %ODBCOUT() function in a WHERE clause.
System
- Fix JO3188 to emit the proper monitor message "Updates suspended due to low free space in the WIJ"
- Test for %ZHALT and %ZSTOP before executing them
- Fix URI Conversion for Non-Latin-1 Locales
- Speed Up iris qlist Command
- Fix security import to version 2024.1.0
- Fix syntax error in %STACK when ambiguous variable name
- Prevent CURWDQBLKS from reporting a negative value
- Fixed error handling during DataMove activation when CPF copying fails
DP-429384: Fix JO3188 to emit the proper monitor message "Updates suspended due to low free space in the WIJ"
Category: System
Platforms: All
Version: 2024.1.1
With this change, the system returns a new error message when the threshold for suspending a batch job was reached. Previously, the message was "Updates may become suspended due to low available buffers". This has been changed to "Updates suspended due to low free space in the WIJ".
DP-429667: Test for %ZHALT and %ZSTOP before executing them
Category: System
Platforms: All
Version: 2024.1.1
This change ensure that subroutines required to execute the HALT routine exist before attempting to execute them. This prevents resource contentions on those routines when they did not exist and slowed down processes when they were halted. The issue has been resolved.
DP-429723: Fix URI Conversion for Non-Latin-1 Locales
Category: System
Platforms: All
Version: 2024.1.1
%Net.HttpRequest was encoding some characters incorrectly in 8-bit instances with locales that do not use Latin-1 character encoding.
DP-430162: Speed Up iris qlist Command
Category: System
Platforms: All
Version: 2024.1.1
This change improves the performance of the iris qlist command.
DP-430614: Fix security import to version 2024.1.0
Category: System
Platforms: All
Version: 2024.1.1
This change corrects a couple of bugs that occurred when attempting to import security settings from a release before 2024.1.
DP-431249: Fix syntax error in %STACK when ambiguous variable name
Category: System
Platforms: All
Version: 2024.1.1
In some cases when an argument is passed by reference, the stack dump is unable to distinguish between the actual and formal variable names, so it reports both of them as actual/formal. This could cause a syntax error that prevented the entire stack from being saved for future error reporting.
NOTE: This fix is in different kits, depending on which operating system it is installed on. In particular, this fix is included in 2024.1.0+ instances on Ubuntu platforms. However, on Windows and AIX platforms, this fix is included in 2024.1.1+ and 2024.2.0+ instances.
DP-431760: Prevent CURWDQBLKS from reporting a negative value
Category: System
Platforms: All
Version: 2024.1.1
Perviously, in very rare circumstances, the CURWDQBLKS field in irisstat could report a negative value. This issue has been resolved.
DP-432129: Fixed error handling during DataMove activation when CPF copying fails
Category: System
Platforms: All
Version: 2024.1.1
Previously, during the DataMove activation phase of startup, when the updated CPF file could not be copied, a macro could replace the updated CPF file with the previous CPF file, and the system threw an
UI - DTL Editor
DP-432006: Fix error when testing a transformation of a VDoc Segment
Category: UI - DTL Editor
Platforms: All
Version: 2024.1.1
Previously, testing a transformation of a VDoc Segment in the DTL editor would return a "METHOD DOES NOT EXIST" error. This issue has been resolved.
UI - Rule Editor
DP-432174: Namespace switch message now sent only when user changes namespace
Category: UI - Rule Editor
Platforms: All
Version: 2024.1.1
When a user transitions from the management portal zen page to the rule editor UI by clicking on a rule, the user is logged in and in a specific namespace. Previously when the namespace existed the user received a 'switched to namespace' message. Now the rule editor update initialization file for 2024.2 is configured so that this message is sent when the user changes the namespace.
VS Code
DP-431386: Fix <MAXSTRING> errors when using the Atelier search API
Category: VS Code
Platforms: All
Version: 2024.1.1
Previously, searching inside a very large number of files with the vscode-objectscript extension (or anything else that used the Atelier API) could return a <MAXTSRING> error. This issue has been resolved.
Web
DP-430623: Update Apache httpd to 2.4.58
Category: Web
Platforms: All
Version: 2024.1.1
This change updates the httpd files for Apache version 2.4.58.
Web Gateway
- Don't log cleanup of ^IRIS.TempNodes for CSP login failure
- Disable mod_deflate when response uses chunked transfer encoding
DP-429936: Don't log cleanup of ^IRIS.TempNodes for CSP login failure
Category: Web Gateway
Platforms: All
Version: 2024.1.1
This change ensures that failed authentications for a CSP Server process do not set up temporary nodes, which are cleaned up once the process is halted, that are used by the process. These nodes are now set up once an authentication is successful.
DP-432472: Disable mod_deflate when response uses chunked transfer encoding
Category: Web Gateway
Platforms: All
Version: 2024.1.1
Previously, if Chunked Transfer Encoding was enabled at the Web Gateway level and if the Apache mod_deflate output filter was enabled for the same resources, the resources failed to load so browsers were unable to display the response content. Now mod_deflate is disabled when the response uses Chunked Transfer Encoding, so resources load properly and response content can be displayed.
Work Queue Manager
DP-430802: Correct problem with nested WQM groups
Category: Work Queue Manager
Platforms: All
Version: 2024.1.1
Before this change, when there is a task scheduled by the Work Queue Manager (WQM), and that task schedules a WQM group, the new group was not assigned any workers and thus could potentially wait indefinitely.
This change corrects the problem.
For Additional Help
If you need assistance with evaluating how upgrading to this maintenance release will affect your applications, systems, or related plans, please contact the InterSystems Worldwide Support Center:
- Phone: +1.617.621.0700
- Fax: +1.617.734.9391
- Email: support@intersystems.com
Current release notes (and complete product documentation) can be found online at https://docs.intersystems.com.