Skip to content

REDHAWK 2.2.1

Compare
Choose a tag to compare
@RedhawkDeployer RedhawkDeployer released this 15 Mar 13:39
· 37 commits to master since this release

The effort in REDHAWK 2.2.1 focused on:

  • Improving how the MessageSupplier port's sendMessages() method handles bulk message failures when the size exceeds the maximum CORBA transfer size. On failure, messages are now sent individually.
  • Fixing the Octet output format for the bluefile FileSink.
  • Changing the output for the "number of samples pushed" when data for a BulkIO stream is generated spanning multiple timestamps. The output changed from being the "number of samples spanning the timestamp packets" to being the "number of samples that was requested".
  • Resolving an issue for BulkIO input ports to hold multiple back-to-back streams with the same stream ID in a pending, independent state.
  • Ensuring that the Python Publisher and Subscriber classes disconnect from their event channels before unregistering from the Event Channel Manager.
  • Ensuring that calling stop on a component no longer causes an exception from a timeout if the NOOP sleep time in C++ components is too long.
  • Enabling waveforms to successfully run when the useScreen property is set to true on the GPP in a Device Manager.
  • Correctly resolving @@@WAVEFORM.INSTANCE@@@ and @@@DEVICE_MANAGER.NAME@@@ in log files for components and devices, respectively.
  • Fixing an issue with loadSADFile and generateSADXML. When using loadSADFile, all connections in the XML file are appropriately created in the Python sandbox, and when using generateSADXML, connections in the sandbox are included in the resulting XML.
  • Preserving EOS and sriChanged flags on a per-stream basis when a BulkIO input port queue is flushed. As a result, when a queue flush occurs, any stream that has an EOS in the queue will receive an empty packet with EOS set.
  • Preventing duplicate service name registration in the REDHAWK domain. When a Device Manager attempts to register a service with a name that is already in use, the Domain Manager throws an exception and the Device Manager terminates the service's process.
  • Generating a unique identifier for NIC allocations from host-collocated components in a waveform.
  • Supporting NIC allocations for host-collocated components in a waveform.
  • Fixing a memory leak in BulkIO input ports when using getPacket() to fetch data.
  • Fixing an issue to allow files to be truncated when component host logging is enabled on the GPP.
  • Enabling persistence at runtime (persistence is compiled into the Core Framework by default) by providing a backend database to store the configuration when launching a Domain Manager using the nodeBooter argument --dburl.
    The persistence options to nodeBooter are handled more strictly:
    • If --dburl is given when launching a Domain Manager, and the database file location cannot be accessed, an error is reported and the Domain Manager is not launched.
    • If --dburl is given when launching only a Device Manager, an error is reported and the Device Manager is not launched.
    • The --nopersist argument to nodeBooter is deprecated and has no effect.
  • Enabling Non-Uniform Memory Access (NUMA) affinity processing by default in the GPP. Prior releases required a source code rebuild to enable this feature.
  • Resolving an issue to allow for the use of a connection ID in each control port's getter methods, FrontEnd Interfaces, or custom IDL when a value is being returned.
  • Resolving an issue with increased application launch times identified during endurance testing.
  • Correcting the handling of shared library SoftPkg dependencies for loadable devices to properly add Java and Python dependencies to the environment prior to running components.

Fixes

The following fixes were completed in REDHAWK 2.2.1:

Core Framework Fixes

  • Fixed a code generator's issue involving Python and Java component implementations with numeric values specified as hexadecimal numbers in the component's properties file (prf.xml).
  • When a component running in the Python sandbox crashes, if it allocated any shared memory heap (/dev/shm), it is cleaned up by the sandbox.
  • Improved comments describing the GPSInfo data structure.
  • The attribute, _instanceName, for Device Managers shown in the Python sandbox resolves correctly.
  • Updated the GPP to check if the Non-Uniform Memory Access (NUMA) library is supported by the running host before making NUMA affinity requests.
  • Fixed issue to allow command-line properties with empty string values to be passed into the initializeProperties method.
  • Resolved unhandled exceptions that occur when a component process exits or fails during registration with the Domain Manager. Resolved memory loss issues when components register with the Domain Manager.
  • Fixed issue to handle all exceptions that can occur between a registering component and the Domain Manager.
  • BulkIO shared memory connections detect when the input side terminates unexpectedly without disconnecting, avoiding an error state in which the output side becomes unresponsive and consumes an entire CPU.
  • When quitting a Python session after attaching to a REDHAWK domain, the CORBA ORB will be shutdown.
  • Fixed issue so when using ulimit -u before starting the GPP, the GPP properly interprets the thread limits as either a number or the string 'unlimited'.
  • Event channels created through the event channel logging appender (RH_LogEventAppender) register with the Event Channel Manager if available.
  • Unregistering a property change listener no longer causes a race condition to occur.
  • Matched the Python API to the C++ API in FEI, and added an optional connection ID to the output FEI control port.
  • Fixed intermittent test failures due to low available memory in container.
  • Fixed intermittent test failures due to a test occurring before the Device Manager terminates.
  • Fixed application metrics test intermittent failure.

