InterSystems IRIS for Health™ Upgrade Checklist and Change Notes (2024.1.1)
This document is meant to help you assess the impact of upgrading to the InterSystems IRIS for Health 2024.1.1 maintenance release. It contains the upgrade checklist items since the last extended maintance (EM) release, 2023.1.0. It also lists the changes since 2024.1.0, grouped by category.
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.1
CPF File
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.
Embedded Python
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.
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 hand 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.
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."
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 Library
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.
ObjectScript
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.
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
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().
SQL
- JSON_TABLE - update PATH expression evaluation to use ASQ
- Improve performance of YEAR() queries
- 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
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-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.
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 syntax error in %STACK when ambiguous variable name
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-431249: Fix syntax error in %STACK when ambiguous variable name
NOTE: This item may require a change to code, configuration, or operation.
Category: System
Platforms: All
Version: 2024.1.1
NOTE: This change impacts kits based on which operating system it is installed on. In particular, this change impacts upgrades to 2024.1.0 on Ubuntu platforms; once Ubuntu platforms have upgraded to at least a 2024.1.0 instance, upgrades to future instance do not introduce this incompatibility. However, on Windows and AIX platforms, this change impacts upgrades to 2024.1.1 or 2024.2.0 kits. Once Windows and AIX platforms have upgraded to at least a 2024.1.1 or 2024.2.0 instance, upgrades to future instances do not introduce this incompatibility.
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.
Web Gateway
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.
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.