axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Samisa Abeysinghe <samisa.abeysin...@gmail.com>
Subject Re: Segmentation fault when calling webservice
Date Mon, 11 Jun 2007 03:23:30 GMT
Looking at the trace, most probably, this is to do with the init method 
of your service implementation.
Could you please check the code where the svc_skeleton_ops are 
initialized. It would help to see either the code or the WSDL that you 
are using, if you have no concerns sending it to the list.

Thanks,
Samisa...

Jean-Louis LESIEUR wrote:
> Hello,
>
> Back to home !
>
> Here's the backtrace of my axis_http_server
>
> Program terminated with signal 11, Segmentation fault.
> #0  0xb7e646a3 in axis2_msg_recv_make_new_svc_obj (msg_recv=0x80e4c70, 
> env=0x8126fd8, msg_ctx=0x8127a18) at msg_recv.c:157
> 157         AXIS2_SVC_SKELETON_INIT((axis2_svc_skeleton_t 
> *)impl_class, env);
> (gdb) backtrace
> #0  0xb7e646a3 in axis2_msg_recv_make_new_svc_obj (msg_recv=0x80e4c70, 
> env=0x8126fd8, msg_ctx=0x8127a18) at msg_recv.c:157
> #1  0xb7e647b4 in axis2_msg_recv_get_impl_obj (msg_recv=0x80e4c70, 
> env=0x8126fd8, msg_ctx=0x8127a18) at msg_recv.c:184
> #2  0xb7e650f0 in 
> axis2_raw_xml_in_out_msg_recv_invoke_business_logic_sync 
> (msg_recv=0x80e4c70, env=0x8126fd8, msg_ctx=0x8127a18, 
> new_msg_ctx=0x812f0b8)
>     at raw_xml_in_out_msg_recv.c:93
> #3  0xb7e64e2d in axis2_msg_recv_invoke_business_logic 
> (msg_recv=0x80e4c70, env=0x8126fd8, in_msg_ctx=0x8127a18, 
> out_msg_ctx=0x812f0b8) at msg_recv.c:372
> #4  0xb7e64c35 in axis2_msg_recv_receive_impl (msg_recv=0x80e4c70, 
> env=0x8126fd8, msg_ctx=0x8127a18, callback_recv_param=0x0) at 
> msg_recv.c:304
> #5  0xb7e64e89 in axis2_msg_recv_receive (msg_recv=0x80e4c70, 
> env=0x8126fd8, msg_ctx=0x8127a18, callback_recv_param=0x0) at 
> msg_recv.c:407
> #6  0xb7e59bae in axis2_engine_receive (engine=0x812ead8, 
> env=0x8126fd8, msg_ctx=0x8127a18) at engine.c:288
> #7  0xb7f12ec6 in axis2_http_transport_utils_process_http_post_request 
> (env=0x8126fd8, msg_ctx=0x8127a18, in_stream=0x8127000, 
> out_stream=0x8127030,
>     content_type=0x80c80b0 "application/soap+xml;charset=UTF-8", 
> content_length=262, soap_action_header=0x0, request_uri=0x8127be0 
> "http://127.0.0.1:9090/axis2/services/majcsp")
>     at http_transport_utils.c:485
> #8  0xb7f11686 in axis2_http_worker_process_request 
> (http_worker=0x81267f8, env=0x8126fd8, svr_conn=0x8126ff0, 
> simple_request=0x81270b0) at http_worker.c:299
> #9  0xb7e1403a in axis2_svr_thread_worker_func (thd=0x8126f28, 
> data=0x8126818) at http_svr_thread.c:256
> #10 0xb7ec241d in dummy_worker (opaque=0x8126f28) at thread_unix.c:85
> #11 0xb7cbb31b in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
> #12 0xb7c2c57e in clone () from /lib/tls/i686/cmov/libc.so.6
>
> It seem there's a problem with my skeleton. But I dont find what is 
> wrong in my source ... Here's my service :
>
>
> #include <axiom_xml_writer.h>
> #include <stdio.h>
> #include <axis2_svc_skeleton.h>
> #include <axutil_array_list.h>
> #include <axis2_msg_ctx.h>
> #include <stdio.h>
> #include <axis2_svc_skeleton.h>
> #include <axutil_log_default.h>
> #include <axutil_error_default.h>
> #include <axiom_text.h>
> #include <axiom_node.h>
> #include <axiom_element.h>
> // THIS IS AN EXTERNAL .H WHERE YOU CAN FIND THE DECLARATION OF THE 
> FUNCTION ws_majcsp_update
> #include "WSWrapper.h"
>
>
> axiom_node_t* AXIS2_CALL
> majcsp_invoke(axis2_svc_skeleton_t *svc_skeleton,
>         const axutil_env_t *env,
>         axiom_node_t *node,
>         axis2_msg_ctx_t *msg_ctx);
>
>
> int AXIS2_CALL
> majcsp_init(axis2_svc_skeleton_t *svc_skeleton,
>         const axutil_env_t *env);
>
> axiom_node_t* AXIS2_CALL
> majcsp_on_fault(axis2_svc_skeleton_t *svc_skeli,
>         const axutil_env_t *env, axiom_node_t *node);
>
>
> int AXIS2_CALL
> majcsp_free(axis2_svc_skeleton_t *svc_skeleton,
>         const axutil_env_t *env);
>
>
> static const axis2_svc_skeleton_ops_t majcsp_svc_skeleton_ops_var = {
>     majcsp_init,
>     majcsp_invoke,
>     majcsp_on_fault,
>     majcsp_free
> };
>
>
> int AXIS2_CALL
> majcsp_init(axis2_svc_skeleton_t *svc_skeleton,
>         const axutil_env_t *env)
> {
>     svc_skeleton->func_array = axutil_array_list_create(env, 0);
>     axutil_array_list_add(svc_skeleton->func_array, env, "greet");
>     return AXIS2_SUCCESS;
> }
>
> axiom_node_t* AXIS2_CALL
> majcsp_invoke(axis2_svc_skeleton_t *svc_skeleton,
>         const axutil_env_t *env,
>         axiom_node_t *node,
>         axis2_msg_ctx_t *msg_ctx)
> {
>     // NEVER DISPLAYED !       
>         printf("\n\nINVOKE\n\n");
>         // METHOD IN ANOTHER .SO
>   return ws_majcsp_update(env, node);
> }
>
>
> axiom_node_t* AXIS2_CALL
> majcsp_on_fault(axis2_svc_skeleton_t *svc_skeli,
>         const axutil_env_t *env, axiom_node_t *node)
> {
>     axiom_node_t *error_node = NULL;
>     axiom_node_t *text_node = NULL;
>     axiom_element_t *error_ele = NULL;
>    
>     error_ele = axiom_element_create(env, NULL, "EchoServiceError", 
> NULL,  &error_node);
>     axiom_element_set_text(error_ele, env, "Echo service failed ", 
> text_node);
>     return error_node;
> }
>
>
> int AXIS2_CALL
> majcsp_free(axis2_svc_skeleton_t *svc_skeleton,
>         const axutil_env_t *env)
> {
>
>     if (svc_skeleton->func_array)
>     {
>         axutil_array_list_free(svc_skeleton->func_array, env);
>         svc_skeleton->func_array = NULL;
>     }
>     if (svc_skeleton)
>     {
>         AXIS2_FREE(env->allocator, svc_skeleton);
>         svc_skeleton = NULL;
>     }
>
>     return AXIS2_SUCCESS;
> }
>
>
>
> AXIS2_EXPORT int
> axis2_remove_instance(axis2_svc_skeleton_t *inst,
>         const axutil_env_t *env)
> {
>     axis2_status_t status = AXIS2_FAILURE;
>     if (inst)
>     {
>         status = AXIS2_SVC_SKELETON_FREE(inst, env);
>     }
>     return status;
> }
>
> axis2_svc_skeleton_t *
> axis2_majcsp_create(const axutil_env_t *env)
> {
>     axis2_svc_skeleton_t *svc_skeleton = NULL;
>     svc_skeleton = (axis2_svc_skeleton_t*) AXIS2_MALLOC(env->allocator,
>             sizeof(axis2_svc_skeleton_t));
>     svc_skeleton->ops = &majcsp_svc_skeleton_ops_var;
>     svc_skeleton->func_array = NULL;
>     return svc_skeleton;
> }
>
> AXIS2_EXPORT int
> axis2_get_instance(axis2_svc_skeleton_t **inst,
>         const axutil_env_t *env)
> {
>     // NEVER DISPLAYED !!!
>     printf("***GET_INSTANCE");
>     *inst = axis2_majcsp_create(env);
>     if (!(*inst))
>     {
>         return AXIS2_FAILURE;
>     }
>     return AXIS2_SUCCESS;
> }
>
>
> And here's my service.xml
>
> $ cat /usr/local/axis2c/services/majcsp/services.xml
> <service name="majcsp">
>    <parameter name="ServiceClass" locked="xsd:false">majcsp</parameter>
>    <description>
>         Quick start guide hello service sample.
>    </description>
>    <operation name="greet"/>
> </service>
>
> Hope these infos can guide you !
>
> Thanks again for your help !
>
> Regards,
> JL
>
> jl.lesieur@progexia.net a écrit :
>> Thanks, my compilations flags in my ws are not in cause because the
>> backtrace not mention the .so of my webservice. To be more precise, the
>> get_instance of my ws is not executed (I've validated this by put a printf
>> in it, and he did not display nothing).
>>
>> If it can help I can compile axis with -g option, how can I do this ? (I
>> suppose it can be done with a ./configure option but if you can give me
>> the right option it help me).
>>
>> The service.xml is based on the echo one (I've only changed the name echo
>> by the name of my webservice).
>>
>> I'm now at work, so I'll can do a test this evening.
>>
>> Thanks again !
>> JL
>>
>>   
>>> jl.lesieur@progexia.net wrote:
>>>     
>>>> No pb,
>>>>
>>>> I've already posted an issue for this (perhaps it's a mistake ?)
>>>>
>>>>       
>>> No it is not a mistake. Raising a Jira is the preferred method.
>>>
>>> BTW, it looks like you have not included -g in your CFLAGS, please do so
>>> that the backtrace would include line numbers.
>>> Having a glance at the backtrace, it looks like there is something wrong
>>> in the service object creation. Could possibly be something wrong in the
>>> service implementation, or the configuration.
>>>
>>> Samisa...
>>>     
>>>> https://issues.apache.org/jira/browse/AXIS2C-612
>>>>
>>>> Here's the backtrace :
>>>>
>>>> #0 0xb7e62b87 in axis2_msg_recv_make_new_svc_obj () from
>>>> /home/jllesieur/SVNROOT/axis2c-bin-1.0.0-linux/lib/libaxis2_engine.so.0
>>>> #1 0xb7e62c98 in axis2_msg_recv_get_impl_obj () from
>>>> /home/jllesieur/SVNROOT/axis2c-bin-1.0.0-linux/lib/libaxis2_engine.so.0
>>>> #2 0xb7e635d4 in
>>>> axis2_raw_xml_in_out_msg_recv_invoke_business_logic_sync
>>>> () from
>>>> /home/jllesieur/SVNROOT/axis2c-bin-1.0.0-linux/lib/libaxis2_engine.so.0
>>>> #3 0xb7e63311 in axis2_msg_recv_invoke_business_logic () from
>>>> /home/jllesieur/SVNROOT/axis2c-bin-1.0.0-linux/lib/libaxis2_engine.so.0
>>>> #4 0xb7e63119 in axis2_msg_recv_receive_impl () from
>>>> /home/jllesieur/SVNROOT/axis2c-bin-1.0.0-linux/lib/libaxis2_engine.so.0
>>>> #5 0xb7e6336d in axis2_msg_recv_receive () from
>>>> /home/jllesieur/SVNROOT/axis2c-bin-1.0.0-linux/lib/libaxis2_engine.so.0
>>>> #6 0xb7e58092 in axis2_engine_receive () from
>>>> /home/jllesieur/SVNROOT/axis2c-bin-1.0.0-linux/lib/libaxis2_engine.so.0
>>>> #7 0xb7f0d5de in axis2_http_transport_utils_process_http_post_request ()
>>>> from
>>>> /home/jllesieur/SVNROOT/axis2c-bin-1.0.0-linux/lib/libaxis2_http_common.so.0
>>>> #8 0xb7f0bf20 in axis2_http_worker_process_request () from
>>>> /home/jllesieur/SVNROOT/axis2c-bin-1.0.0-linux/lib/libaxis2_http_common.so.0
>>>> #9 0xb7e140ca in axis2_svr_thread_worker_func () from
>>>> /home/jllesieur/SVNROOT/axis2c-bin-1.0.0-linux/lib/libaxis2_http_receiver.so.0
>>>> #10 0xb7ebf265 in dummy_worker () from
>>>> /home/jllesieur/SVNROOT/axis2c-bin-1.0.0-linux/lib/libaxutil.so.0
>>>> #11 0xb7cb931b in start_thread () from
>>>> /lib/tls/i686/cmov/libpthread.so.0
>>>> #12 0xb7c2957e in clone () from /lib/tls/i686/cmov/libc.so.6
>>>>
>>>>
>>>> Thanks a lot for your help !
>>>> Jean-Louis
>>>>
>>>>
>>>>       
>>>>> Is it possible for you to use gdb and send the back trace at the point
>>>>> it segfaults please? That would help us to understand where the exact
>>>>> problem is. It is hard to tell the problem form the log.
>>>>>
>>>>> Thanks,
>>>>> Samisa...
>>>>>
>>>>> Jean-Louis LESIEUR wrote:
>>>>>
>>>>>         
>>>>>> Hello,
>>>>>>
>>>>>> I have a problem when I deploy a service. I've build a simple service
>>>>>> based on the "echo" sample, except in the fact that this service
call
>>>>>> a function in other custom shared library.
>>>>>>
>>>>>> I'm on ubuntu linux 7.04 with axis 1.0.0.
>>>>>>
>>>>>> I've tried to compile my service with this command :
>>>>>>
>>>>>> gcc -shared -olibmajcsp.so -I$AXIS2C_HOME/include/axis2-1.0/
>>>>>> -L$AXIS2C_HOME/lib -laxis2  -L<here, my custom .so path> -l<here
my
>>>>>> lib> -I<here my include path> <here my service>
>>>>>>
>>>>>> I have no error in compilation.
>>>>>>
>>>>>> So I deploy the .so of this service and try to call him with echo
>>>>>> client sample axis_http_server crashes with a segmentation fault
...
>>>>>> Here's the result of execution of axis_http_server :
>>>>>>
>>>>>> $ sudo ./axis 2_http_server -l 5 -f /dev/stderr
>>>>>> Started Simple Axis2 HTTP Server ...
>>>>>> [Thu Jun  7 23:19:47 2007] [info]  Starting HTTP server thread
>>>>>> [Thu Jun  7 23:19:51 2007] [debug] http_worker.c(155) Client HTTP
>>>>>> version HTTP/1.1
>>>>>> [Thu Jun  7 23:19:51 2007] [debug] soap_builder.c(748) identified
soap
>>>>>> version is soap12
>>>>>> [Thu Jun  7 23:19:51 2007] [debug] engine.c(571) Invoking phase
>>>>>> Transport
>>>>>> [Thu Jun  7 23:19:51 2007] [debug] phase.c(195) Invoke the handler
>>>>>> request_uri_based_dispatcher within the phase Transport
>>>>>> [Thu Jun  7 23:19:51 2007] [debug] req_uri_disp.c(103) Checking for
>>>>>> service using target endpoint address :
>>>>>> http://127.0.0.1:9090/axis2/services/majcsp
>>>>>> [Thu Jun  7 23:19:51 2007] [debug] req_uri_disp.c(124) Service found
>>>>>> using target endpoint address
>>>>>> [Thu Jun  7 23:19:51 2007] [debug] engine.c(571) Invoking phase
>>>>>> PreDispatch
>>>>>> [Thu Jun  7 23:19:51 2007] [debug] phase.c(195) Invoke the handler
>>>>>> AddressingInHandler within the phase PreDispatch
>>>>>> [Thu Jun  7 23:19:51 2007] [info]  Starting addressing in handler
>>>>>> .........
>>>>>> [Thu Jun  7 23:19:51 2007] [info]  addr_in_handler.c
>>>>>> [Thu Jun  7 23:19:51 2007] [debug] engine.c(571) Invoking phase
>>>>>> Dispatch
>>>>>> [Thu Jun  7 23:19:51 2007] [debug] phase.c(195) Invoke the handler
>>>>>> soap_message_body_based_dispatcher within the phase Dispatch
>>>>>> [Thu Jun  7 23:19:51 2007] [debug] soap_body_disp.c(217) Checking
for
>>>>>> operation using SOAP message body's first child's local name :
>>>>>> echoString
>>>>>> [Thu Jun  7 23:19:51 2007] [debug] soap_body_disp.c(226) Operation
>>>>>> found using SOAP message body's first child's local name
>>>>>> [Thu Jun  7 23:19:51 2007] [debug] phase.c(195) Invoke the handler
>>>>>> addressing_based_dispatcher within the phase Dispatch
>>>>>> [Thu Jun  7 23:19:51 2007] [debug] phase.c(195) Invoke the handler
>>>>>> soap_action_based_dispatcher within the phase Dispatch
>>>>>> [Thu Jun  7 23:19:51 2007] [debug] engine.c(571) Invoking phase
>>>>>> PostDispatch
>>>>>> [Thu Jun  7 23:19:51 2007] [debug] phase.c(195) Invoke the handler
>>>>>> dispatch_post_conditions_evaluator within the phase PostDispatch
>>>>>> [Thu Jun  7 23:19:51 2007] [debug] phase.c(195) Invoke the handler
>>>>>> context_handler within the phase PostDispatch
>>>>>> Erreur de segmentation (core dumped)
>>>>>>
>>>>>> Does anybody have experienced this kind of problem ?
>>>>>>
>>>>>> Thanks for your help !
>>>>>>
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: axis-c-user-unsubscribe@ws.apache.org
>>>>>> For additional commands, e-mail: axis-c-user-help@ws.apache.org
>>>>>>
>>>>>>           
>>>>> --
>>>>> Samisa Abeysinghe : http://www.wso2.org/ (WSO2 Oxygen Tank - Web
>>>>> Services
>>>>> Developers' Portal)
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: axis-c-user-unsubscribe@ws.apache.org
>>>>> For additional commands, e-mail: axis-c-user-help@ws.apache.org
>>>>>
>>>>>
>>>>>
>>>>>         
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: axis-c-user-unsubscribe@ws.apache.org
>>>> For additional commands, e-mail: axis-c-user-help@ws.apache.org
>>>>
>>>>
>>>>
>>>>       
>>> --
>>> Samisa Abeysinghe : http://www.wso2.org/ (WSO2 Oxygen Tank - Web Services
>>> Developers' Portal)
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: axis-c-user-unsubscribe@ws.apache.org
>>> For additional commands, e-mail: axis-c-user-help@ws.apache.org
>>>
>>>
>>>     
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: axis-c-user-unsubscribe@ws.apache.org
>> For additional commands, e-mail: axis-c-user-help@ws.apache.org
>>
>>   
>
>
> -- 
> ------------------------------------------------------------------------
> *Progexia*
> Hôtel Technologique - B.P.100
> 45 Rue F. Joliot Curie
> Technopôle de Château-Gombert
> 13382 Marseille CEDEX 13 - FRANCE
>
> Téléphone : 04 91 11 88 19 / Fax : 04 91 11 88 01
> web : http://www.progexia.net
>
> ------------------------------------------------------------------------
> /
>
> "Ce courriel et les documents qui y sont attachés peuvent contenir des 
> informations confidentielles. Si vous n'êtes pas le destinataire 
> escompté, merci d'en informer l'expéditeur immédiatement et de 
> détruire ce courriel ainsi que tous les documents attachés de votre 
> système informatique. Toute divulgation, distribution ou copie du 
> présent courriel et des documents attachés sans autorisation préalable 
> de son émetteur est interdite."
>
> "This e-mail and any attached documents may contain confidential or 
> proprietary information. If you are not the intended recipient, please 
> advise the sender immediately and delete this e-mail and all attached 
> documents from your computer system. Any unauthorised disclosure, 
> distribution or copying hereof is prohibited."
>
> /
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-c-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-c-user-help@ws.apache.org


-- 
Samisa Abeysinghe : http://www.bloglines.com/blog/samisa


---------------------------------------------------------------------
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