Uploaded image for project: 'Axis2-C'
  1. Axis2-C
  2. AXIS2C-1583

Memory leak in axis2_simple_http_svr_conn_read_request() (File core/transport/http/common/simple_http_svr_conn.c)

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.6.0
    • 1.7.0
    • transport/http
    • Solaris 10

    Description

      While running stress custom tests on AXIS2C v.1.6.0 (Solaris 10 enviroment), I've observed memory leak which continously grows RSS segment of AXIS2C process (simple http server is used).

      Running via Solaris MDB pointed directly to problem:
      ADDR BUFADDR TIMESTAMP THREAD
      CACHE LASTLOG CONTENTS
      818fc40 818e4c0 18c2bd8827be3 2
      809d590 0 0
      libumem.so.1`umem_cache_alloc_debug+0x16c
      libumem.so.1`umem_cache_alloc+0x15c
      libumem.so.1`umem_alloc+0x3f
      libumem.so.1`malloc+0x23
      libaxutil.so.0.6.0`axutil_allocator_malloc_impl+0x1b
      libaxutil.so.0.6.0`axutil_strdup+0x37
      libaxutil.so.0.6.0`axutil_stracat+0x9d

      libaxis2_http_common.so.0.6.0`axis2_simple_http_svr_conn_read_r
      equest+0x30e

      libaxis2_http_receiver.so.0.6.0`axis2_svr_thread_worker_func+0x
      7a
      libaxutil.so.0.6.0`dummy_worker+0x10
      libc.so.1`_thr_setup+0x4e
      libc.so.1`_lwp_start

      umem_alloc_16 leak: 1751 buffers, 16 bytes each, 28016 bytes total
      ADDR BUFADDR TIMESTAMP THREAD
      CACHE LASTLOG CONTENTS
      81b79d8 81b4d60 18c2bdb208a68 4
      809d590 0 0
      libumem.so.1`umem_cache_alloc_debug+0x16c
      libumem.so.1`umem_cache_alloc+0xe1
      libumem.so.1`umem_alloc+0x3f
      libumem.so.1`malloc+0x23
      libaxutil.so.0.6.0`axutil_allocator_malloc_impl+0x1b
      libaxutil.so.0.6.0`axutil_strdup+0x37
      libaxutil.so.0.6.0`axutil_stracat+0x9d

      libaxis2_http_common.so.0.6.0`axis2_simple_http_svr_conn_read_r
      equest+0x30e

      libaxis2_http_receiver.so.0.6.0`axis2_svr_thread_worker_func+0x
      7a
      libaxutil.so.0.6.0`dummy_worker+0x10
      libc.so.1`_thr_setup+0x4e
      libc.so.1`_lwp_start

      It is a trivial patch fix proposed.

      — axi2c-src-1.6.0-orig/src/core/transport/http/common/simple_http_svr_conn.c 2009-04-06 07:46:47.000000000 +0300
      +++ axis2c-src-1.6.0/src/core/transport/http/common/simple_http_svr_conn.c 2012-01-30 16:55:40.109233000 +0200
      @@ -307,6 +307,11 @@
      break;
      }
      }
      + if (str_line)
      +

      { + AXIS2_FREE(env->allocator, str_line); + str_line = NULL; + }

      return request;
      }

      A quick review of AXIS2c v.1.7.0 shows that v.1.7.0 doesn't experience such problem. But probably more investigation should be done.

      Anyhow AXIS2c v.1.6.0 can be fixed by proposed patch.

      Attachments

        Activity

          People

            nandika Korale Gamaralalage Nandika Chandrasiri Jayawardana
            sscdvp Serghei Samsi
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: