LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

CAR #279915

 

I checked my LV error log*. Running that example does indeed cause the DWarn:

DWarn 0x4F94E02B: DisposeObjHeap: conditions that caused CAR #279915 have appeared
E:\builds\2020patch\source\objheap\objheap.cpp(392) : DWarn 0x4F94E02B: DisposeObjHeap: conditions that caused CAR #279915 have appeared
minidump id: 1ab00ea3-e13d-456b-be17-beb396e9da85
$Id: //labview/branches/2020patch/dev/source/objheap/objheap.cpp#1 $

 

* C:\Users\User\AppData\Local\Temp\LabVIEW_64_20.0f1_User_cur.txt)

0 Kudos
Message 11 of 15
(395 Views)

So it seems that it doesn't just flag a reference for deletion and wait until it's safe but actually kills it immidiatly? So, don't close VI refs if they're in use. 🙂

G# - Award winning reference based OOP for LV, for free! - Qestit VIPM GitHub

Qestit Systems
Certified-LabVIEW-Developer
0 Kudos
Message 12 of 15
(390 Views)

@Yamaeda wrote:

So it seems that it doesn't just flag a reference for deletion and wait until it's safe but actually kills it immidiatly? 


Yes, you get the exact reference that is used in the panel, not a new reference to the VI in the subpanel.

 

Closing the reference apparently makes LV kill it, not sure why as the VI is still in memory.

 


@Yamaeda wrote:

So, don't close VI refs if they're in use. 🙂


Yes, but once the VI using InsertedVI stops, it will close the reference, and there's nothing you can do about it.

 

This happens here (no close):

wiebeCARYA_1-1698921673927

 

Since larger applications that typically use subpanels also use dynamic VIs a lot, it's quite easy to have a clone call InsertedVI.

 

Then everything goes sour...

 

It's not just that your code doesn't do what's expected. You actually need to make the inserted VI and the VI with the subpanel leave memory before you can give it a new try... Both the main subpanel and the DUT are useless until closed and reloaded.

Message 13 of 15
(383 Views)

I believe the DWarn was fixed in LV 2021 SP1. Note that the documentation does mention that if you close the reference of the inserted VI, it will remain visible in the subpanel until the VI that owns the subpanel goes idle, and that a best practice is to call Remove VI if you don't want to see the VI in the subpanel anymore.

 

I verified that running your example no longer returns a DWarn in LV 2023 Q3. For reference, the Bug that was fixed in LV 2021 SP1 to address this issue was Bug 1631819.

Message 14 of 15
(366 Views)

@Darren wrote:

I verified that running your example no longer returns a DWarn in LV 2023 Q3. For reference, the Bug that was fixed in LV 2021 SP1 to address this issue was Bug 1631819.


I tried to generate a log to send it to R&D, but it won't reproduce anymore. There might be more to it.

EDIT: It did create a log DWarn eventually, maybe not until I closed the VI?

 

I'm looking into it because our application suddenly started crashing (LV20, 64 bit), and the log is filled with CAR #279915 references (2 crashes, one with exactly 80 DWarns, the other exactly 100 DWarns).

 

But I don't use InsertedVI at all.

 

The crashes are unattended (no user interaction for hours), and the only lead that's left is to examine the changes between the last stable version and the first unstable version.

0 Kudos
Message 15 of 15
(357 Views)