[ 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
