axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dimuthu Gamage" <dimut...@gmail.com>
Subject Re: Client crashed while recieving response
Date Thu, 27 Sep 2007 04:52:41 GMT
Hi Sathya,

Since your service is running fine, the error should be in the deserialize
logic. And there were some bugs in the deserialize logic. But I think in the
latest axis2/java source svn, these bugs are fixed.  (At least current test
cases are working fine)

And AFIK the second problem (The server crash) was also  a known one, not
keeping copy of strings inside adb objects. That is also fixed in the latest
svn.

Thanks
Dimuthu

On 9/25/07, Sathya Raghunathan <pappu.raghunathan@gmail.com> wrote:
>
> Hi Dimuthu,
>
> I am forwarding this mail, because there was a failure in delivery last
> time.
>
> Thanks for the explanation. I understood the concept behind recreating an
> adb object at the client side. The only thing is, when i access the output
> message from the test client code, the client crashes
>
> I checked with the tcpmon utility.  From the tcpmon, I am able to see the
> input message value and the output message field's values in the xml format.
> I have also attached the sample of the tcpmon.log.
>
> So, i believe that my service is working. But why am i not able to print
> the value in the test client code?
> Issue No 1:
>
> In my test client code (attached parse_client.c)
> I am printing the value of a field in output message as below.
> printf ("The address =
> %u\n",adb_pInterchange_get_pInterchange(parse_res,env)); This printf gives
> address as 0.
>
> And the client code crashed at the next printf because this address is  0
> and i am dereferencing it.
> printf("The internal intref number = %u\n",
> adb_INTERCHANGE_get_internal_intref_no(adb_pInterchange_get_pInterchange(parse_res,env),env));
> // Crashed here
>
> and the gdb output is below. If you can see _INTERCHANGE=0x0. It is
> strange.
> 0x000000000041257f in adb_INTERCHANGE_get_internal_intref_no
> (_INTERCHANGE=0x0, env=0x698340) at adb_INTERCHANGE.c:1811
> 1811                    return _INTERCHANGE-> attrib_internal_intref_no;
> (gdb) where
> #0  0x000000000041257f in adb_INTERCHANGE_get_internal_intref_no
> (_INTERCHANGE=0x0, env=0x698340) at adb_INTERCHANGE.c:1811
> #1  0x000000000045b9f3 in main (argc=1, argv=0x7fff89068888) at
> parse_client.c:47
>
> Issue No 2:
>
> The server still runs at this point. Now the second time i run the client,
> the server crashes. The gdb output for this is
>
> 0x000000313da77180 in strlen () from /lib64/libc.so.6
> (gdb) where
> #0  0x000000313da77180 in strlen () from /lib64/libc.so.6
> #1  0x00002aaaaaf14c13 in *axutil_strlen *(s=0x60 <Address 0x60 out of
> bounds>) at string.c:475
> #2  0x00002aaaac0a83cf in *adb_INTERCHANGE_serialize*(_INTERCHANGE=0x71edb0, env=0x7112b0,
parent=0x71f260, has_parent=1)
>     at adb_INTERCHANGE.c:1379
> #3  0x00002aaaac0edd81 in adb_pInterchange_serialize
> (_pInterchange=0x71ecf0, env=0x7112b0, parent=0x71b390, has_parent=0)
>     at adb_pInterchange.c:282
> #4  0x00002aaaac0f43de in axis2_svc_skel_ParseMessage_invoke
> (svc_skeleton=0x71c880, env=0x7112b0, content_node=0x71ac30,
>     msg_ctx=0x71b220) at axis2_svc_skel_ParseMessage.c:159
> #5  0x00002aaaab37e337 in
> axis2_raw_xml_in_out_msg_recv_invoke_business_logic_sync (msg_recv=<value
> optimized out>, env=0x7112b0,
>     msg_ctx=0x71df40, new_msg_ctx=0x71b220) at
> raw_xml_in_out_msg_recv.c:209
> #6  0x00002aaaab37e001 in axis2_msg_recv_receive_impl (msg_recv=0x6f5e20,
> env=0x7112b0, msg_ctx=0x71df40,
>     callback_recv_param=<value optimized out>) at msg_recv.c:304
> #7  0x00002aaaab3770f5 in axis2_engine_receive (engine=0x71aab0,
> env=0x7112b0, msg_ctx=0x71df40) at engine.c:288
> #8  0x00002aaaaaab87af in
> axis2_http_transport_utils_process_http_post_request (env=0x7112b0,
> msg_ctx=0x71df40,
>     in_stream=<value optimized out>, out_stream=<value optimized out>,
> content_type=0x71c6c0 "text/xml;charset=UTF-8",
>     content_length=<value optimized out>, soap_action_header=0x712d10,
>     request_uri=0x71e0b0 " http://127.0.0.1:9090/axis2/services/parseMessage
> <http://127.0.0.1:9090/axis2/services/parseMessage>") at
> http_transport_utils.c:485
> #9  0x00002aaaaaab690a in axis2_http_worker_process_request
> (http_worker=0x712180, env=0x7112b0, svr_conn=0x71c9c0,
>     simple_request=0x71b650) at http_worker.c:299
> #10 0x00002aaaab7dbeae in axis2_svr_thread_worker_func (thd=0x71c970,
> data=0x71c990) at http_svr_thread.c:256
> #11 0x000000313ea061c5 in start_thread () from /lib64/libpthread.so.0
> #12 0x000000313dad062d in clone () from /lib64/libc.so.6
>
> Let me know if you need any further information from me.
>
> Thanks
> Sathya
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-c-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-c-user-help@ws.apache.org
>
>

Mime
View raw message