Nightly 8.1 Changelogs - 2022

Weekly Changelog: 8.1.16-b20220308

Enterprise

5636: Deadlock on Backup gateway in redundant pair
Fixed potential thread deadlock on redundant backup node.

Data Model

5499: Power Chart: Pens with float values trend as integers when using a Transaction Group to trend different :/keyvalues when a :/keycolumn is specified
DB Table Historian can return incorrect data type (integer instead of floating point) when using multiple keycolumn values.

Visualization

3209: Vision Password Field component bound bidirectionally to a string Memory tag misses input when user types too quickly
Added the boolean property rejectUpdatesDuringEdit to Visions Password component which matches that of other text input fields for Vision. Also fixed the tag drop config to actually wire up the binding of the text property.

5683: Equipment Schedule component tooltip incorrect, reusing tooltip from coordinate container
Updated the Equipment Schedule Component’s component pallet tooltip.

Weekly Changelog: 8.1.16-b20220310

Enterprise

5534: Add Perspective session count to EAM agent reporting metrics
EAM agent now reports the agent’s Perspective session count in a system tag.

1767: Redundancy Backup Transitioning to OutOfDate State on Failover
Fixed the issue where redundant backup would go to OutOfDate after two disconnect events with the redundant master within a short time window.

Visualization

2136: Allow byte array as report parameters
Added binary data (byte arrays) as an allowed report parameter datatype.

2180: Vision Dropdown autopopulate erases user input
Fixed an issue with spurious autocompletion from the dropdown list component when mode was set to ‘Editable’.

5652: Vision: Spinner components doesn’t update ‘dateValue’ property correctly
Fixed bindings on the Vision Spinner component not updating properly when in Date mode.

Data Model

5512: Tag type in Tag Browser is different across servers reading from same remote tag provider
Having multiple designers open from a 7.9 gateway will now correctly browse 8.1 remote tag providers.

5154: Vision Tag History Binding querying remote provider for DateTime tag fails with NPE
Allow Tag History Vision Bindings to DateTime types from Remote History Providers.

Weekly Changelog: 8.1.16-b20220311

Data Model

IGN-5629 Assertion Step in SFCs does not write true to flag when ‘Set Flag’ is enabled and the conditions fail
Assert Step “Set Flag” mode always sets success flag.
Edits to Assertion conditions not marking chart dirty during save.

Weekly Changelog: 8.1.16-b20220311

Security

4795: Load SAML Signature Verifying Keys and Certificates from IdP Metadata URL on an as-needed basis
Added a new opt-in feature to SAML IdPs for automatically reloading the latest trusted signature verifying certificates and keys from the IdP’s metadata XML URL as soon as an authentication response signed using an unknown certificate or key is encountered.

Data Model

5705: Upgrade Postgres JDBC driver version due to CVE
Upgraded Posgres JDBC driver from 42.2.23 to 42.3.3 due to CVE-2022-21724. Though the vulnerability is not easily exploitable in Ignition, the driver was upgraded as an extra layer of security out of an abundance of caution.

Weekly Changelog: 8.1.16-b20220314

Infrastructure

177: Mac OS launchers & workstation should use the new App Notarization process
The Mac OS Designer Launcher, Vision Client Launcher, and Perspective Workstation are now Notarized by apple to pass Gatekeeper checks.

Security

5494: Perspective Electronic Signature Support: Finish MVP 1
Added a new authentication challenge action and scripting function to Perspective in order to better support 21 CFR Part 11 electronic signature requirements.
See forum post

Connectivity

5611: Omron NJ with a large array size will result in the wrong tag being updated
Fixed an issue where large boolean arrays were being read from the PLC incorrectly resulting in array elements sometimes showing incorrect values.

Visualization

634: Multi-monitor issues: Image Dialog modal spawning on incorrect monitor and locking out the rest of the Designer
Designer component image path selector dialog should no longer spawn in an inaccessible location on the screen.

2 Likes

Weekly Changelog: 8.1.16-b20220315

Visualization

5699: Exception when deserializing a dataset client tag, which crashes the Vision module on Designer startup
Corrected a regression from 8.1.15 that could cause a null pointer exception and Designer crash during serialization/deserialization of Vision Client tags containing a PyDataSet value (instead of a standard DataSet datatype).

1081: Audio Component: Provide to play sound clips in browser
Added audio component in Perspective. See forum post

Platform

4466: Lookup expression throws an error when the dataset parameter is from a tag and a header is used for the lookup column or results column parameters
The Lookup expression function no longer throws an exception when a binding to a tag dataset is initializing with Uncertain quality.

