HealthShare® Health Connect Change Notes (2025.1.1)
This document is meant to help you assess the impact of upgrading to the HealthShare Health Connect 2025.1.1 maintenance release. It also lists the changes since 2025.1.0, grouped by maintenance release category. To see a list of incompatibilities between an earlier version of HealthShare Health Connect and the 2025.1.1 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.1
Analytics - Reports
DP-442351: Upgrade FOP 2.10 to FOP 2.11
Category: Analytics - Reports
Platforms: All
Version: 2025.1.1
This change removes FOP 2.10 and updates it with FOP 2.11.
CSP / ZEN
- 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 previous versions, the autocompile option for tag-based CSP pages has been disabled, and the privileges the compile runs with have been reduced accordingly. The former change does not affect existing web applications, but the latter does. To restore the old behavior, grant the CSPSystem user the necessary privileges for compiling classes, including the write privilege on the routine database of the web application's namespace. InterSystems discourages enabling autocompile or granting CSPSystem additional privileges. If it must be enabled, autocompile should only ever be used in development environments; the privileges required for compilation are wide-reaching and introduces unnecessary risk for production systems.
DataMove
- 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
- Install /dev/cda directory in HealthConnect and IRISHealth kits
- 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-437836: Install /dev/cda directory in HealthConnect and IRISHealth kits
Category: Installation
Platforms: UNIX®
Version: 2025.1.1
INTERNAL This change installs the /dev/cda directory into kits. It was not getting picked up by IPE scripts.
DP-439845: Ens.BP.Utils.Upgrade to use minimal memory and avoid STORE error on upgrade
Category: Installation
Platforms: All
Version: 2025.1.1
Previously, the upgrade routine could completely use up available process memory, with a linear space requirement proportional to the number of business processes to be upgraded. As a result, systems with a significant number of business processes could encounter a STORE error upon upgrade. This change modifies how the upgrade occurs such that the space requirement is now constant, preventing the STORE error.
DP-441160: make Windows Installer product version match instance version
Category: Installation
Platforms: All
Version: 2025.1.1
The Windows Installer internal ProductVersion will now be the same as the instance's version, except for the major version token, which will be set to IRISmajor-2000, due to restrictions on maximum allowed value of Windows Installer major and minor versions (255).
DP-441265: set INSTALLDIR property before it is being using by custom actions in unattended install
Category: Installation
Platforms: All
Version: 2025.1.1
INSTALLDIR property is now set earlier in the install process to ensure InterSystems\Configurations\IRIS\<INSTANCE>\Directory registry key is properly set when it is needed.
DP-442472: Perform name validation on insert not modify
Category: Installation
Platforms: All
Version: 2025.1.1
This change moves the validation of web application names so that the check is only performed before performing an Insert operation, which ensures that the upgrade process occurs smoothly.
IntegratedML - Core
DP-441867: lnxubuntu2404x64 and lnxubuntu2404arm64 h5py upgraded from 3.11 to 3.13
Category: IntegratedML - Core
Platforms: All
Version: 2025.1.1
This change upgrades the version of h5py from 3.11.0 to 3.13.0.
Interoperability
- 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
- Correct inconsistency in CORS handling configuration
- 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-437099: Correct inconsistency in CORS handling configuration
Category: Security
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.
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.
xDBC Server
DP-442403: Fix indefinite hangs in external language server
Category: xDBC Server
Platforms: All
Version: 2025.1.1
This change corrects an issue that caused the external language server to hang indefinitely because Fetch data is never sent back.
For Additional Help
If you need assistance with evaluating how upgrading to this maintenance release will affect your applications, systems, or related plans, please contact the InterSystems Worldwide Support Center:
- Phone: +1.617.621.0700
- Fax: +1.617.734.9391
- Email: support@intersystems.com
Current release notes (and complete product documentation) can be found online at https://docs.intersystems.com.