axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jean-Louis LESIEUR <jl.lesi...@progexia.net>
Subject Re: Segmentation fault when calling webservice
Date Sat, 09 Jun 2007 13:21:41 GMT
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."

/

Mime
View raw message