Data Model

3097: Unable to drag-n-drop tags into a Gateway Event Tag Change Script
You can now drag tags from Tag Browser to Gateway Event Tag Change Scripts and Client Event Scripts.

Infrastructure

177: Mac OS launchers & workstation should use the new App Notarization process
The Mac OS Designer Launcher, Vision Client Launcher, and Perspective Workstation are now Notarized by apple to pass Gatekeeper checks.

1 Like

Weekly Changelog: 8.1.16-b20220316

Connectivity

5615: Attempt to fix issues writing the NJ devices with Unicode Names
Added support for UTF-8 tag names in the NJ driver.

Weekly Changelog: 8.1.16-b20220317

Visualization

3377: Designer doesn’t maximize properly on Windows
The Designer window now maximizes correctly on windows.

5714: PropertyTree listeners that write back will not have their changes published
Fixed issue for 3rd party Perspective components writing back to properties inside of tree listeners.

5573: Webserver becomes unresponsive due to a component within a nested template writing to a UDT template param of that template
Reduced the number of duplicate writes for a UDT’s initial value and fixed a bug in Reference Tags when it has an invalid tag path which caused a write operation to never complete.

Infrastructure

1807: Docker Image: Setup for Multi-Architecture Builds
Docker Image build is now multi-architecture and supports linux/amd64, linux/arm64, and linux/arm/v7.

Platform

5418: binEnc expression function has no limit on argument count
The tag expression binEnc() function now enforces up to 64 max arguments. Note that 32 arguments or less will return an Integer and 33 arguments to 64 arguments will return a Long.

5334: system.net.httpClient doesn’t close post connections when called at Gateway Level
Added a version argument to system.net.httpClient() system function to allow specifying either HTTP_2 (for http/2 first with fallback to http/1.1) or HTTP_1_1 (for explicit use of http/1.1) for the HTTP protocol. When omitted, the previous default of HTTP_2 is implied. Also verified during the addition of this version argument was the 8.1.15 update to 11.0.14.1 JDK enabling periodic garbage collection to successfully reap closed connections where they may have been left lingering on previous versions (when http/2 was being used).

Enterprise

5717: 8.1.15 version of EAM upgrade-assistant.jar is missing the Apache Commons IO classes
Fixed EAM remote upgrade functionality that was broken by 8.1.15

Data Model

3221: Nested UDT Instances require manual restart of tag to affect change to Enabled/Disabled
Enabling or Disabling a nested UDT Instance will now correctly enable or disable children.

2 Likes

Weekly Changelog: 8.1.16-b20220318

Connectivity

5084: BACnet Out_Of_Service property should not be read-only
Fixed an issue where the BACnet Out_Of_Service property was Read-Only. This property is now Read/Write to devices that allow it.

Data Model

IGN-5526 Creating a Historian Splitter with the name of an existing connection name causes StackOverflowError
Fix stack overflow when Tag History Splitter has a connection with the same name as the splitter.

5218: UDT instances that are copy/pasted do not follow UDT definition Type Color changes
Copying a UDT Instance will no longer overwrite Type Color.

5716: Make the hardcoded 30 second timeout in SingleConnectionDatasource a system property
Users can set an additional Java parameter in the data/ignition.conf file formatted like -Dignition.internalDbMaxWait=60000 to increase the max amount of time to wait for a connection to the internal DB.

2986: Can’t rename a tag to change capitalization
Changing a tags letter casing from Tag Browser Rename will now correctly update the tag’s name.

Security

3931: Renaming IdP that’s set as the System Identity Provider locks users out of the Gateway webpage
If the name of the Gateway’s Identity Provider changes, the Gateway config is updated at the same time to prevent users from getting locked out of the system.

Visualization

2981: Time Series Chart, Power Chart, Chart Range Selector: Add a background grid display
Grids are now a configurable option for the Power Chart, Time Series Chart, and the Chart Range Selector for both the Y axes and the time axis. Grids are drawn behind the chart display. Because of this, the plot background color for a Power Chart should either be removed or made transparent (slightly or completely) to get the most of the grid display.

NOTE: When displaying multiple Y axes on the same side of a chart, those that are not directly connected to the chart will use their tick configuration regardless of having the grid configuration in place.

IGN-299 In the Designer’s “new project setup” dialog, the design should make better use of space to avoid unnecessary scrolling
Improved the layout of the Designers Open/Create project dialog.

2 Likes

Weekly Changelog: 8.1.17-b20220322

Data Model

