You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Tamás Martinec <ma...@gmail.com> on 2009/09/24 23:14:27 UTC

crash with arbitrary rest post data

Hi,

What is the situation with this

http://www.mail-archive.com/axis-c-dev@ws.apache.org/msg16788.html

issue?

I am trying to create a service that receives arbitrary strings as HTTP POST
data.

The services I created crash very much like echo in the above link.

The echo sample crashes if the post data is empty, or content is not
according to the

text=sometext

pattern.

Here are the messages:

SENDING DATA..
/* sending time = 23:57:14*/
/* message uuid = eb01af8d-4d6b-45a3-8bbf-2f80f43acbd2*/
---------------------
POST /axis2/services/echo/echoString HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,
application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint,
*/*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0
Content-Length: 6
Host: LOCALHOST
Content-Type: application/x-www-form-urlencoded

text




RETRIEVING DATA..
/* retrieving time = 23:57:14*/
/* time throughput = 0 sec(s)*/
---------------------
HTTP/1.0 500 Internal Server Error
Date: Thu Sep 24 23:57:14 2009 GMT
Server: Axis2C/1.6.0 (Simple Axis2 HTTP Server)
Content-Type: text/html
Content-Length: 210

<html><head><title>500 Internal Server
Error</title></head><body><h2>Internal Server Error</h2><p>The server
encountered an unexpected condition which prevented it from fulfilling the
request.</p></body></html>


And the call stack for the crash:

    axis2_engine.dll!axis2_http_status_line_free(axis2_http_status_line *
status_line=0xdddddddd, const axutil_env * env=0x006dd498)  Line 143 + 0x3
bytes    C

axis2_engine.dll!axis2_http_simple_response_free(axis2_http_simple_response
* simple_response=0x006df500, const axutil_env * env=0x006dd498)  Line
117    C

axis2_engine.dll!axis2_http_out_transport_info_impl_free(axis2_http_out_transport_info
* http_out_transport_info=0x006de700, const axutil_env * env=0x006dd498)
Line 158    C

axis2_engine.dll!axis2_http_out_transport_info_free(axis2_http_out_transport_info
* http_out_transport_info=0x006de700, const axutil_env * env=0x006dd498)
Line 206 + 0x12 bytes    C

axis2_engine.dll!axis2_out_transport_info_impl_free(axis2_out_transport_info
* out_transport_info=0x006de700, const axutil_env * env=0x006dd498)  Line
61    C
     axis2_engine.dll!axis2_msg_ctx_free(axis2_msg_ctx * msg_ctx=0x006dfa38,
const axutil_env * env=0x006dd498)  Line 444 + 0x20 bytes    C
     axis2_engine.dll!axis2_http_worker_process_request(axis2_http_worker *
http_worker=0x006dc350, const axutil_env * env=0x006dd498,
axis2_simple_http_svr_conn * svr_conn=0x006dd4e0, axis2_http_simple_request
* simple_request=0x006e0b18)  Line 2009    C
     axis2_http_receiver.dll!axis2_svr_thread_worker_func(axutil_thread_t *
thd=0x006df870, void * data=0x006dc608)  Line 260 + 0x18 bytes    C
     axutil.dll!dummy_worker(void * opaque=0x006df870)  Line 88 + 0x15
bytes    C
     kernel32.dll!7c80b729()
     [Frames below may be incorrect and/or missing, no symbols loaded for
kernel32.dll]

Seems like axis2_http_status_line_free wants to free something already
freed..

And this is the end of the log:

[Thu Sep 24 23:57:14 2009] [debug]
c:\axis2c-repo\src\core\transport\http\common\http_worker.c(200) Client HTTP
version HTTP/1.0
[Thu Sep 24 23:57:14 2009] [debug]
c:\axis2c-repo\src\core\engine\rest_disp.c(114) Checking for service using
target endpoint address :
http://127.0.0.1:9090/axis2/services/echo/echoString
[Thu Sep 24 23:57:14 2009] [debug]
c:\axis2c-repo\src\core\engine\rest_disp.c(135) Service found using target
endpoint address
[Thu Sep 24 23:57:14 2009] [debug]
c:\axis2c-repo\src\core\util\core_utils.c(772) Checking for operation using
REST HTTP Location fragment : /echoString
[Thu Sep 24 23:57:14 2009] [debug]
c:\axis2c-repo\src\core\util\core_utils.c(834) Operation found using target
endpoint uri fragment
[Thu Sep 24 23:57:14 2009] [debug]
c:\axis2c-repo\src\core\engine\phase.c(210) Invoke the handler
request_uri_based_dispatcher within the phase Transport
[Thu Sep 24 23:57:14 2009] [debug]
c:\axis2c-repo\src\core\engine\phase.c(210) Invoke the handler
AddressingInHandler within the phase Transport
[Thu Sep 24 23:57:14 2009] [info]  Starting addressing in handler
[Thu Sep 24 23:57:14 2009] [info]
c:\axis2c-repo\src\modules\mod_addr\addr_in_handler.c
[Thu Sep 24 23:57:14 2009] [debug]
c:\axis2c-repo\src\core\engine\phase.c(210) Invoke the handler
addressing_based_dispatcher within the phase Transport
[Thu Sep 24 23:57:14 2009] [debug]
c:\axis2c-repo\src\core\engine\phase.c(210) Invoke the handler
rest_dispatcher within the phase Dispatch
[Thu Sep 24 23:57:14 2009] [debug]
c:\axis2c-repo\src\core\engine\phase.c(210) Invoke the handler
soap_message_body_based_dispatcher within the phase Dispatch
[Thu Sep 24 23:57:14 2009] [debug]
c:\axis2c-repo\src\core\engine\phase.c(210) Invoke the handler
soap_action_based_dispatcher within the phase Dispatch
[Thu Sep 24 23:57:14 2009] [debug]
c:\axis2c-repo\src\core\engine\phase.c(210) Invoke the handler
dispatch_post_conditions_evaluator within the phase PostDispatch
[Thu Sep 24 23:57:14 2009] [debug]
c:\axis2c-repo\src\core\engine\phase.c(210) Invoke the handler
context_handler within the phase PostDispatch
[Thu Sep 24 23:57:14 2009] [debug]
c:\axis2c-repo\src\core\receivers\raw_xml_in_out_msg_recv.c(382)
fault_detail:<Detail></Detail>

I used the 1.6.0 version on win XP. I tried the binary distribution first
and then compiled it from source as well to see the details.

By the way, is the Content-Type relevant in this case? (The link above had
the content type right, text/xml)

I have seen some related bugs in jira but not exactly this one..

br,

Tamas