ATT Labs

AT&T Laboratories
Cambridge

Home page About Us Interactive research Software Opportunities

A list of some of the bugs in omniORB 2.2.0 fixed in release omniORB 2.4.0

Report Number 6

Date 20 October 1997

Description omniORB 2.4.0 contains fixes for all bugs discovered since 2.2.0 (including the fixes listed on the omniORB News page).

Note that this is a partial list of the bugs fixed - more bugs have been discovered and fixed since this list was made. omniORB 2.4.0 contains fixes for all bugs in 2.2.0 discovered up to the 22nd of January 1998.

The list:


On UNIX, omniORB server exits when the number of open file descriptors reaches the soft limit, normally 64. Fixed so that the server does not exit. The limit needs to be increased with your shell, for example 'limit descriptors 1024'

Reported by: Bernhard Ruememapp


Deadlock occurs when the destructor of an object implementation class calls CORBA::_release(CORBA::Object_ptr)

Reported by: Matthew Newhook, Duncan Grisby


Calling _sk_<interface>::_dispose() when the object's reference count == 1 corrupts the internal object table.

Reported by: Matthew Newhook, Duncan Grisby


IDL union bug:

The stub generated for the IDL below does not compile:

union U switch(long)
{
case 1: double d;
case 2: long e;
default: short s;
};

Reported internally.

New system exceptions:

TRANSACTION_REQUIRED
TRANSACTION_ROLLEDBACK
INVALID_TRANSACTION
WRONG_TRANSACTION

Reported by: Mark Little


Memory leaks

Reported by: Mathew Barrow, Matthew Newhook


CORBA::String_member copy ctor tests _ptr before initialising it.

Reported by: Mathew Barrow, Matthew Newhook


omniNames:

In the case when BindingIterator::next_one() returns false, the value of binding_type in the out argument is not initialised. This causes marshalling failures on the remote end sometimes (the value is neither nobject nor ncontext).

Reported by: Matthew Newhook


User exceptions:

The stub code to unmarshal user exception allocates the wrong size buffer for the repository ID string. This causes marshalling failures when the exception has a #pragma prefix defined.

Reported by: Matthew Newhook, Mathew Barrow and Juergen Keil


Interface Inheritance:

// IDL  
  interface person
  {
    attribute string ID;
  };

  interface kid: person
  {
    attribute person mom;
  };

  interface mother: person
  {
    attribute person child;
  };

// C++

  kid_ptr    k = ...;                  // k is a remote object
  person_ptr a = k->mom();             // k actually returns an object ref
                                       // of interface mother
  mother_ptr m = mother::_narrow(a);
  assert(CORBA::is_nil(m) != 0);      // Bug: assertion failed.
This bug is fixed but requires both sides to have the stub of all the interfaces linked into the executable. The next release will remove this restriction.

Reported by: Ernie van der Meer

Wrong typedef for CORBA::ORBid
Wrong signature for CORBA::ORB_init()

Reported by: Mark Little


Port to run under x86 linux, glib 2.0.4, gcc2.7.2.2

Reported by: Marcel Ruff


Sequence of array does not work

// IDL
   typedef float rc[3];
   typedef sequence rcSeq;

    interface Ri {
      void Dummy(in rcSeq colors);
    };

Reported by: John Connett

Wrong stub for

// IDL
typedef Object O;

Reported by: Wolfgang Ruppel

Port to AIX 4.2

Reported by: Andrey Slepuhin


omniidl2 does not detect name clashes between identifiers that differ in case only.

    // Extract from OTS IDL
    typedef ... Coordinator;
    typedef ... Terminator;
    struct TransIdentity
    {
        Coordinator coordinator;
        Terminator terminator;
        otid_t otid;
    };
IDL compiler should report name clashes between Coordinator-coordinator and Terminator-terminator.

Reported by: Mark Little

catior SEGV when supplied with a stringified IOR with a few digits missing

Reported internally.


Using 'c' as the name of an OUT/INOUT variable length argument in an operation clashes with an internal variable used by the proxy stub code.

Reported internally.




The Release The new release is currently in the final stages of testing, and will be released in the next few weeks. For details of other features contained in the new release, see the message posted on omniorb-list.

For comments, suggestions and further information please contact us.
Copyright © 2001 AT&T Laboratories Cambridge