1790: Tag Editor Refinement
See forum post

3 Likes

Weekly Changelog: 8.1.17-b20220329

Infrastructure

3349: http header names that include underscores can be problematic for nginx users

The style of Perspective http header names has been modified to avoid underscores, NGINX silently dropped HTTP headers with underscores when configured without “underscores_in_headers on;” which previously caused issues including:

  • All perspective sessions will appear as having a designer scope from the Status > Perspective Sessions page.
  • The iOS mobile app will route users to an external browser for auth instead of keeping them in the app.

Visualization

5658: Find/Replace for vision ‘Set Tag Value’ actions on Component Scripting still use old values
Fixed some minor issues with using Find & Replace to update scripts authored using the ‘Set Tag Value’ builder.

Enterprise

5525: EAM Collect Backup task fails when agent’s backup takes longer than 60 seconds to create

EAM Collect Backup task now times out by default after waiting 60 minutes for the agent to generate the backup plus another 60 minutes for the agent to transfer the backup to the controller over the Gateway network if the backup generation did not timeout (previous defaults were 60 seconds for backup generation plus 10 minutes for backup transfer, which was too short for some large backups).

Transfer timeout is configurable using system property ignition.eam.task.collectBackup.transferTimeout (must be a valid integer measured in milliseconds)

Security

2062: Audit login/logout of Gateway Config and Status pages
Added audit events for gateway login and logout.

1 Like

Weekly Changelog: 8.1.17-b20220330

Visualization

2040: Reduce usage of EventBus in Perspective to avoid performance hit
Increased performance of view startup and shutdown for views with high binding counts.

5694: View parameters revert to input value after write
Fixed issue where in/out parameters on a popup could revert values after being written to.

Platform

5633: Ensure logback.xml is included in gateway backups
$GATEWAY_HOME/data/logback.xml is now included in gateway backups.

Connectivity

5799: Modbus driver stuck in Connecting state after Gateway starts
Fixed a race condition that caused Modbus connections to get stuck in “Connecting” state after Ignition Gateway start/restart. The race condition was only likely to be triggered on under-powered single-core embedded hardware.

Data Model

5606: Deleting a disabled database connection does not delete the associated historical provider
Deleting a disabled database connection will now also delete the associated historical provider.

1 Like

Weekly Changelog: 8.1.17-b20220401

Connectivity

1991: Add Elapsed_Active_Time property to BACnet driver
Added support for Elapsed_Active_Time and Time_Of_Active_Time_Reset properties on BI, BO, and BV objects.

Infrastructure

5735: Allow default (80, 443) ports for linux gateways which use AmbientCapabilities=CAP_NET_BIND_SERVICE for the service with non-root user
Fixed an issue where Commissioning would not allow you to continue past the port selection step while using Linux ‘reserved ports’, even if the service would be able to bind to those ports.

1780: Docker Image: Run as standard user (non-root) and provide flexibility for UID/GID mappings
Docker image now supports running as non-root user. Use IGNITION_UID and IGNITION_GID environment variables to set the numeric UID/GID values for the target user to run Ignition as. When set, the entrypoint will automatically update file ownerships for the Ignition installation on startup to match the target user prior to stepping down from root user to launch the gateway.

1 Like

Weekly Changelog: 8.1.17-b20220404

Visualization

865: Table mapping in new xls report export feature needs to account for respective table layout positions
Report exports to excel now properly align the report’s tables to the appropriate column of the excel spreadsheet.

Data Model

Fixed an issue where values written from bi-directional tag bindings on Perspective Text Field / Text Area components to UDT instance parameters would be wrapped with additional quotes.
Fixed an issue where values written from bi-directional tag bindings on Perspective Text Field / Text Area components to UDT instance parameters would be wrapped with additional quotes.

1 Like

Weekly Changelog: 8.1.17-b20220405

Data Model

5729: Shelved alarm with ‘None’ for shelved by user causes unexpected behavior in Alarm Status Table
Prevented a null pointer exception in the Alarm Status Table when shelving an alarm with a null user.

Security

432: Ignition 8.1 - IdP - Vision - Configurable IdP Login Screen Title and Text
Vision Clients with the Identity Provider Authentication Strategy now allow the login title and message to be customized via Vision’s Login Project Properties.

5330: Improve Config UI Experience for Adding Values to Multi-valued List
UI improvements to the following Gateway Pages:

  • Config > Web Server (Included and Excluded Ciphers)
  • Config > Web Server > Create Certificate (Subject Alternative Names, and DNS Names)
  • Config > Identity Providers > OpenID Settings (Scope)
  • Config > Identity Providers > OpenID Settings > JSON Web Key Configuration (Key Operations, and X.509 Certification Chain)
  • Config > Identity Providers > SAML Settings (Signature Verifying Certificates)

