[omniORB] More problems porting omniORB.

Mike Bendickson bendi003@tc.umn.edu
Wed, 9 Jun 1999 15:34:44 -0500


This is a multi-part message in MIME format.

------=_NextPart_000_00DA_01BEB28D.99829F80
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

I'm trying to port omniORB to UnixWare 2.1.2 using the egcs 1.1.2 =
release.  UnixWare 2 has UI threads so I'm working off of the Solaris =
port.  The release compiles with only a few warnings.

Running "omniNames -start 12345" gives me a bus error.

I had posted a message earlier that included output from gdb where I =
would get a SIGWAITING signal.  I believe that was normal, and I ended =
up telling gdb to not print the signal and send it on to the program =
which was not the default behavior.  handle SIGWAITING noprint noignore =
nostop pass.

Here's what I get from gdb now:

<stuff deleted>
(gdb)
parse_BOA_args (argc=3D@0x8047c2c, argv=3D0x80dabe8,
    orb_identifier=3D0x8087d04 "omniORB2_BOA") at corbaBoa.cc:453
453       CORBA::Boolean orbId_match =3D 0;
(gdb)
454       if (orb_identifier && strcmp(orb_identifier,myBOAId) !=3D 0)
(gdb)
464       int idx =3D 1;
(gdb)
465       while (argc > idx)
(gdb)
470                 argv[idx][2] =3D=3D 'O' && argv[idx][3] =3D=3D 'A'))
(gdb)
477           if (strcmp(argv[idx],"-BOAid") =3D=3D 0) {
(gdb)
500           if (strcmp(argv[idx],"-BOAiiop_port") =3D=3D 0) {
(gdb)
501             if ((idx+1) >=3D argc) {
(gdb)
510                 (port =3D=3D 0 || port >=3D 65536)) {
(gdb)

519             if ((hostname =3D =
(CORBA::Char*)getenv(OMNIORB_USEHOSTNAME_VAR))=3D=3DNULL) {
(gdb)
520               hostname =3D (CORBA::Char*)"";
(gdb)
523               _tcpEndpoint e (hostname,(CORBA::UShort)port);
(gdb)
tcpSocketEndpoint (this=3D0x8047a6c, h=3D0x8089905 "", p=3D12345) at =
tcpSocket.cc:296
296         : Endpoint((CORBA::Char *)tcpSocketEndpoint::protocol_name)
(gdb)

Program received signal SIGBUS, Bus error.
0xbff8bdd0 in _thr_sigacthandler () from /usr/lib/libthread.so.1
(gdb)
Single stepping until exit from function _thr_sigacthandler,
which has no line number information.

Program terminated with signal SIGBUS, Bus error.


Searching the newsgroup archives, I can find no reference to =
_thr_sigacthandler.  It seems that I am the first person in history to =
have this problem.  Any clues as to what might be happening here?  Does =
_thr_sigacthandler() have anything to do with the problem, or is it just =
catching the SIGBUS signal after it happens?  What should I be looking =
at?

Thanks,
-Mike Bendickson
 bendi003@tc.umn.edu

------=_NextPart_000_00DA_01BEB28D.99829F80
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content=3D"text/html; charset=3Diso-8859-1" =
http-equiv=3DContent-Type>
<META content=3D"MSHTML 5.00.2314.1000" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT size=3D2>I'm trying to port omniORB to UnixWare =
2.1.2&nbsp;using the=20
egcs 1.1.2 release.&nbsp; UnixWare 2 has UI threads so I'm working off =
of the=20
Solaris port.&nbsp; The release compiles&nbsp;with only a few=20
warnings.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3D2>Running "omniNames -start 12345" gives me a bus=20
error.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3D2>I had posted a message earlier that included output =
from gdb=20
where I would get a SIGWAITING signal.&nbsp; I believe that was normal, =
and I=20
ended up telling gdb to not print the signal and send it on to the =
program which=20
was not the default behavior.&nbsp; handle SIGWAITING noprint noignore =
nostop=20
pass.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3D2>Here's what I get from gdb now:</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3D2>&lt;stuff deleted&gt;</FONT></DIV>
<DIV><FONT size=3D2>(gdb)<BR>parse_BOA_args (argc=3D@0x8047c2c,=20
argv=3D0x80dabe8,<BR>&nbsp;&nbsp;&nbsp; orb_identifier=3D0x8087d04 =
"omniORB2_BOA")=20
at corbaBoa.cc:453<BR>453&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
CORBA::Boolean=20
orbId_match =3D 0;<BR>(gdb)<BR>454&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
if=20
(orb_identifier &amp;&amp; strcmp(orb_identifier,myBOAId) !=3D=20
0)<BR>(gdb)<BR>464&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int idx =3D=20
1;<BR>(gdb)<BR>465&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (argc &gt;=20
idx)<BR>(gdb)<BR>470&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
argv[idx][2] =3D=3D 'O' &amp;&amp; argv[idx][3] =3D=3D=20
'A'))<BR>(gdb)<BR>477&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;=20
if (strcmp(argv[idx],"-BOAid") =3D=3D 0)=20
{<BR>(gdb)<BR>500&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp; if=20
(strcmp(argv[idx],"-BOAiiop_port") =3D=3D 0)=20
{<BR>(gdb)<BR>501&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;=20
if ((idx+1) &gt;=3D argc)=20
{<BR>(gdb)<BR>510&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
(port =3D=3D 0 || port &gt;=3D 65536)) {<BR>(gdb)</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT=20
size=3D2>519&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;=20
if ((hostname =3D =
(CORBA::Char*)getenv(OMNIORB_USEHOSTNAME_VAR))=3D=3DNULL)=20
{<BR>(gdb)<BR>520&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
hostname =3D=20
(CORBA::Char*)"";<BR>(gdb)<BR>523&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
_tcpEndpoint e =
(hostname,(CORBA::UShort)port);<BR>(gdb)<BR>tcpSocketEndpoint=20
(this=3D0x8047a6c, h=3D0x8089905 "", p=3D12345) at=20
tcpSocket.cc:296<BR>296&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
:=20
Endpoint((CORBA::Char =
*)tcpSocketEndpoint::protocol_name)<BR>(gdb)</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3D2>Program received signal SIGBUS, Bus =
error.<BR>0xbff8bdd0 in=20
_thr_sigacthandler () from /usr/lib/libthread.so.1<BR>(gdb)<BR>Single =
stepping=20
until exit from function _thr_sigacthandler,<BR>which has no line number =

information.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3D2>Program terminated with signal SIGBUS, Bus=20
error.<BR></FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Searching the newsgroup archives, I can find no =
reference to=20
_thr_sigacthandler.&nbsp; It seems that I am the first person in history =
to have=20
this problem.&nbsp; Any clues as to what might be happening here?&nbsp; =
Does=20
_thr_sigacthandler() have anything to do with the problem, or is it just =

catching the SIGBUS signal after it happens?&nbsp; What should I be =
looking=20
at?</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3D2>Thanks,</FONT></DIV>
<DIV><FONT size=3D2>-Mike Bendickson</FONT></DIV>
<DIV><FONT size=3D2>&nbsp;<A=20
href=3D"mailto:bendi003@tc.umn.edu">bendi003@tc.umn.edu</A></FONT></DIV><=
/BODY></HTML>

------=_NextPart_000_00DA_01BEB28D.99829F80--