02-10-2010 03:00 PM - edited 02-10-2010 03:06 PM
Grant,
In your project, the variable "Test Array" does not have "Enable RT Fifo" checked. I checked the "Enable RT FIFO" box, FiFO type - "Single Element" with 50 Array elements and executed your project. I was able to get it to crash like my old project.
Can you try this on your system and let me know if it crashes.
Thanks
Madan
02-10-2010 05:38 PM - edited 02-10-2010 05:39 PM
Madan,
Yes! The RT FIFO enabled causes it to crash in LV 2009 f3. I tried the functionality in 8.5 and 8.6 and it's not present. Let me dig into the issue to see what's going on and get back to you.
P.S. I'm also going to try the behavior with just 2009 and see if the issue got introduced with one of the patches
02-11-2010 03:10 PM - last edited on 02-11-2010 04:17 PM by Laura F.
Madan,
Narrowed it down! So it is a bug and it has been fixed. The bug was introduced with LabVIEW 2009 (that's why it works fine in 8.5 and 8.6) in which the reference to the shared variable isn't released properly but it has been fixed with Service Pack 1 that will be releasing early part of Q2 2010. I have SP1 on my computer right now and I have guaranteed that the bug is fixed (that's the project file that I sent you that doesn't crash). The Corrective Action Request tied with this bug is #176331 and you can look for the readme file that comes with SP1 to see that it is in the fix (but I have confirmed that it is as well). Unfortunately, there isn't a workaround (other than the ones we've found but they aren't really workarounds...they're just don't-uses) for this issue because it's in the code of LabVIEW itself. Let me know if you have any questions but for right now the solution is to try not to use it until Service Pack 1 comes out.
02-11-2010 03:26 PM
Grant,
Thanks! Is there a difference between single element RT FIFO and having a variable without RT FIFO ? Are they both one and the same?
Thanks
Madan
02-11-2010 03:59 PM
Madan,
No. If you are not on a real-time operating system you really don't need the RT FIFO enabled. It acts like an initizialation for your variable by saying "I am going to be this big" and then the memory will be allocated statically instead of dynamically during run time (which adds major overhead on a RT system and increases the jitter). You can get the same effect as the RT FIFO being enabled if you just initialize your shared variable by just writing to it once (you can just write an array of 50 elements of 0 and that will initialize it).
02-15-2010 06:24 AM
Grant,
The application I am working on has both the PC and RT Execution Targets. This was developed in LabVIEW 8.5 and Single Process variables with RT FIFOs have been used in multiple instances.
What kind of behavior do you see when this scenario occurs on an RT Target. I have seen sudden termination of while loops when testing with LabVIEW 2009 in an RT target. Is it safe to associate this problem for such behavior? Please let me know.
Thanks
Madan
02-16-2010 09:03 AM
Madan,
Could be. I haven't personally seen any sporadic behavior like that. There will also be a LV Real-Time SP1 release as well. The Service Packs are now live. If you have Standard Service Program (SSP) then you should be getting your DVDs/CDs with the updates in the upcoming weeks (I don't know when they are shipping them out or any timelines so don't quote me on a date) but the are available on the Service Resource Center (SRC) for download for those current SSP members. I highly suggest upgrading definitely LV and RT to SP1 and any other modules that were released with an update.
02-23-2010 08:38 AM
Grant,
I downloaded the LabVIEW 2009 SP1 and verified this crash has been resolved in SP1. Thanks!
Madan