RP/TUX 8.0/TUX 9.1 - Memory leak in a CORBA C++ DII client (Doc ID 771647.1)

Last updated on FEBRUARY 14, 2017

Applies to:

Oracle Tuxedo / Tuxedo / 8.0,9.1
Information in this document applies to any platform

Goal

DESCRIPTION:
Memory leak occurs in a Tuxedo 8.0/CORBA C++ DII client performing invokes in an infinite loop.  This can be
reproduced with the samples/corba/simpapp sample in which the simplec.cpp source file has been modified by replacing
these two lines:

        CORBA::String_var v_lower = v_simple->to_lower(mixed);
        cout << v_lower.in() << endl;

with the following:

        while(true) {
            CORBA::Request_var request = v_simple->_request("to_lower");
            request->add_in_arg() <<= mixed;
            request->return_value() <<= "";
            request->invoke();
            char* v_lower_res = 0;
            request->return_value() >>= v_lower_res;
            cout << v_lower_res << endl;
        };

As can be seen on both Windows and Solaris, virtual memory allocated to the client grows indefinitely (gradually on
Solaris, and in increments of 32K about every 2000 iterations of the invoke loop).

CONFIGURATION:
Tuxedo 8.0
Tuxedo 9.1
Windows NT/2000
Solaris 8 32-bit

Solution

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms