axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marc Giger (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AXIS2C-399) memory leaks
Date Thu, 28 Dec 2006 12:38:30 GMT
    [ http://issues.apache.org/jira/browse/AXIS2C-399?page=comments#action_12461182 ] 
            
Marc Giger commented on AXIS2C-399:
-----------------------------------

There are some leaks left in the case of a soap-fault:
Additionally there are some invalid memory accesses...

Started Simple Axis2 HTTP Server ...
==13250== Thread 2:
==13250== Invalid read of size 1
==13250==    at 0x4906905: memmove (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==13250==    by 0x54B4F04: axis2_http_transport_utils_process_http_post_request (http_transport_utils.c:205)
==13250==    by 0x54B2B46: axis2_http_worker_process_request (http_worker.c:350)
==13250==    by 0x55CA2BF: axis2_svr_thread_worker_func (http_svr_thread.c:337)
==13250==    by 0x36F6B05FBB: start_thread (in /lib64/libpthread-2.4.so)
==13250==    by 0x36F64B8CED: clone (in /lib64/libc-2.4.so)
==13250==  Address 0x5891183 is 0 bytes after a block of size 3 alloc'd
==13250==    at 0x4905930: malloc (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==13250==    by 0x4C46879: axis2_strdup (string.c:34)
==13250==    by 0x54B6FAA: axis2_http_header_create (http_header.c:84)
==13250==    by 0x54B70CC: axis2_http_header_create_by_str (http_header.c:143)
==13250==    by 0x55C9A6A: axis2_simple_http_svr_conn_read_request (simple_http_svr_conn.c:369)
==13250==    by 0x55CA2AA: axis2_svr_thread_worker_func (http_svr_thread.c:335)
==13250==    by 0x36F6B05FBB: start_thread (in /lib64/libpthread-2.4.so)
==13250==    by 0x36F64B8CED: clone (in /lib64/libc-2.4.so)
==13250==
==13250== Conditional jump or move depends on uninitialised value(s)
==13250==    at 0x4C44AF2: axis2_error_impl_get_message (error.c:549)
==13250==    by 0x5498FC9: axis2_raw_xml_in_out_msg_recv_invoke_business_logic_sync (raw_xml_in_out_msg_recv.c:315)
==13250==    by 0x5498357: axis2_raw_xml_in_out_msg_recv_receive_sync (msg_recv.c:434)
==13250==    by 0x548C7E5: axis2_engine_receive (engine.c:446)
==13250==    by 0x54B4C58: axis2_http_transport_utils_process_http_post_request (http_transport_utils.c:479)
==13250==    by 0x54B2B46: axis2_http_worker_process_request (http_worker.c:350)
==13250==    by 0x55CA2BF: axis2_svr_thread_worker_func (http_svr_thread.c:337)
==13250==    by 0x36F6B05FBB: start_thread (in /lib64/libpthread-2.4.so)
==13250==    by 0x36F64B8CED: clone (in /lib64/libc-2.4.so)
==13250==
==13250== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 4 from 1)
==13250== malloc/free: in use at exit: 6,657,596 bytes in 110,462 blocks.
==13250== malloc/free: 208,461 allocs, 97,999 frees, 13,946,417 bytes allocated.
==13250== For counts of detected errors, rerun with: -v
==13250== searching for pointers to 110,462 not-freed blocks.
==13250== checked 8,847,488 bytes.
==13250==
==13250== Thread 1:
==13250==
==13250== 164 (40 direct, 124 indirect) bytes in 1 blocks are definitely lost in loss record
19 of 131
==13250==    at 0x4905930: malloc (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==13250==    by 0x4C4BCD1: axis2_url_create (url.c:100)
==13250==    by 0x54B2654: axis2_http_worker_process_request (http_worker.c:261)
==13250==    by 0x55CA2BF: axis2_svr_thread_worker_func (http_svr_thread.c:337)
==13250==    by 0x36F6B05FBB: start_thread (in /lib64/libpthread-2.4.so)
==13250==    by 0x36F64B8CED: clone (in /lib64/libc-2.4.so)
==13250==
==13250==
==13250== 44 bytes in 1 blocks are definitely lost in loss record 21 of 131
==13250==    at 0x4905930: malloc (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==13250==    by 0x4C4BBDC: axis2_url_to_external_form (url.c:345)
==13250==    by 0x54B2667: axis2_http_worker_process_request (http_worker.c:265)
==13250==    by 0x55CA2BF: axis2_svr_thread_worker_func (http_svr_thread.c:337)
==13250==    by 0x36F6B05FBB: start_thread (in /lib64/libpthread-2.4.so)
==13250==    by 0x36F64B8CED: clone (in /lib64/libc-2.4.so)
==13250==
==13250==
==13250== 80 (32 direct, 48 indirect) bytes in 1 blocks are definitely lost in loss record
36 of 131
==13250==    at 0x4905930: malloc (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==13250==    by 0x4C4A710: axis2_property_create (property.c:71)
==13250==    by 0x4C4A918: axis2_property_clone (property.c:247)
==13250==    by 0x548CA8A: axis2_engine_create_fault_msg_ctx (engine.c:672)
==13250==    by 0x54B2B7A: axis2_http_worker_process_request (http_worker.c:366)
==13250==    by 0x55CA2BF: axis2_svr_thread_worker_func (http_svr_thread.c:337)
==13250==    by 0x36F6B05FBB: start_thread (in /lib64/libpthread-2.4.so)
==13250==    by 0x36F64B8CED: clone (in /lib64/libc-2.4.so)
==13250==
==13250==
==13250== 160 (40 direct, 120 indirect) bytes in 1 blocks are definitely lost in loss record
56 of 131
==13250==    at 0x4905930: malloc (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==13250==    by 0x54B6C3A: axis2_http_status_line_create (http_status_line.c:90)
==13250==    by 0x54B2BC7: axis2_http_worker_process_request (http_worker.c:380)
==13250==    by 0x55CA2BF: axis2_svr_thread_worker_func (http_svr_thread.c:337)
==13250==    by 0x36F6B05FBB: start_thread (in /lib64/libpthread-2.4.so)
==13250==    by 0x36F64B8CED: clone (in /lib64/libc-2.4.so)
==13250==
==13250==
==13250== 128 (16 direct, 112 indirect) bytes in 1 blocks are definitely lost in loss record
63 of 131
==13250==    at 0x4905930: malloc (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==13250==    by 0x548B821: axis2_engine_create (engine.c:145)
==13250==    by 0x54B2B5F: axis2_http_worker_process_request (http_worker.c:358)
==13250==    by 0x55CA2BF: axis2_svr_thread_worker_func (http_svr_thread.c:337)
==13250==    by 0x36F6B05FBB: start_thread (in /lib64/libpthread-2.4.so)
==13250==    by 0x36F64B8CED: clone (in /lib64/libc-2.4.so)
==13250==
==13250==
==13250== 272 bytes in 1 blocks are possibly lost in loss record 80 of 131
==13250==    at 0x4904BBE: calloc (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==13250==    by 0x36F570F44D: allocate_dtv (in /lib64/ld-2.4.so)
==13250==    by 0x36F570F4E4: _dl_allocate_tls (in /lib64/ld-2.4.so)
==13250==    by 0x36F6B0676D: pthread_create@@GLIBC_2.2.5 (in /lib64/libpthread-2.4.so)
==13250==    by 0x4C4F229: axis2_thread_create (thread_unix.c:120)
==13250==    by 0x55CA530: axis2_http_svr_thread_run (http_svr_thread.c:224)
==13250==    by 0x55CA9A7: axis2_http_server_start (http_server.c:235)
==13250==    by 0x4014AA: main (http_server_main.c:176)
==13250==
==13250==
==13250== 6,419,252 (608 direct, 6,418,644 indirect) bytes in 2 blocks are definitely lost
in loss record 93 of 131
==13250==    at 0x4905930: malloc (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==13250==    by 0x54A5B0B: axis2_msg_ctx_create (msg_ctx.c:677)
==13250==    by 0x54B25D3: axis2_http_worker_process_request (http_worker.c:245)
==13250==    by 0x55CA2BF: axis2_svr_thread_worker_func (http_svr_thread.c:337)
==13250==    by 0x36F6B05FBB: start_thread (in /lib64/libpthread-2.4.so)
==13250==    by 0x36F64B8CED: clone (in /lib64/libc-2.4.so)
==13250==
==13250== LEAK SUMMARY:
==13250==    definitely lost: 1,249 bytes in 10 blocks.
==13250==    indirectly lost: 6,645,729 bytes in 110,196 blocks.
==13250==      possibly lost: 272 bytes in 1 blocks.
==13250==    still reachable: 10,346 bytes in 255 blocks.
==13250==         suppressed: 0 bytes in 0 blocks.
==13250== Reachable blocks (those to which a pointer was found) are not shown.
==13250== To see them, rerun with: --show-reachable=yes

> memory leaks
> ------------
>
>                 Key: AXIS2C-399
>                 URL: http://issues.apache.org/jira/browse/AXIS2C-399
>             Project: Axis2-C
>          Issue Type: Bug
>    Affects Versions: Current (Nightly)
>         Environment: linux simple http server
>            Reporter: Marc Giger
>         Assigned To: Samisa Abeysinghe
>             Fix For: 0.96
>
>
> I see massive memory leaks with the Simple Axis2 HTTP Server.
> Because I can't test it with mod_axis2 I can only report it with the simple http server.
> Here are two valgrind outputs:
> The first one is with a shoot to the sample echo service:
> Started Simple Axis2 HTTP Server ...
> ==19904==
> ==19904== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 45 from
> 1) ==19904== malloc/free: in use at exit: 71,000 bytes in 1,038 blocks.
> ==19904== malloc/free: 15,119 allocs, 14,081 frees, 1,513,871 bytes
> allocated. ==19904== For counts of detected errors, rerun with: -v
> ==19904== searching for pointers to 1,038 not-freed blocks.
> ==19904== checked 8,697,064 bytes.
> ==19904==
> ==19904== LEAK SUMMARY:
> ==19904==    definitely lost: 70,309 bytes in 1,023 blocks.
> ==19904==      possibly lost: 136 bytes in 1 blocks.
> ==19904==    still reachable: 555 bytes in 14 blocks.
> ==19904==         suppressed: 0 bytes in 0 blocks.
> ==19904== Use --leak-check=full to see details of leaked memory.
> This second one is with a service built with the skeleton generator and
> no data binding but just XML in/out:
> Started Simple Axis2 HTTP Server ...
> ==13034==
> ==13034== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 46 from
> 1) ==13034== malloc/free: in use at exit: 200,214 bytes in 1,025 blocks.
> ==13034== malloc/free: 24,826 allocs, 23,801 frees, 2,676,022 bytes
> allocated. ==13034== For counts of detected errors, rerun with: -v
> ==13034== searching for pointers to 1,025 not-freed blocks.
> ==13034== checked 8,697,064 bytes.
> ==13034==
> ==13034== LEAK SUMMARY:
> ==13034==    definitely lost: 199,523 bytes in 1,010 blocks.
> ==13034==      possibly lost: 136 bytes in 1 blocks.
> ==13034==    still reachable: 555 bytes in 14 blocks.
> ==13034==         suppressed: 0 bytes in 0 blocks.
> ==13034== Use --leak-check=full to see details of leaked memory.
> My service function looks like the following:
> axiom_node_t* axis2_skel_TestService_Test (const axis2_env_t *env,
> 					      axiom_node_t* param0 )
> {
> 	return param0;
> }
> In this case i sent a document with about 34KB in size.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-c-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-c-dev-help@ws.apache.org


Mime
View raw message