eaolson Posted November 22, 2007 Author Report Share Posted November 22, 2007 I was brushing up on my events and discovered this interesting crash using two of the NI-provided examples: 1. Open <labview>\examples\general\dynamicevents.llb\Dynamically Monitor VI's.vi. 2. Run the VI. 3. Open <labview>\examples\general\dynamicevents.llb\Dynamically Register for Events.vi 4. Run the VI. 5. Do not stop the "Dynamically Register" VI. Instead, close it by clicking the "X" in the upper right corner of the window. A dialog window will pop up asking "Do you really want to close 'Dynamically Register for Events VI'?". Click "Yup". 6. Stop the Dynamically Monitor VI by either using the Stop button on the front panel or the Abort Execution button. 7. LabVIEW will crash with a "LabVIEW.exe has generated errors and will be closed by Windows" window. I've observed this on 8.20 running under Windows 2000 and XP. Can anyone verify that it does happen on 8.5? I haven't really figured out where it happening, but it's probably at either a property node or a Register for Events node. I also reported it to NI, but they don't seem to consider it a bug. It's not fair, but I'm not sure I agree. An attempt to access a VI not in memory seems to me should fail out with an error, not a crash to the desktop. Quote Link to comment
eaolson Posted November 22, 2007 Report Share Posted November 22, 2007 I was brushing up on my events and discovered this interesting crash using two of the NI-provided examples: 1. Open <labview>\examples\general\dynamicevents.llb\Dynamically Monitor VI's.vi. 2. Run the VI. 3. Open <labview>\examples\general\dynamicevents.llb\Dynamically Register for Events.vi 4. Run the VI. 5. Do not stop the "Dynamically Register" VI. Instead, close it by clicking the "X" in the upper right corner of the window. A dialog window will pop up asking "Do you really want to close 'Dynamically Register for Events VI'?". Click "Yup". 6. Stop the Dynamically Monitor VI by either using the Stop button on the front panel or the Abort Execution button. 7. LabVIEW will crash with a "LabVIEW.exe has generated errors and will be closed by Windows" window. I've observed this on 8.20 running under Windows 2000 and XP. Can anyone verify that it does happen on 8.5? I haven't really figured out where it happening, but it's probably at either a property node or a Register for Events node. I also reported it to NI, but they don't seem to consider it a bug. It's not fair, but I'm not sure I agree. An attempt to access a VI not in memory seems to me should fail out with an error, not a crash to the desktop. Quote Link to comment
Justin Goeres Posted November 22, 2007 Report Share Posted November 22, 2007 QUOTE(eaolson @ Nov 21 2007, 09:23 AM) Can anyone verify that it does happen on 8.5? Confirmed on my machine: WinXP / LV85. Quote Link to comment
Justin Goeres Posted November 22, 2007 Report Share Posted November 22, 2007 QUOTE(eaolson @ Nov 21 2007, 09:23 AM) Can anyone verify that it does happen on 8.5? Confirmed on my machine: WinXP / LV85. Quote Link to comment
TG Posted November 22, 2007 Report Share Posted November 22, 2007 QUOTE(eaolson @ Nov 21 2007, 04:23 PM) I was brushing up on my events and discovered this interesting crash using two of the NI-provided examples:1. Open <labview>\examples\general\dynamicevents.llb\Dynamically Monitor VI's.vi. 2. Run the VI. 3. Open <labview>\examples\general\dynamicevents.llb\Dynamically Register for Events.vi 4. Run the VI. 5. Do not stop the "Dynamically Register" VI. Instead, close it by clicking the "X" in the upper right corner of the window. A dialog window will pop up asking "Do you really want to close 'Dynamically Register for Events VI'?". Click "Yup". 6. Stop the Dynamically Monitor VI by either using the Stop button on the front panel or the Abort Execution button. 7. LabVIEW will crash with a "LabVIEW.exe has generated errors and will be closed by Windows" window. I've observed this on 8.20 running under Windows 2000 and XP. Can anyone verify that it does happen on 8.5? I haven't really figured out where it happening, but it's probably at either a property node or a Register for Events node. I also reported it to NI, but they don't seem to consider it a bug. It's not fair, but I'm not sure I agree. An attempt to access a VI not in memory seems to me should fail out with an error, not a crash to the desktop. IM no architect but I had discovered this exact behaviour a few months ago when I was trying to learn how to use events beyond the simple UI stuff. Got feedback here that it was a crash on 8 and 8.2. Sorry I never tried to get at the bottom of it but Is this not an NI example? What what I can tell you that event structures can be dangerous creatures if not handled properly. I have learned the hard way and I will not use them (or notifiers) for anything fancy. As to NI thinking it is not a bug I kind of wonder if they might be a little overwhelmed at the moment. Quote Link to comment
TG Posted November 22, 2007 Report Share Posted November 22, 2007 QUOTE(eaolson @ Nov 21 2007, 04:23 PM) I was brushing up on my events and discovered this interesting crash using two of the NI-provided examples:1. Open <labview>\examples\general\dynamicevents.llb\Dynamically Monitor VI's.vi. 2. Run the VI. 3. Open <labview>\examples\general\dynamicevents.llb\Dynamically Register for Events.vi 4. Run the VI. 5. Do not stop the "Dynamically Register" VI. Instead, close it by clicking the "X" in the upper right corner of the window. A dialog window will pop up asking "Do you really want to close 'Dynamically Register for Events VI'?". Click "Yup". 6. Stop the Dynamically Monitor VI by either using the Stop button on the front panel or the Abort Execution button. 7. LabVIEW will crash with a "LabVIEW.exe has generated errors and will be closed by Windows" window. I've observed this on 8.20 running under Windows 2000 and XP. Can anyone verify that it does happen on 8.5? I haven't really figured out where it happening, but it's probably at either a property node or a Register for Events node. I also reported it to NI, but they don't seem to consider it a bug. It's not fair, but I'm not sure I agree. An attempt to access a VI not in memory seems to me should fail out with an error, not a crash to the desktop. IM no architect but I had discovered this exact behaviour a few months ago when I was trying to learn how to use events beyond the simple UI stuff. Got feedback here that it was a crash on 8 and 8.2. Sorry I never tried to get at the bottom of it but Is this not an NI example? What what I can tell you that event structures can be dangerous creatures if not handled properly. I have learned the hard way and I will not use them (or notifiers) for anything fancy. As to NI thinking it is not a bug I kind of wonder if they might be a little overwhelmed at the moment. Quote Link to comment
Michael Aivaliotis Posted November 22, 2007 Report Share Posted November 22, 2007 QUOTE(eaolson @ Nov 21 2007, 08:23 AM) I also reported it to NI, but they don't seem to consider it a bug. It's not fair, but I'm not sure I agree. An attempt to access a VI not in memory seems to me should fail out with an error, not a crash to the desktop. Whoever at NI told you it's not a bug was probably smokin' the good stuff . I can reproduce it even with a blank new VI with a while loop and not using the "Dynamically Register for Events.vi" Quote Link to comment
Michael Aivaliotis Posted November 22, 2007 Report Share Posted November 22, 2007 QUOTE(eaolson @ Nov 21 2007, 08:23 AM) I also reported it to NI, but they don't seem to consider it a bug. It's not fair, but I'm not sure I agree. An attempt to access a VI not in memory seems to me should fail out with an error, not a crash to the desktop. Whoever at NI told you it's not a bug was probably smokin' the good stuff . I can reproduce it even with a blank new VI with a while loop and not using the "Dynamically Register for Events.vi" Quote Link to comment
eaolson Posted November 22, 2007 Author Report Share Posted November 22, 2007 QUOTE(Michael_Aivaliotis @ Nov 21 2007, 03:44 PM) Whoever at NI told you it's not a bug was probably smokin' the good stuff . I can reproduce it even with a blank new VI with a while loop and not using the "Dynamically Register for Events.vi" I haven't quite nailed this down yet, but I think that's because the problem is actually happening inside Dynamically Monitor VI's. That keeps an array of running VIs and registers the Panel Close event for each one. I'll try and look into this more this weekend. (Over the holiday, does that make me a geek?) For even more fun and excitement, there's this odd chain of events, too: 1. Open Dynimically Monitor VI's, Dynamically Register for Events, and Wait for Events (which is a subVI of Dynamically Monitor VI's). 2. Open the Wait for Events block diagram. 3. Run Dynamically Monitor VIs and Dynamically Register for Events 4. Turn on execution highlighting in Wait for Events. 5. As before, close Dynamically Register for Events with the X in the window corner 6. Wait for Events will process all the events it's supposed to, but LabVIEW won't crash. 7. Again, open Dynamically Register for Events. The program will open and you'll notice that the Run button indicates that it's already running! LabVIEW will then crash. Quote Link to comment
eaolson Posted November 22, 2007 Author Report Share Posted November 22, 2007 QUOTE(Michael_Aivaliotis @ Nov 21 2007, 03:44 PM) Whoever at NI told you it's not a bug was probably smokin' the good stuff . I can reproduce it even with a blank new VI with a while loop and not using the "Dynamically Register for Events.vi" I haven't quite nailed this down yet, but I think that's because the problem is actually happening inside Dynamically Monitor VI's. That keeps an array of running VIs and registers the Panel Close event for each one. I'll try and look into this more this weekend. (Over the holiday, does that make me a geek?) For even more fun and excitement, there's this odd chain of events, too: 1. Open Dynimically Monitor VI's, Dynamically Register for Events, and Wait for Events (which is a subVI of Dynamically Monitor VI's). 2. Open the Wait for Events block diagram. 3. Run Dynamically Monitor VIs and Dynamically Register for Events 4. Turn on execution highlighting in Wait for Events. 5. As before, close Dynamically Register for Events with the X in the window corner 6. Wait for Events will process all the events it's supposed to, but LabVIEW won't crash. 7. Again, open Dynamically Register for Events. The program will open and you'll notice that the Run button indicates that it's already running! LabVIEW will then crash. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.