<?xml version="1.0" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.jacorb.org/bugzilla/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.2"
          urlbase="https://www.jacorb.org/bugzilla/"
          
          maintainer="jacorb@goots.org"
>

    <bug>
          <bug_id>949</bug_id>
          
          <creation_ts>2013-05-14 13:04:19 +0000</creation_ts>
          <short_desc>Memory issue if size of Message exceed maximum Size</short_desc>
          <delta_ts>2013-10-24 06:18:18 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>JacORB</product>
          <component>ORB</component>
          <version>2.3.0</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alka singh">alka.singh</reporter>
          <assigned_to name="Mailinglist to track bugs">jacorb-bugs</assigned_to>
          <cc>alka.singh</cc>
    
    <cc>jacorb</cc>
    
    <cc>Martin.Langwieder</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2997</commentid>
    <comment_count>0</comment_count>
    <who name="alka singh">alka.singh</who>
    <bug_when>2013-05-14 13:04:19 +0000</bug_when>
    <thetext>We have a system where java component interfaces with c++ component using Corba.
On java we use jacorb library whereas on the c++ side we use omni-orb.

We have maximum size of 8m set on the c++ side and in java side we have jacorb.connection.client.retry_on_failure flag set to on.

For one of the cases C++ component attempted to send a Message where size was more than 8m. Due to this there was a warning message generated on java code:
04-30-2013 00:49:37.789 ClientMe jacorb.giop.c W Abnormal connection termination. Lost 1 outstanding replie(s)!

This warning goes on for while, and then java process gets into OutOfMemory Error. On the heap analysis, it was found that ClientGIOPConnection  was maximum consumer.

Has this issue been reported before? I tried with version 3.2 of jacorb, but problem persist.

I have made following changes to jacorb code, and the fix works for me. Let me know if the fix is correct. Look for &quot;// fix&quot; to see the new code

1) org.jacorb.orb.giop.ClientConnection.streamClosed
else
{
    if (logger.isWarnEnabled())
    {
        logger.warn(&quot;Abnormal connection termination. Lost &quot; +
                    replies.size() + &quot; outstanding replie(s)!&quot;);
    }
    // fix start
    connection.clearMessage();
    // fix end
}

2) org.jacorb.orb.giop.GIOPConnection
// fix start
public void clearMessage(){
        fragments.clear();
}
// fix start</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2998</commentid>
    <comment_count>1</comment_count>
    <who name="Nick Cross">jacorb</who>
    <bug_when>2013-05-15 12:38:27 +0000</bug_when>
    <thetext>Thanks for the bug report.

Are you able to supply a test case and/or wireshark trace?

It would be helpful to understand the sequence of calls from client and server replies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3080</commentid>
    <comment_count>2</comment_count>
    <who name="Nick Cross">jacorb</who>
    <bug_when>2013-10-24 06:18:18 +0000</bug_when>
    <thetext>Fixed by 5694e66c5fb2c1954763b82417fbbd998fdde797</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>