The Wait on notification with history primitives seems to have changed in LabVIEW 2022!
In some of our APIs we use notifiers to report status from background processes, and in order to avoid cross-talk between API instances we use the Wait on Notification With History primitives.
During review for a new release of one of our toolkits we realized the toolkit was crashing on LabVIEW 2022.
I was able to track down the crash to the "Wait for Notification With History" primitive, and I believe this is a bug in LabVIEW 2022 that potentially could affect many systems migrating to LabVIEW 2022.
Attached is a code snippet that can run with or without notifier history, with history version used, LabVIEW crashes.
PS. This was not present in LabVIEW 2020, but have not been tested on LabVIEW 2021
Oh Man! Someone who's dealing with the same issue I am. Thanks for making me realize I'm not crazy.
I have some code similar to what you've got here, though not isolated so neatly. My code with the notifiers worked fine in LabVIEW 2019, 2020, and 2021, but crashes just as this does in 2022.
Your code could not be any simpler, yet crashes LabVIEW immediately on the first try. This is literally a basic use case for notifiers, did they not test this when releasing the new version of LabVIEW?
I was also crashing LabVIEW 2022 while using the wait on notifier with history function. This error did not happen in LabVIEW 2014 SP1. I'm testing out the python node in 2022, but I've been held up all day debugging this problem.
I was only able to resolve it by replacing the "wait on notifier with history" VI with the standard "wait on notifier". It's not a critical element of the code, so it shouldn't matter. Still, it was difficult to trace the issue. Perhaps this happens if there is only one notification? To be honest, I'm not 100% clear on the functional difference between the two VIs.
For reference, I was getting the following error when the crash occurred, but it didn't make any sense to me. In retrospect it still makes zero sense to me. How is LabVIEW creating an access violation to itself here? Generate notification, get notification ... ACCES VIOLATION ... then kill labview.
Exception: Access violation (0xC0000005) at EIP=0x01509223
This bug is fixed in LabVIEW 2022 Q3 Patch 1. I verified that the VI attached above crashes LabVIEW 2022 Q3, and no longer crashes after the patch is installed.
You can install the patch by going to NI Package Manager and installing the LV 2022 Q3 Patch 1 item (I recommend installing for both the IDE and RTE):