[Orbit-python-list] Problem with parsing of recursive structs in IDL
Status: Inactive
Brought to you by:
tack
|
From: Brad C. <cha...@ar...> - 2001-08-29 01:55:38
|
Hello all;
I ran into a problem with CORBA._load_idl() getting a Bus error and
core dump while parsing an IDL that I work on. After a bit of
narrowing down, it appears as if this is a minimal IDL that will
cause the problem:
struct RecursiveStruct {
sequence <RecursiveStruct> inner_struct;
};
interface ProblemInterface {
attribute RecursiveStruct problem_item;
};
The idea is that you have a struct that has, as one of its member, a
list of itself (in the IDL that I'm working on this is used to descend
a sort of "tree" of items). When a struct like this is present inside
an interface, it will cause the problem. gdb gives a trace that looks
like:
#0 0x283c6dba in _thread_leave_cancellation_point () from /usr/lib/libc_r.so.4
#1 0x283c705d in _thread_leave_cancellation_point () from /usr/lib/libc_r.so.4
#2 0x283c7781 in malloc () from /usr/lib/libc_r.so.4
#3 0x283bf179 in calloc () from /usr/lib/libc_r.so.4
#4 0x28461dc7 in g_malloc0 () from /usr/local/lib/libglib12.so.3
#5 0x283ff8be in alloc_typecode () at idl.c:917
#6 0x28400538 in get_struct_typecode (tree=0x81af5c0) at idl.c:1172
#7 0x28401525 in get_typecode (tree=0x81af5c0) at idl.c:1431
#8 0x283ffe59 in get_ident_typecode (tree=0x81af240) at idl.c:1043
#9 0x28401565 in get_typecode (tree=0x81af240) at idl.c:1439
#10 0x2840082a in get_sequence_typecode (tree=0x81af600) at idl.c:1219
#11 0x2840158d in get_typecode (tree=0x81af600) at idl.c:1445
[...]
#s 5-11 will than repeat over and over again in the backtrace,
seeming to indicate that orbit-python gets itself into a loop while
parsing this.
This error happens for me with orbit-python 0.3.0, ORBit 0.5.8, on both
FreeBSD and NetBSD machines.
I hope this report gives enough info for someone with a knowledge of
idl.c; please let me know if you need more information (or would
rather I submit this to the bug-tracker instead of sending it here).
Thanks to all for orbit-python -- it has been really great to see all
the new features/improvements happening on it!
Brad
|