axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Samisa Abeysinghe <sam...@wso2.com>
Subject Re: Segmentation fault when calling webservice
Date Thu, 14 Jun 2007 06:13:31 GMT
Hi Again,
    I did not see the code pasted at the end of the email, when I 
replied last time.
    Going through the code, it does not seem to have a problem.
    How did you compile the code? Could you please send the compiler 
commands that you used?

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


Mime
View raw message