Issue 2819: interop issue: what system exceptions may be raised on GIOP 1.0? (orb_revision) Source: (, ) Nature: Uncategorized Issue Severity: Summary: Summary: An issue we"ve run across is enumerating the set of system exceptions that are valid to be passed via GIOP 1.0 (and similarly for 1.1, and 1.2). This is important for implementations of GIOP, which are, for instance, attempting to map wire exceptions to C++ exceptions, and is also important for packet-sniffing implementations. Since many conforming GIOP 1.0 implementations were built (and bought) and incorporated into products before various CORBA system exceptions were added to the Core, it seems that servers should not raise `newer" exceptions back to older clients -- that is, clients speaking GIOP 1.0. Instead, they should map those `newer" exceptions to UNKNOWN, I"d guess. Resolution: closed in interop/2000-01-01 Revised Text: Actions taken: July 21, 1999: received issue March 7, 2002: moved to Core RTF March 22, 2002: closed issue Discussion: End of Annotations:===== Date: Wed, 21 Jul 1999 13:35:11 PDT Sender: Bill Janssen From: Bill Janssen To: issues@omg.org, interop@omg.org Subject: interop issue: what system exceptions may be raised on GIOP 1.0? CC: ilu-bugs.PARC@xerox.com, waugaman_janet@burr-brown.com An issue we've run across is enumerating the set of system exceptions that are valid to be passed via GIOP 1.0 (and similarly for 1.1, and 1.2). This is important for implementations of GIOP, which are, for instance, attempting to map wire exceptions to C++ exceptions, and is also important for packet-sniffing implementations. Since many conforming GIOP 1.0 implementations were built (and bought) and incorporated into products before various CORBA system exceptions were added to the Core, it seems that servers should not raise `newer' exceptions back to older clients -- that is, clients speaking GIOP 1.0. Instead, they should map those `newer' exceptions to UNKNOWN, I'd guess. Bill X-Sender: juergen@emerald.omg.org X-Mailer: QUALCOMM Windows Eudora Pro Version 4.1 Date: Wed, 21 Jul 1999 17:15:14 -0400 To: issues, interop From: Juergen Boldt Subject: issue 2819 -- Interop RTF Issue This is issue # 2819 interop issue: what system exceptions may be raised on GIOP 1.0? An issue we've run across is enumerating the set of system exceptions that are valid to be passed via GIOP 1.0 (and similarly for 1.1, and 1.2). This is important for implementations of GIOP, which are, for instance, attempting to map wire exceptions to C++ exceptions, and is also important for packet-sniffing implementations. Since many conforming GIOP 1.0 implementations were built (and bought) and incorporated into products before various CORBA system exceptions were added to the Core, it seems that servers should not raise `newer' exceptions back to older clients -- that is, clients speaking GIOP 1.0. Instead, they should map those `newer' exceptions to UNKNOWN, I'd guess. Date: Wed, 21 Jul 1999 17:30:50 -0400 From: Paul H Kyzivat Organization: NobleNet X-Mailer: Mozilla 4.0 [en] (WinNT; I) To: Bill Janssen CC: interop@omg.org, ilu-bugs.PARC@xerox.com, waugaman_janet@burr-brown.com Subject: Re: interop issue: what system exceptions may be raised on GIOP 1.0? Bill, Does anything really need to be done for this? Presumably this case comes up when a higher version orb is communicating with a lower version orb and sends an exception not known in the lower version. In the case of system exceptions, the system exception marshaller can still take the data off the wire correctly, and discover that it has an exception it doesn't understand. The only two reasonable things it could do in this case are to raise MARSHAL or raise UNKNOWN. I see little reason to make the new orb do this when the old orb ought to do something reasonable anyway. (Hopefully reasonable orbs make the reasonable choice of UNKNOWN.) Paul Bill Janssen wrote: > > An issue we've run across is enumerating the set of system exceptions > that are valid to be passed via GIOP 1.0 (and similarly for 1.1, and > 1.2). This is important for implementations of GIOP, which are, for > instance, attempting to map wire exceptions to C++ exceptions, and is > also important for packet-sniffing implementations. > > Since many conforming GIOP 1.0 implementations were built (and bought) > and incorporated into products before various CORBA system exceptions > were added to the Core, it seems that servers should not raise `newer' > exceptions back to older clients -- that is, clients speaking GIOP > 1.0. > Instead, they should map those `newer' exceptions to UNKNOWN, I'd > guess. > > Bill Date: Wed, 21 Jul 1999 15:52:50 PDT Sender: Bill Janssen From: Bill Janssen To: Bill Janssen , Paul H Kyzivat Subject: Re: interop issue: what system exceptions may be raised on GIOP 1.0? CC: interop@omg.org, ilu-bugs.PARC@xerox.com, waugaman_janet@burr-brown.com Excerpts from direct: 21-Jul-99 Re: interop issue: what sy.. Paul H Kyzivat@roguewave (1409*) > I see little > reason to make the new orb do this when the old orb ought to do > something reasonable anyway. (Hopefully reasonable orbs make the > reasonable choice of UNKNOWN.) Except that it's easier to change new orbs than old, deployed, buried-in-product, ORBs. So you're saying that it's valid for any ORB to raise any number for a system exception for any GIOP version, and that ORBs which don't recognize that exception should convert it to UNKNOWN on the receiving side. Not unreasonable. Bill Date: Wed, 21 Jul 1999 19:19:55 -0400 From: Paul H Kyzivat Organization: NobleNet X-Mailer: Mozilla 4.0 [en] (WinNT; I) To: Bill Janssen CC: interop@omg.org, ilu-bugs.PARC@xerox.com, waugaman_janet@burr-brown.com Subject: Re: interop issue: what system exceptions may be raised on GIOP 1.0? Bill Janssen wrote: > > So you're saying that it's valid for any ORB to raise any number for a > system exception for any GIOP version, and that ORBs which don't > recognize that exception should convert it to UNKNOWN on the receiving > side. Not unreasonable. Yep! Date: Thu, 22 Jul 1999 12:38:18 +1000 (EST) From: Michi Henning To: Paul H Kyzivat cc: Bill Janssen , interop@omg.org, ilu-bugs.PARC@xerox.com, waugaman_janet@burr-brown.com Subject: Re: interop issue: what system exceptions may be raised on GIOP 1.0? Organization: Triodia Technologies On Wed, 21 Jul 1999, Paul H Kyzivat wrote: > In the case of system exceptions, the system exception marshaller can > still take the data off the wire correctly, and discover that it has an > exception it doesn't understand. I agree with Paul. > The only two reasonable things it could > do in this case are to raise MARSHAL or raise UNKNOWN. It must be UNKNOWN. > I see little > reason to make the new orb do this when the old orb ought to do > something reasonable anyway. (Hopefully reasonable orbs make the > reasonable choice of UNKNOWN.) There is no choice here. From chapter 3: This exception is raised if an operation implementation throws a non-CORBA exception (such as an exception specific to the implementation's programming language), or if an operation raises a user exception that does not appear in the operation's raises expression. UNKNOWN is also raised if the server returns a system exception that is unknown to the client. (This can happen if the server uses a later version of CORBA than the client and new system exceptions have been added to the later version.) Cheers, Michi. -- Michi Henning +61 7 3236 1633 Triodia Technologies +61 4 1118 2700 (mobile) PO Box 372 +61 7 3211 0047 (fax) Annerley 4103 michi@triodia.com AUSTRALIA http://www.triodia.com/staff/michi-henning.html Date: Thu, 22 Jul 1999 07:01:24 -0700 From: Bruce Schuchardt To: Michi Henning Cc: Paul H Kyzivat , Bill Janssen , interop@omg.org, ilu-bugs.PARC@xerox.com, waugaman_janet@burr-brown.com Subject: Re: interop issue: what system exceptions may be raised on GIOP 1.0? X-Mailer: Mutt 0.95.6us Perhaps there should be a standard minor code for UNKNOWNS representing system exceptions not recognized by the ORB. There are currently no standard minor codes for UNKNOWN. On Thu, Jul 22, 1999 at 12:38:18PM +1000, Michi Henning wrote: > On Wed, 21 Jul 1999, Paul H Kyzivat wrote: > > > In the case of system exceptions, the system exception marshaller can > > still take the data off the wire correctly, and discover that it has an > > exception it doesn't understand. > > I agree with Paul. > > > The only two reasonable things it could > > do in this case are to raise MARSHAL or raise UNKNOWN. > > It must be UNKNOWN. > > > I see little > > reason to make the new orb do this when the old orb ought to do > > something reasonable anyway. (Hopefully reasonable orbs make the > > reasonable choice of UNKNOWN.) > > There is no choice here. From chapter 3: > > This exception is raised if an operation implementation throws > a non-CORBA exception (such as an exception specific to the > implementation's programming language), or if an operation > raises a user exception that does not appear in the operation's > raises expression. UNKNOWN is also raised if the server returns > a system exception that is unknown to the client. (This can happen > if the server uses a later version of CORBA than the client and > new system exceptions have been added to the later version.) > > Cheers, > > Michi. > -- > Michi Henning +61 7 3236 1633 > Triodia Technologies +61 4 1118 2700 (mobile) > PO Box 372 +61 7 3211 0047 (fax) > Annerley 4103 michi@triodia.com > AUSTRALIA http://www.triodia.com/staff/michi-henning.html > Date: Fri, 23 Jul 1999 04:21:04 +1000 (EST) From: Michi Henning To: Bruce Schuchardt cc: Paul H Kyzivat , Bill Janssen , interop@omg.org, ilu-bugs.PARC@xerox.com, waugaman_janet@burr-brown.com Subject: Re: interop issue: what system exceptions may be raised on GIOP 1.0? Organization: Triodia Technologies On Thu, 22 Jul 1999, Bruce Schuchardt wrote: > Perhaps there should be a standard minor code for UNKNOWNS representing > system exceptions not recognized by the ORB. There are currently no > standard minor codes for UNKNOWN. Hmmm... If the server sends a system exception to the client that the client doesn't understand, how would the client know that it's a system exception? I guess the client could look at the repository ID, but that's not reliable -- there are things that are not system exceptions that start with IDL:omg.org/CORBA. I don't think this is possible? Cheers, Michi. -- Michi Henning +61 7 3236 1633 Triodia Technologies +61 4 1118 2700 (mobile) PO Box 372 +61 7 3211 0047 (fax) Annerley 4103 michi@triodia.com AUSTRALIA http://www.triodia.com/staff/michi-henning.html Date: Thu, 22 Jul 1999 14:51:06 -0400 From: Bob Kukura Organization: IONA Technologies X-Mailer: Mozilla 4.6 [en] (WinNT; U) X-Accept-Language: en To: Michi Henning CC: Bruce Schuchardt , Paul H Kyzivat , Bill Janssen , interop@omg.org, ilu-bugs.PARC@xerox.com, waugaman_janet@burr-brown.com Subject: Re: interop issue: what system exceptions may be raised on GIOP1.0? Michi Henning wrote: > > On Thu, 22 Jul 1999, Bruce Schuchardt wrote: > > > Perhaps there should be a standard minor code for UNKNOWNS representing > > system exceptions not recognized by the ORB. There are currently no > > standard minor codes for UNKNOWN. > > Hmmm... If the server sends a system exception to the client that the client > doesn't understand, how would the client know that it's a system exception? > I guess the client could look at the repository ID, but that's not reliable -- > there are things that are not system exceptions that start with > IDL:omg.org/CORBA. > > I don't think this is possible? The Reply message's reply status indicates whether the exception is a system or user exception. So, if the ReplyStatus is SYSTEM_EXCEPTION and the RepositoryId isn't recognized, the client raises UNKNOWN. I thought that much was already required, but maybe it needs clarification (I haven't looked at the exact wording recently). I wouldn't object to adding a standard minor code for this, though. -Bob > > Cheers, > > Michi. > -- > Michi Henning +61 7 3236 1633 > Triodia Technologies +61 4 1118 2700 (mobile) > PO Box 372 +61 7 3211 0047 (fax) > Annerley 4103 michi@triodia.com > AUSTRALIA http://www.triodia.com/staff/michi-henning.html -Bob From: "Carlos O'Ryan" Date: Thu, 22 Jul 1999 13:54:14 -0500 (CDT) To: Michi Henning Cc: Bruce Schuchardt , Paul H Kyzivat , Bill Janssen , interop@omg.org, ilu-bugs.PARC@xerox.com, waugaman_janet@burr-brown.com Subject: Re: interop issue: what system exceptions may be raised on GIOP 1.0? X-Mailer: VM 6.43 under 20.4 "Emerald" XEmacs Lucid Hi, > On Thu, 22 Jul 1999, Bruce Schuchardt wrote: > > > Perhaps there should be a standard minor code for UNKNOWNS representing > > system exceptions not recognized by the ORB. There are currently no > > standard minor codes for UNKNOWN. But then you loose the VMCID and potentially other good info in the minor code sent from the server, is that a good idea? -- Carlos O'Ryan (coryan@cs.wustl.edu) #include #include // "Speak softly and carry a megawatt laser" Date: Thu, 22 Jul 1999 12:03:43 -0700 From: Bruce Schuchardt To: "Carlos O'Ryan" Cc: Michi Henning , Paul H Kyzivat , Bill Janssen , interop@omg.org, ilu-bugs.PARC@xerox.com, waugaman_janet@burr-brown.com Subject: Re: interop issue: what system exceptions may be raised on GIOP 1.0? X-Mailer: Mutt 0.95.6us On Thu, Jul 22, 1999 at 01:54:14PM -0500, Carlos O'Ryan wrote: > Hi, > > > On Thu, 22 Jul 1999, Bruce Schuchardt wrote: > > > > > Perhaps there should be a standard minor code for UNKNOWNS representing > > > system exceptions not recognized by the ORB. There are currently no > > > standard minor codes for UNKNOWN. > > But then you loose the VMCID and potentially other good info > in the minor code sent from the server, is that a good idea? > I don't see a requirement that the original minor code be preserved in the UNKNOWN. It doesn't seem like it would be of much value since the original exception's type information is lost. From: "Carlos O'Ryan" Date: Thu, 22 Jul 1999 14:14:01 -0500 (CDT) To: Bruce Schuchardt Cc: "Carlos O'Ryan" , Michi Henning , Paul H Kyzivat , Bill Janssen , interop@omg.org, ilu-bugs.PARC@xerox.com, waugaman_janet@burr-brown.com Subject: Re: interop issue: what system exceptions may be raised on GIOP 1.0? X-Mailer: VM 6.43 under 20.4 "Emerald" XEmacs Lucid Hi, Bruce Schuchardt writes: > > But then you loose the VMCID and potentially other good info > > in the minor code sent from the server, is that a good idea? > > > > I don't see a requirement that the original minor code be preserved > in the UNKNOWN. Right. > It doesn't seem like it would be of much value since > the original exception's type information is lost. I think it is of some value, just knowing which vendor raised the unknown exception can point the developer you in the right direction trying to understand what it means. If the VMCID is the same as the receiving ORB then the minor code can be parsed to obtain more information about where and why the exception was raised, for example the errno or another vendor specific number documented in a web page or something similar. -- Carlos O'Ryan (coryan@cs.wustl.edu) #include #include // "Speak softly and carry a megawatt laser" Date: Fri, 23 Jul 1999 05:25:03 +1000 (EST) From: Michi Henning To: Bob Kukura cc: Bruce Schuchardt , Paul H Kyzivat , Bill Janssen , interop@omg.org, ilu-bugs.PARC@xerox.com, waugaman_janet@burr-brown.com Subject: Re: interop issue: what system exceptions may be raised on GIOP1.0? Organization: Triodia Technologies On Thu, 22 Jul 1999, Bob Kukura wrote: > Michi Henning wrote: > > > > I don't think this is possible? > > The Reply message's reply status indicates whether the exception is a > system or user exception. Oops, sorry, I forgot. Should have looked at the spec before opening my mouth... > I wouldn't object to > adding a standard minor code for this, though. Yes, given that it's technically possible, I agree. Two minor codes that indicate "unknown system exception" and "illegal user exception" would be useful. Cheers, Michi. -- Michi Henning +61 7 3236 1633 Triodia Technologies +61 4 1118 2700 (mobile) PO Box 372 +61 7 3211 0047 (fax) Annerley 4103 michi@triodia.com AUSTRALIA http://www.triodia.com/staff/michi-henning.html