Connectivity

5710: Implement Milo’s SubscriptionListener::onSubscriptionWatchdogTimerElapsed
Implement a client-side subscription watchdog timer that re-creates subscriptions when 125% of the keep-alive interval has elapsed with no response from the server.

5048: Blocked TCP Driver Threads
Refactored TCP Driver to prevent thread contention and added the “Connect Timeout” setting.

Weekly Changelog: 8.1.17-b20220406

Connectivity

5761: Allow time synchronization to be disabled
Added setting to disable time synchronization in DNP3 driver.

5608: Simulator built in functions don’t work properly with non-en_US locales
Simulator functions now work with non-US locales

Data Model

5303: Error Retrieving Diagnostics when opening Tag Editor
Fixed potential issue where a ClassNotFoundException would be thrown when retrieving tag diagnostics during opening of tag editor.

Visualization

1766: Perspective Table: Manually setting the selected row to an index from a NULL value prevents table selection
Table component selection property will now work with only a selectedRow or a selectedColumn value when its respective enableRowSelection or enableColumnSelection value is true.

3651 Perspective Expression Tag Listeners Could Register / Unregister Multiple with Session EventBus Multiple Times
A tag listener can now only be registered once per tag in an expression binding.

Enterprise

5762: EAM Remote Upgrade from 7.9.x to 8.1.x failing
Fixed EAM remote upgrade functionality of a 7.9 agent that was broken by 8.1.15

Weekly Changelog: 8.1.17-b20220407

Platform

5211: ResourceNotFound trying to overwrite a project
Fixed “ResourceNotFound” error when importing and overwriting a project resource.

Visualization

4670: Power Chart / Time Series Chart: Allow text color and size to specified on infoBox
Allow text color and font size to be specified for the info box for the Power Chart and Time Series components. Also includes a feature where the info box will automatically resize if width is set to auto.

Enterprise

5698: Redundant Gateway fails to go inactive when the Master completes its upgrade
Failover to the other redundant node is now allowed if the nodes have different platform versions, which will allow attached clients to remain connected to at least one node during a redundant pair upgrade.

1 Like

Weekly Changelog: 8.1.17-b20220408

Visualization

5624: After project switch, tag bindings in the Designer that don’t use [provider] in the path don’t use the current project’s default tag provider
Fixed an issue where the designer would use the wrong tag provider in unqualified tag subscriptions after switching projects.

Infrastructure

5312: Docker Image: Add interim support for conditional exclusion of built-in modules in 8.1
Docker image now supports a new GATEWAY_MODULES_ENABLED environment variable that can declare a comma-delimited set of identifiers that will whitelist the set of built-in modules that will remain installed prior to gateway startup. This feature will help with container re-creation events where you want to ensure only a subset of modules remain enabled.

Data Model

5818: Previously quarantined historical data serialized within S&F disk cache cannot be deserialized properly after upgrading to 8.1.15
Fixed an unlikely issue where historical tag data couldn’t be deserialized from S&F disk cache after upgrading to 8.1.15 due to ClassCastException thrown when attempting to deserialize incompatible field types.

1690: SQL JDBC driver exception serialized into HSQL data store
Fixed an unlikely issue where historical tag data couldn’t be deserialized when reading from the S&F disk cache due to a ClassNotFoundException when loading com.microsoft.sqlserver.jdbc.SQLServerException class.

2930: Range aggregation mode returns only value if value didn’t change over interval
Range aggregation mode will now correctly return “0” if the historical tag value remains static over a given time interval.

Connectivity

4793: Simulator Functions can return values outside of defined Max
Prevent Simulator functions from returning values outside of minimum and maximum bounds.

Weekly Changelog: 8.1.17-b20220411

Data Model

5273: Voice Notification - SIP Transaction Manager Memory leak
Fixed memory leak in Voice Notification Module’s SIP library.

Visualization

1357: Popup: user interaction with components that require focus to function is hindered when a portion of the popup is beyond the available viewport
Fixed issue with inputs losing focus when popup is rendered out of view bounds.

1 Like

Weekly Changelog: 8.1.17-b20220412

Visualization

4023: Vision window query bindings remain active after close
system.db.refresh now only refreshes Vision bindings if the binding root is on a root which is actually running to prevent orphaned bindings from executing long after the parent has been closed.

1 Like