I've looked twice on my svc_skeleton_ops_var it seems ok, but I've found how to reproduce the bug. It's a linker problem.
If I take the echo example and I try to compile it with an external libs (-l option of gcc) even if I dont modify the echo service code, the server crashes. My LD_LIBRARY_PATH seems ok so, I've tried to put a link to my lib in /usr/lib, it crashes again. It seems that there's a problem in the axis lib loader. Regards, JL > 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 >> >> [EMAIL PROTECTED] 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 >>> >>> >>>> [EMAIL PROTECTED] 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: [EMAIL PROTECTED] >>>>>>> For additional commands, e-mail: [EMAIL PROTECTED] >>>>>>> >>>>>>> >>>>>> -- >>>>>> Samisa Abeysinghe : http://www.wso2.org/ (WSO2 Oxygen Tank - Web >>>>>> Services >>>>>> Developers' Portal) >>>>>> >>>>>> >>>>>> --------------------------------------------------------------------- >>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>>>>> For additional commands, e-mail: [EMAIL PROTECTED] >>>>>> >>>>>> >>>>>> >>>>>> >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>>>> For additional commands, e-mail: [EMAIL PROTECTED] >>>>> >>>>> >>>>> >>>>> >>>> -- >>>> Samisa Abeysinghe : http://www.wso2.org/ (WSO2 Oxygen Tank - Web >>>> Services >>>> Developers' Portal) >>>> >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>>> For additional commands, e-mail: [EMAIL PROTECTED] >>>> >>>> >>>> >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> For additional commands, e-mail: [EMAIL PROTECTED] >>> >>> >> >> >> -- >> ------------------------------------------------------------------------ >> *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: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] > > > -- > Samisa Abeysinghe : http://www.bloglines.com/blog/samisa > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
