axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Abby Thompson <Abby.Thomp...@dreamworks.com>
Subject Re: core dumping when pulling external library into service
Date Wed, 14 Nov 2007 23:23:05 GMT
In case anyone else sees this problem... I found the fix by digging 
deeper into the service via gdb.  It was missing symbols in my .so. 

It would be nice if the server would return the dlerrors instead of 
failing silently! 

Breakpoint 2, axutil_class_loader_load_lib (env=0x8e79830, 
dll_desc=0x8e28b68)
    at class_loader.c:150
150         if (! dl_handler)
(gdb) print (char *) dlerror()
$6 = 0x8e829f8 "/usr/home/athompson/axis_build_32/lib/libmsd.so: 
undefined symbol: __gxx_personality_v0"


Abby Thompson wrote:

> Hi Axis2c user list,
>
> It looks like I'm having the same problem that was described here...
>
> http://mail-archives.apache.org/mod_mbox/ws-axis-c-user/200706.mbox/%3c46687CDD.2010705@progexia.net%3e

> <http://mail-archives.apache.org/mod_mbox/ws-axis-c-user/200706.mbox/%3c46687CDD.2010705@progexia.net%3e>

>
>
> But even though the .so is in my services folder, I'm still having 
> problems.
>
> I'm using Axis2c 1.0.0, 32 bit (built from source), Redhat WS4.
>
> I took the sample hello program described in the axis2c docs and tried 
> to include my own library.  I created a .so out of the .o files named 
> libmsd.so and placed it with the rest of the  axis2c libs.  I also 
> copied the .h file in the include directory.  I then compile the 
> service this way...
>
> gcc -shared hello_svc.c -olibhello.so 
> -I$AXIS2C_HOME/include/axis2-1.0/ -L$AXIS2C_HOME/lib -laxis2 -lmsd
>
> I then drop my newly built libhello.so into the services/hello folder, 
> as instructed.
> Below is my hello_svc.c include line section...
>
> #include <axis2_svc_skeleton.h>
> #include <axutil_log_default.h>
> #include <axutil_error_default.h>
> #include <axutil_array_list.h>
> #include <axiom_text.h>
> #include <axiom_node.h>
> #include <axiom_element.h>
> #include <stdio.h>
> //MY OWN LIB MSD.
> #include "msd.h"
>
> It compiles fine, but when I attempt to run the hello client, the 
> server seg faults.  If I  remove all reference to my own msd file and 
> recompile, the service runs without any problem.  I'm seeing this 
> error on the server side in gdb (it's probably breaking in the init 
> section because this is where I first attempt to call my external lib 
> (msd))...
>
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread -1208796256 (LWP 12310)]
> 0x00d15f43 in axis2_msg_recv_make_new_svc_obj (msg_recv=0x996f450,
>   env=0x99bf830, msg_ctx=0x99c0270) at msg_recv.c:157
> 157         AXIS2_SVC_SKELETON_INIT((axis2_svc_skeleton_t 
> *)impl_class, env);
> (gdb) bt
> #0  0x00d15f43 in axis2_msg_recv_make_new_svc_obj (msg_recv=0x996f450,
>   env=0x99bf830, msg_ctx=0x99c0270) at msg_recv.c:157
> #1  0x00d15fe3 in axis2_msg_recv_get_impl_obj (msg_recv=0x996f450,
>   env=0x99bf830, msg_ctx=0x99c0270) at msg_recv.c:184
> #2  0x00d16596 in 
> axis2_raw_xml_in_out_msg_recv_invoke_business_logic_sync (
>   msg_recv=0x996f450, env=0x99bf830, msg_ctx=0x99c0270,
>   new_msg_ctx=0x99c7628) at raw_xml_in_out_msg_recv.c:93
> #3  0x00d161ea in axis2_msg_recv_invoke_business_logic 
> (msg_recv=0x99bf830,
>   env=0x99bf830, in_msg_ctx=0x99c0270, out_msg_ctx=0x99c7628)
>   at msg_recv.c:372
> #4  0x00d162a7 in axis2_msg_recv_receive_impl (msg_recv=0x996f450,
>   env=0x99bf830, msg_ctx=0x99c0270, callback_recv_param=0x0)
>   at msg_recv.c:304
> #5  0x00d16466 in axis2_msg_recv_receive (msg_recv=0x99bf830, 
> env=0x99bf830,
>   msg_ctx=0x99c0270, callback_recv_param=0x0) at msg_recv.c:407
> #6  0x00d0f497 in axis2_engine_receive (engine=0x99c71a0, env=0x99bf830,
>   msg_ctx=0x99c0270) at engine.c:288
> #7  0x00d7f02c in axis2_http_transport_utils_process_http_post_request (
>   env=0x99bf830, msg_ctx=0x99c0270, in_stream=0x99bf858,
>   out_stream=0x99bfa38,
>   content_type=0x9952fc0 "application/soap+xml;charset=UTF-8",
>   content_length=183, soap_action_header=0x0,
>   request_uri=0x99c03d8 "http://127.0.0.1:9090/axis2/services/hello 
> <http://127.0.0.1:9090/axis2/services/hello>")
> ---Type <return> to continue, or q <return> to quit---
>   at http_transport_utils.c:485
> #8  0x00d7d991 in axis2_http_worker_process_request 
> (http_worker=0x99bf018,
>   env=0x99bf830, svr_conn=0x99bf848, simple_request=0x99bf8d8)
>   at http_worker.c:299
> #9  0x00aa7dc8 in axis2_svr_thread_worker_func (thd=0x99bf780, 
> data=0x99bf038)
>   at http_svr_thread.c:256
> #10 0x00a53068 in dummy_worker (opaque=0x99bf830) at thread_unix.c:85
> #11 0x001393cc in start_thread () from /lib/tls/libpthread.so.0
> #12 0x0021e3ce in clone () from /lib/tls/libc.so.6
>
> This is my service.xml file for the hello service...
>
> <service name="hello">
>  <parameter name="ServiceClass" locked="xsd:false">hello</parameter>
>  <description>
>       Quick start guide hello service sample.
>  </description>
>  <operation name="greet"/>
> </service>
>
>
> Any help on this would be great!  I've been stuck on this for a while 
> now...
>
> -abby
>
>
> ---------------------------------------------------------------------
> 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


Mime
View raw message