guptaami Absent Member.
Absent Member.

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?


1 Reply
RolandS Absent Member.
Absent Member.

RE: facing process crash issue for multiple simultaneous transacion.


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

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



The opinions expressed above are the personal opinions of the authors, not of Micro Focus. By using this site, you accept the Terms of Use and Rules of Participation. Certain versions of content ("Material") accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. As of September 1, 2017, the Material is now offered by Micro Focus, a separately owned and operated company. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.