IDE Fixes

  • Resolved issue so data from BulkIO dataOctet ports is now plotted correctly.
  • Improved the efficiency of the REDHAWK Explorer view's auto-refresh.
  • Improved the efficiency of refreshing event channels in the REDHAWK Explorer view.
  • Corrected an issue so event channel information for a domain is appropriately retrieved.
  • Resolved issue to ensure CORBA objects used by the IDE's models are always released.
  • Corrected an NPE that may occur while releasing a resource in the sandbox.
  • Improved UI responsiveness for large domains.
  • Corrected the icons for ports and connections in the Port Monitor view.
  • Updated the default port type when creating an FEI device to now be dataShort.
  • Resolved an issue to prevent a possible NPE when interacting with context menus on ports.
  • Addressed a code quality issue regarding unused project natures.
  • Addressed a code quality issue to correct errors in xcore model files.
  • Addressed a code quality issue to correct the use of deprecated BulkIO classes.
  • Corrected a concurrency issue that occurred while accessing XML profiles.
  • Corrected a graphical issue so the text for a highlighted selection is displayed when selecting a new log level in the SAD editor.
  • Corrected issues with the workflow for connecting to a new Domain Manager.
  • Corrected an issue that prevented launching devices with a SoftPkg dependency from context menus.
  • Ensured that two services cannot be registered with the same name in the sandbox.
  • Waveforms with a componentinstantation ID that does not match the usagename now launch properly in the IDE sandbox.

Documentation Fixes

  • Updated the format of headings in the REDHAWK Manual.
  • Updated the REDHAWK ICD to indicate that dataChar is deprecated and dataOctet should be used in favor of dataChar.
  • Added an example using the connectionId argument when making sandbox connections.
  • Updated glossary links to display the first time glossary terms are displayed on a page. Acronym terms and the corresponding acronym were updated to display the first time the terms are displayed on a page. After this first occurrence, only acronyms are displayed.
  • All images in the manual now have a caption displayed under the image.
  • Added GPS interface information to the FrontEnd Interfaces appendix.
  • Added NavData interface information to the FrontEnd Interfaces appendix.
  • Added RFInfo interface information to the FrontEnd Interfaces appendix.
  • In Optimization -> Configuring omniORB, fixed a typo that referenced IORs.
  • In Frontend Interfaces -> Types of Tuners -> CHANNELIZER Tuner, fixed a typo that referenced DDC.
  • Updated the cleanomni script to include CentOS 7 information, and rearranged the omni information in the Troubleshooting appendix .
  • In Troubleshooting -> Setting Omni Log Levels, updated the omniORB User's Guide links for CentOS 7.
  • In the Logging Configuration Plugin section, fixed a typo that referenced --useloglib.
  • Updated code blocks to include a pinned "Copy to clipboard" icon on the right side.
  • Updated tables in the manual to auto adjust in size so the contents wraps correctly within the cells.
  • Removed UHD dependencies from those provided in REDHAWK and added them to the External Dependencies appendix.
  • In Managing and Defining Properties, fixed a typo in the utctime description.
  • In the Waveform Editor -> Components Tab section, removed the reference to Component ID and modified the text to match the new Components Tab image.
  • In the Waveform Editor and in the Distributed Computing and RF Devices sections, updated missing and incorrect links.
  • In the Connecting to a Running Domain section, fixed minor typographical errors.
  • In the REDHAWK ICD, corrected section numbers.
  • In the REDHAWK ICD and in the SCA Specification, fixed minor typographical errors in the Logging Description section.
  • In the Logging Within a Resource section, fixed minor typographical errors.
  • Changed the "Documentation" button for the website and the manuals to a house icon with the text "Home". Changed the REDHAWK icon and "REDHAWK" text to also link to the main website page.
  • Added instructions (README.md file) on how to use the new documentation repository.
  • In the Waveform Editor, in the Components Tab section, added the Components Tab image.
  • Updated documentation repos to pull from the local copy of the docdock theme.
  • In References for Application Developers, corrected the Sandbox link to point to the Sandbox section.
  • In Creating a New Node, corrected the Exploring the Running Node link to point to the Exploring the Running Node section.
  • In Creating a Waveform Service Configuration Using the rhadmin Script, corrected the Waveform Configuration File link to point to the Waveform Configuration File page.
  • Fixed error of DMD file reference to be DCD file in Creating a Node section.
  • Removed a sentence from the Workbench topic.
  • Corrected expanded term information for JDT (Java Development Tools) and CDT (C/C++ Development Tools) acronyms.
  • Removed the following glossary terms: Editor, System, Ethernet, Linux, and Local Area Network.
  • Updated the Installing the Framework from Source and the Device and Service Affinity sections to reflect affinity disable build options.
  • Removed REDHAWK Core Asset version numbers from tables in REDHAWK Core Assets section.
  • Updated the Persistence Store and the Installing the Framework from Source sections to reflect that the default build now enables the sqlite backend.
  • Added information about control port connection management.

Special Resolution

The following previously reported Known Issues have been closed in REDHAWK 2.2.1 with the following resolutions:

Core Framework Special Resolutions

  • Component loggers do not honor DEBUG_LEVEL exec param - Fixed by Other Issue - Fixed by update in REDHAWK 2.1.3 release: Changing log_level on the Domain Manager now affects all classes in the Domain Manager process space.
  • waveform.instanceName returns assembly controller instance name - Cannot Reproduce - This bug could not be reproduced against REDHAWK 2.0.8 or 2.2.0.
  • Error when running daughterboard tests - Fixed by Other Issue - Fixed by resolving issue to allow for the use of a connection ID in each control port's getter methods, FrontEnd Interfaces, or custom IDL, when a value is being returned.

IDE Special Resolutions

  • Duplicate of Generated XML files from the Python sandbox cannot be loaded correctly on the Chalkboard (fixed in REDHAWK 2.2.1) and IDE sends incorrect properties during sandbox launch (fixed in REDHAWK 2.0.4).
  • Drag selection in diagrams uses white dotted lines for the selection rectangle - Won't Fix - This behavior only affects CentOS 6/GTK 2.

Documentation Special Resolutions

  • custom/static/css/custom.css on branch 'docs-829' generates errors using csslint - Won't Fix - The CSS issues are artifacts of the docdock theme and cannot be changed.