IMPORTANT NOTICE:  As of 21 February, anything posted in this community WILL NOT BE MIGRATED to our new community site.   We have pulled all user information and data from this site and are now in an approximately week long process of importing users, roles, and data to our new site.  We are leaving this site open and active so you can post and hopefully get a response until the migration is complete.   Once complete, the URL  that currently takes you to this site will take you to our new site so your bookmarks will work as always.  Please read the information on a New Login Process

facing process crash issue for multiple simultaneous transacion.

Hi All,

I am facing a issue with Artix/C++ web service. We have one web service module that is written in C++.

Module simply receive a request and send to some other interface. and receive the response and send back to corresponding request.

When we are trying one request at a time, it is working fine.. we can say that it is working fine with sequential requests. 

But when we try multiple request simultaneously then core is coming..  the strange thing is that core is coming on differnet place every time and pointing to some artix like things when we try debug using dbx.

please see log below for multiple core debug using dbx tool.

x: warning: cannot demangle '__1c9uX__unnamed_9QdDQdDQdDKAdNHJ0IXIErrorMap2F6Mi_rnGIT_BusOFaultException__'












dbx: warning: cannot demangle '__1c9uX__unnamed_9QdDQdDQdDKn1zOJ06kSwrite_header_parts6FpknGIT_BusRWSDLBindingFacade_pkn0BbAWSDLBindingOperationFacade_rn0BPWritableMessage_rn0BQSoapHeaderWriter_bb_v_'

dbx: warning: cannot demangle '__1c9uX__unnamed_9QdDQdDQdDKn1zOJ06kbCget_security_must_understand6FpnJIT_ConfigNConfiguration__b_'

dbx: warning: cannot demangle '__1c9uX__unnamed_9QdDQdDQdDKn1zOJ06kbRget_security_client_inbound_must_understand6FpnJIT_ConfigNConfiguration__b_'




detected a multithreaded program

t@17 (l@9) terminated by signal BUS (invalid address alignment)

Current function is CORBA::string_dup

  118       return CORBA_string_dup(str);

(/opt/SUNWspro/bin/../WS6U1/bin/sparcv9/dbx) file


(/opt/SUNWspro/bin/../WS6U1/bin/sparcv9/dbx) list

  118       return CORBA_string_dup(str);

  119   }



  122   string_free(

  123       char* str

  124   )

  125   {

  126       CORBA_string_free(str);

  127   }

(/opt/SUNWspro/bin/../WS6U1/bin/sparcv9/dbx) where

current thread: t@17

  [1] _smalloc(0x8, 0xfea427a8, 0x0, 0x8, 0x0, 0x0), at 0xfe9c1c68

  [2] malloc(0x1, 0xe68056, 0x0, 0x0, 0x0, 0x1597390), at 0xfe9c1ca8

  [3] CORBA_string_dup(0x1, 0x1558350, 0x38d080, 0xb01600, 0x0, 0xe68055), at 0xfdbca5c8

=>[4] CORBA::string_dup(str = 0xe68055 ""), line 118 in "basic_types.h"

  [5] los_global_namespace::po_vitCsImpl::sendCustomerServiceRecord(this = 0xffbeb758, WSHeader = CLASS, constCustomerServiceRecordRequest = CLASS, WSResponseHeader = CLASS, CustomerServiceRecordResponse = CLASS), line 4158 in "po_vitCsImpl.cpp"

  Devil los_global_namespace::PreOrderServer::smf_dispatch_sendCustomerServiceRecord(0xfa30d2f0, 0xfa30d2f0, 0xfa30d314, 0xfa30d314, 0xfa30d2f0, 0xfa30d2f0), at 0xa8ce14

  [7] los_global_namespace::PreOrderServer::dispatch(0xffbeb758, 0x13b82e8, 0xf4ca74, 0x0, 0x274708, 0xfe665710), at 0xa8eee4

  Music IT_Bus::ServantWrapper::dispatch(0x125f730, 0xfa30d2cc, 0xfedf460c, 0xfa30cf68, 0xfa30cf64, 0xff085b78), at 0xfedd21d0

  [9] IT_Bus::SoapInterceptor::intercept_around_dispatch(0x1295438, 0xfa30d2cc, 0xf7531028, 0x143fbc0, 0xf6b67ef8, 0xf757bcc4), at 0xf6b65614

  [10] IT_Bus::ServerEndpointHandlerImpl::message_received(0x12c8380, 0x1493458, 0x13b82e4, 0x1466d48, 0xf757ca50, 0xfa30d374), at 0xf753e6d0

  [11] IT_Bus::ServerEndpointImpl::message_received(0x125ecf0, 0xfa30d960, 0x143fb70, 0xf757ca50, 0xf753e28c, 0xf757e1b4), at 0xf7539154

  [12] IT_Bus::DispatchContextImpl::execute(0x143fb70, 0xfa30d960, 0xf7578d70, 0xf7564a88, 0xfa30d82c, 0x125ecf0), at 0xf754034c

  [13] IT_Bus::MessagingTransportCallbackImpl::dispatch(0x13a6110, 0xfa30d960, 0x143fb70, 0x143fb70, 0xfb6538, 0x1), at 0xf75450d4

  [14] IT_HTTP::ArtixHTTPService::do_post(0x13a64e8, 0xf6bd2a20, 0xf8f94134, 0xfa30d960, 0x13a653c, 0xfb6538), at 0xf8f4524c

  [15] IT_HTTP::ArtixHTTPService::service_request(0x13a64e8, 0x142ff88, 0x14304a8, 0x3, 0xf8d8d8a4, 0xf8f495e4), at 0xf8f49608

also we tried multiple approach to resolve but still core is coming at uncertain place every time.

we tried following approach - 

1- tried to see if there is any glocal variable and that is getting corrupt for multiple request.

2- most important thing is that we put in mutex block to make sure that only one thread is using at a time. bbut till we were getting core for multiple request.

3- we put extensive logging in code but there is no pointer provided by dbx or logging.

4- sometime we are getting core in 10 simultaneous transaction and sometime we are getting in 15 simultaneous transaction.

can anyone please point or suggest anything for this situation?


  • Hi,

    Which exact version of Artix C++ are you using?

    Please provide the output of pstack and pflags from the core.