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

Memory leak in axis2_engine_send

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: 1.6.0
    • Fix Version/s: 1.7.0
    • Component/s: core/engine
    • Labels:
    • Environment:
      Windows XP, Visual Studio 2008

      Description

      Hi guys,

      I found a memory leak, which is pretty annoyng to me. It is small, but my applications runs really long time, and it sends frequent requests.
      I'm developing under windows and I'm using a nice memory leak tool, called Visual Leak Detector.
      Here is the Visual Leak Detector stacktrace report:

      d:\workspaces\toptapi\cti-build-setups\axis2c-src-1.6.0\util\src\allocator.c (75): axutil_allocator_malloc_impl
      d:\workspaces\toptapi\cti-build-setups\axis2c-src-1.6.0\util\src\stream.c (86): axutil_stream_create_internal
      d:\workspaces\toptapi\cti-build-setups\axis2c-src-1.6.0\util\src\stream.c (510): axutil_stream_create_socket
      0x01021760 (File and line number not available): (Function name unavailable)
      0x01024D65 (File and line number not available): (Function name unavailable)
      0x0102B66A (File and line number not available): (Function name unavailable)
      0x0102A9A5 (File and line number not available): (Function name unavailable)
      d:\workspaces\toptapi\cti-build-setups\axis2c-src-1.6.0\src\core\engine\engine.c (176): axis2_engine_send
      d:\workspaces\toptapi\cti-build-setups\axis2c-src-1.6.0\src\core\clientapi\op_client.c (1171): axis2_op_client_two_way_send
      d:\workspaces\toptapi\cti-build-setups\axis2c-src-1.6.0\src\core\clientapi\op_client.c (508): axis2_op_client_execute
      d:\workspaces\toptapi\cti-build-setups\axis2c-src-1.6.0\src\core\clientapi\svc_client.c (733): axis2_svc_client_send_receive_with_op_qname

      The (Function name unavailable) is actually a macro, that's why it can't find the stacktrace. It is in line 176:

      status = AXIS2_TRANSPORT_SENDER_INVOKE(transport_sender, env, msg_ctx);

      This macro actually allocates memory for an axutil_stream_t *stream in axis2c-src-1.6.0\util\src\stream.c (510): axutil_stream_create_socket function.
      This stream is never freed.

      Could you add the call to axutil_stream_free(...) where appropriate?

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                nandika Korale Gamaralalage Nandika Chandrasiri Jayawardana
                Reporter:
                kalinr Kalin Rashev
              • Votes:
                2 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - 0.5h
                  0.5h
                  Remaining:
                  Remaining Estimate - 0.5h
                  0.5h
                  Logged:
                  Time Spent - Not Specified
                  Not Specified