|
|
IDL_IDL Bridge crashing when setting large variables
I thought I'd try out the IDL-IDL bridge today and my first attempt was
to try to save a large chunk of data to a file in the background while
my program did other work. I kept getting weird error messages like
"Error, could not get error information." And then sometimes IDL would
segmentation fault and dump me back to the command line.
I am working on a dual CPU intel machine running Redhat linux, and
obviously I am running version 6.3 IDL.
I cooked up an example script using the IDL bridge that makes IDL
crash. It creates two bytarrays, the second just 1 byte larger than
the first. IDL craps out for me when I try to pass the variable C2
over to the bridge. The variable C1 goes over just fine. The variable
N is just 76 bytes shy of 32 megabytes. Is that meaningful?
Anybody have any insight into this? The documentation says nothing
about limits on the size of data that can be passed over the bridge.
Has anyone seen this before?
N = 33554356 ; number of bytes
c1 = bytarr(N)
c2 = bytarr(N + 1)
print, 'OK 1'
idl_o = obj_new('idl_idlbridge')
print, 'OK 2'
idl_o->setvar, 'c1', c1 ;; <== this line runs OK for me.
print, 'OK 3'
idl_o->setvar, 'c2', c2 ;; <== this line crashes on my
machine!!!!
print, 'OK 4'
|
|
0
|
|
|
|
Reply
|
villeneuve (2)
|
12/2/2006 1:45:04 AM |
|
On Sat, 1 Dec 2006, villeneuve@spacecomputer.com wrote:
> I thought I'd try out the IDL-IDL bridge today and my first attempt was
> to try to save a large chunk of data to a file in the background while
> my program did other work. I kept getting weird error messages like
> "Error, could not get error information." And then sometimes IDL would
> segmentation fault and dump me back to the command line.
>
> I am working on a dual CPU intel machine running Redhat linux, and
> obviously I am running version 6.3 IDL.
>
> I cooked up an example script using the IDL bridge that makes IDL
> crash. It creates two bytarrays, the second just 1 byte larger than
> the first. IDL craps out for me when I try to pass the variable C2
> over to the bridge. The variable C1 goes over just fine. The variable
> N is just 76 bytes shy of 32 megabytes. Is that meaningful?
>
> Anybody have any insight into this? The documentation says nothing
> about limits on the size of data that can be passed over the bridge.
> Has anyone seen this before?
>
>
> N = 33554356 ; number of bytes
> c1 = bytarr(N)
> c2 = bytarr(N + 1)
>
> print, 'OK 1'
> idl_o = obj_new('idl_idlbridge')
>
> print, 'OK 2'
> idl_o->setvar, 'c1', c1 ;; <== this line runs OK for me.
>
> print, 'OK 3'
> idl_o->setvar, 'c2', c2 ;; <== this line crashes on my
> machine!!!!
>
> print, 'OK 4'
>
>
max. shared memory size:
cat /proc/sys/kernel/shmmax
you can change it (as root):
echo 1073741824 > /proc/sys/kernel/shmmax
regards,
lajos
|
|
0
|
|
|
|
Reply
|
foldy (234)
|
12/2/2006 6:27:13 PM
|
|
Ahah! That's it! Thank you soo much! Too bad the IDL documentation
didn't hint at this issue.
-Pierre
|
|
0
|
|
|
|
Reply
|
pierre.villeneuve (11)
|
12/2/2006 6:41:14 PM
|
|
|
2 Replies
35 Views
(page loaded in 1.422 seconds)
|
|
|
|
|
|
|
|
|