05-08-2023 10:33 PM
Hallo,
im Einsatz: LabVIEW 2020 SP1 32-Bit unter Windows 11 64-Bit
Problem:
[+] Reproduzierbarer Absturz von "Queue freigeben (Funktion)"
[+] wie ermittelt: Haltepunkt vor der Funktion, Ansprung der Funktion, keine Rückkehr da Crash von LabVIEW - siehe bild1.png
Aufbau:
[+] Haupt-VI mit zeitkritischer Priorität
[+] Aufbau der Queues vor einer while-loop, Clusterung - siehe bild2.png + bild3.png
[+] problemloses Handling beider Queues innerhalb der while-loop, liefern Daten wie sie sollen - siehe bild4.png
[+] Freigabe beider Queues nach der while-loop, Absturz beim Aufruf der mit rotem Pfeil markierten Position - siehe bild5.png
Ergänzungen:
[+] gleiches Absturzverhalten auch unter LabVIEW 2022 Q3 32-Bit
Und nun?
05-09-2023 12:27 AM - edited 05-09-2023 12:28 AM
Hi Math(ias?),
you would get much more and faster responses if you would post your questions in English in this worldwide forum!
(Für deutschsprachige Unterhaltungen gibt es das www.labviewforum.de.)
@MathHas wrote:
Problem:
[+] Reproduzierbarer Absturz von "Queue freigeben (Funktion)"
[+] wie ermittelt: Haltepunkt vor der Funktion, Ansprung der Funktion, keine Rückkehr da Crash von LabVIEW - siehe bild1.png
You create a queue to handle 1D arrays as elements, with a max size of 80k elements.
How much data do you store in the loop?
Can you create a small test VI, which stores arrays of your usual size in a queue and then deletes and kills the queue? Can you recreate the same crash this way?
Suggestion: would it help to store DVRs (of your arrays) inside the queue? This way the queue itself only needs to handle some "pointers" instead of (possibly variable sized) arrays…
05-09-2023 03:43 AM - edited 05-09-2023 03:44 AM
Hello GerdW,
the support in the queue varies within the while loop between 40 ... 300 samples - see bild6.png. If I set the initial queue size to -1 or only 10000, the crash still occurs as described.
der Rückhalt in der Queue schwankt innerhalb der while loop zwischen 40 ... 300 Sample - siehe bild6.png. Wenn ich die initiale Queue Größe auf -1 bzw. nur 10.000 setze so erfolgt trotzdem der Absturz wie beschrieben.
Best regards,
Mathias
05-09-2023 04:04 AM - edited 05-09-2023 04:13 AM
Hi Mathias,
@MathHas wrote:
the support in the queue varies within the while loop between 40 ... 300 samples - see bild6.png.
is this the number of samples (aka scalar DBL values) or the number of arrays?
(When it's the number of arrays: what's the size of those arrays?)
@MathHas wrote:
If I set the initial queue size to -1 or only 10000, the crash still occurs as described.
Does the crash also occur in a test VI, where you only create the queue, stuff some elements (of typical size) into the queue and then clear&kill the queue in the same way as you do in your current VI?
Edit: I just created such a test VI myself:
This one works as expected for me: it fills the queue within milliseconds, then flushes and kills it - no errors, no crashes…
05-09-2023 04:30 AM
Hello GerdW,
they are the number of samples. If I don't take the data fed in from the USB measuring device in the sub-VI - see bild7.png - but feed in simulated data from a LabVIEW generator instead, the crash described also occurs.
es sind die number of samples. Wenn ich im Sub-VI - siehe bild7.png - die eingespeisten Daten nicht von dem USB Messgerät nehme sondern statt dessen simulierte Daten eines LabVIEW-Generators einspeise so kommt es auch zu dem beschriebenen Absturz.
Best regards,
Mathias
05-09-2023 05:09 AM - edited 05-09-2023 05:11 AM
Hi Mathias,
@MathHas wrote:
they are the number of samples.
The output of QueueStatus is named "# elements in queue". The element of that queue is an 1D-array!
So again the same question: what's the size of those array elements in the queue?
(According to your image there should be atleast 2 samples in an array as you index column #0 and #1…)
Does my snippet also crash on your computer?
05-09-2023 07:33 AM
Hi GerdW,
many thanks for the support. I found the bug somewhere else between the Windows and DSP communication. It was more of a coincidence that the crash occurred as part of the LabVIEW queue.
vielen Dank für die Unterstützung. Ich habe den Fehler an anderer Stelle zwischen der Windows und DSP Kommunikation gefunden. Das der Absturz im Rahmen der Queue von LabVIEW erfolgte ist eher ein häufiger Zufall gewesen.
Best regards,
Mathias