LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

System Exec error with kernel 2.6

Several months ago I developed a program in LV 6.1 for linux, and I've run it on a custom board under linux (kernel 2.4.x) since now.

A couple of days ago I had to upgrade to kernel 2.6.16 and the LV program crashes with this error:
Main.vi was stopped at node 0x13DC of subvi "System Exec.vi"
I did several tests and I discovered that the problem is during the execution of System Exec (I use it for a "sync" command),
after my program has processed a lot of data.
But if I don't use the System Exec.vi, the program doesn't crash, even after massive data processing.

Could I be out of memory? My board has 64MB of RAM.
I'm not able to reproduce this problem on my desktop PC (kernel 2.6.15 with 768MB of RAM)

Thanks

Using LV 6.1 on linux Fedora Core 3

Vix
-------------------------------------------
In claris non fit interpretatio

-------------------------------------------
Using LV from 7
Using LW/CVI from 6.0
0 Kudos
Message 1 of 7
(3,094 Views)
Hi Vix, i need to have some other information from you: you wrote "I'm not able to reproduce this problem on my desktop PC (kernel 2.6.15 with 768MB of RAM)", so, what have you used perform your acquisition? How long is your data acquisition? what kind of tests have you already done? Can you reproduce your error, as in an example, using a small VI? Thanx Raffa
0 Kudos
Message 2 of 7
(3,074 Views)


@Raffaella wrote:
Hi Vix, i need to have some other information from you


I admit the situation is not easy to understand, but I try to explain better
If I run the executable on my desktop PC everything is OK.
If I run the same executable on my custom board (x86 processor based) with kernel 2.4.x everything is OK.
If I run the same executable on my custom board with kernel 2.6.16 I have this problem: if I process data arrays (size larger than 4000 elements, more or less; processing a single array is enough) with a FFT, then an inverse FFT I see a strange behaviour. I can use my program without problem ,apparently, but the first time I call "System Exec.vi" I see the error, and the program crashes.
I can't reproduce the problem in a different situation, but I'll try to do it

I hope it helps.

Using LV 6.1 for Linux

Vix
-------------------------------------------
In claris non fit interpretatio

-------------------------------------------
Using LV from 7
Using LW/CVI from 6.0
0 Kudos
Message 3 of 7
(3,069 Views)
Hi Vix, This sounds like a very unique situation. Because each distribution of Linux is custom-configured to provide software extensions that optimize functionality in a specific situation, there is a significant amount of variability in behavior between distributions as well as custom boards. It is very difficult to understand where the problem is occurring. Let me ask a few more questions for clarity: Since the upgrade to kernel 2.6.16, has this problem always existed? What happens when call “System Exec.vi” in an example VI? Does the problem still exist? What else is occurring during the call to “System Exec.vi”? Have you tried highlighting execution to see if any other errors occur in your program? When your application calls “System Exec.vi”, does it run another program? Is it logging data? Your suggestion about RAM seems relevant also. The computational complexity of IFFTs is memory intensive and I would definitely recommend upgrading your RAM. Is this possible? How are you allocating memory for your arrays? Are you creating subsets before using a while/for loop? If not, this is a way to decrease memory usage instead of build the 4000 element array during each iteration of a while/for loop. Please let us know of your findings! Thanks in advance, Raffa
0 Kudos
Message 4 of 7
(3,055 Views)
This problem has existed since the uprade to kernel 2.6.
No problem calling "System Exec.vi" in a simple program (also in a loop that continously call it)
My program is made by 3 parallel while loops, and I've found out that when there is the "System Exec.vi" error, only one while loop stops; the others continue running. Then, when I press the OK button on the pop-up error (this is the only thing I can do) the entire program stops abnormally (front panels not closed, ...)
I call "System Exec" for simple commands like (sync, mound and umount a USB pen drive, ...)
Unfortunately I can't upgrade my RAM.
The arrays are outputs from VI like FFT, IFFT, ...  I don't allocate them explicitly.

But today I discovered an interesting thing: I wrote a CIN and I call the C function "system( )" (not the System Exec vi) and everything seems OK.
I'll do several other tests the next days, anyway...
Could be the "SystemExec.vi" for LV 6.1 not fully compatible with kernel 2.6?


Vix
-------------------------------------------
In claris non fit interpretatio

-------------------------------------------
Using LV from 7
Using LW/CVI from 6.0
0 Kudos
Message 5 of 7
(3,045 Views)

Hi Vix!

I'm glad you found a work-around! I will look into this problem, and maybe ask for  a corrective action request.

Thank you!

Ciao

0 Kudos
Message 6 of 7
(3,024 Views)
Unfortunately I've had my problem solved only for few days.
My executable has become a litlle larger... and the problem appeared again.
So I've enabled swap on my linux kernel, and everything works fine. I checked that now the program doesn't crash, but uses swap space to execute the System Exec vi.

It was definitively a memory problem, after all Smiley Sad
Nothing wrong with the System Exec.vi (so I'm using it, and not the System Exec I created)
Vix
-------------------------------------------
In claris non fit interpretatio

-------------------------------------------
Using LV from 7
Using LW/CVI from 6.0
0 Kudos
Message 7 of 7
(2,997 Views)