axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Samisa Abeysinghe (JIRA)" <j...@apache.org>
Subject [jira] Created: (AXIS2C-19) There is something wrong in the ops hash map in service
Date Thu, 19 Jan 2006 03:27:42 GMT
There is something wrong in the ops hash map in service
-------------------------------------------------------

         Key: AXIS2C-19
         URL: http://issues.apache.org/jira/browse/AXIS2C-19
     Project: Axis2-C
        Type: Bug
  Components: core/description  
    Reporter: Samisa Abeysinghe
    Priority: Critical
     Fix For: M0.3


The following piece of code crashes unexpectedly: Note that ops count is one, but it tries
to read a second op.

for (hi = axis2_hash_first (svc_map, &env);
             NULL != hi; hi = axis2_hash_next (&env, hi))
        {
             axis2_hash_t *ops= NULL;

             axis2_hash_this(hi, NULL, NULL, &service);

             ops = AXIS2_SVC_GET_OPS(((axis2_svc_t *)service), &env);
             if(ops)
             {
                printf("ops count = %d\n", axis2_hash_count(ops));

                axis2_hash_index_t *hi2 = NULL;
                void *op = NULL;
                axis2_char_t *oname = NULL;
                int count = 0;

                for(hi2 = axis2_hash_first(ops, &env); hi2; axis2_hash_next(&env,
hi2))
                {
                    printf ("count = %d \n", count++);
                    if (!hi2)
                        break;
                    axis2_hash_this(hi2, NULL, NULL, &op);
                    if (op)
                    {
                        axis2_qname_t *qname = NULL;
                        qname = AXIS2_OP_GET_QNAME((axis2_op_t *)op, &env);
                        oname = AXIS2_QNAME_GET_LOCALPART(qname, &env);
                        printf("op name = %s\n", oname);
                    }
                }
             }
             else
                printf("ops count = zero\n");
        }


Output & gdb trace:

message receiver loaded successfully
stat:1
No files in this directory:/home/samisa/axis2/c/deploy/modules/
fname:libecho.so
dep_engine:size:1
type:0
file_name:libecho.so
svcs_xml:/home/samisa/axis2/c/deploy/services/services.xml
root_element_name:service
name*:libecho.so
svc_name:echo
message receiver loaded successfully
svc_name:echo
svc_grp_name:echo
respos listner init status:1
svc_map count = 1
ops count = 1
count = 0
op name = echo
count = 1

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1208227360 (LWP 8228)]
0x00d1b3f4 in axis2_hash_this (hi=0x869e510, key=0x0, klen=0x0, val=0xbf9db290) at hash.c:166
166             *val = (void *) hi->this->val;
(gdb) bt
#0  0x00d1b3f4 in axis2_hash_this (hi=0x869e510, key=0x0, klen=0x0, val=0xbf9db290) at hash.c:166
#1  0x08048bab in axis2_test_dep_engine_load () at test_deployment.c:70
#2  0x08048eed in main () at test_deployment.c:218
(gdb)  

Note that ops count is one, but it tries to read a second op.
                               

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message