TIBCO BusinessWorks application using Rendezvous Certified or Distributed Queue transport crashes in tibrvMsg_Detach function() or tibrvMsg_GetString() function.

TIBCO BusinessWorks application using Rendezvous Certified or Distributed Queue transport crashes in tibrvMsg_Detach function() or tibrvMsg_GetString() function.

book

Article ID: KB0089437

calendar_today

Updated On:

Products Versions
TIBCO ActiveMatrix BusinessWorks -
Not Applicable -

Description

Description:
TIBCO BusinessWorks application using Rendezvous Certified or Distributed Queue transport crashes in tibrvMsg_Detach function or tibrvMsg_GetString() function.
Symptoms:
A. BW engine using RVCM or RVDQ type of transport gives a core dump with any of the following stacktraces:

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  com.tibco.tibrv.TibrvMsg.tibrvMsg_Detach(J)V+0
J  com.tibco.tibrv.TibrvMsg.get(JSILcom/tibco/tibrv/TibrvMsg;)Ljava/lang/Object;
J  com.tibco.plugin.tibrv.RVDeSerializer.subDeSerializeRaw(Lcom/tibco/xml/datamodel/XiNode;Lcom/tibco/tibrv/TibrvMsg;)V
j  com.tibco.plugin.tibrv.RVDeSerializer.deSerializeRaw(Lcom/tibco/tibrv/TibrvMsg;)Lcom/tibco/xml/datamodel/XiNode;+31
j  com.tibco.plugin.tibrv.RVEventSource$RVEventContext.postProcess(Lcom/tibco/xml/datamodel/XiNode;)Lcom/tibco/xml/datamodel/XiNode;+220
j  com.tibco.pe.core.ProcessGroup.eval(Lcom/tibco/pe/plugin/ProcessContext;Lcom/tibco/xml/datamodel/XiNode;)Lcom/tibco/xml/datamodel/XiNode;+122
J  com.tibco.pe.plugin.Activity.eval(Lcom/tibco/pe/plugin/ProcessContext;Lcom/tibco/xml/xdata/InputData;)Lcom/tibco/xml/datamodel/XiNode;
J  com.tibco.pe.core.TaskImpl.eval(Lcom/tibco/pe/plugin/ProcessContext;)Ljava/lang/String;
J  com.tibco.pe.core.Job.a(J)J
J  com.tibco.pe.core.Job.k()J
j  com.tibco.pe.core.JobDispatcher$JobCourier.a(Lcom/tibco/pe/core/Job;)Z+4
j  com.tibco.pe.core.JobDispatcher$JobCourier.run()V+184

Or

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  com.tibco.tibrv.TibrvMsg.tibrvMsg_GetString(JI[BLcom/tibco/tibrv/TibrvMsg;)V+0
j  com.tibco.tibrv.TibrvMsg.getStringField(JILcom/tibco/tibrv/TibrvMsg;)Ljava/lang/String;+35
J  com.tibco.tibrv.TibrvMsg.get(JSILcom/tibco/tibrv/TibrvMsg;)Ljava/lang/Object;
J  com.tibco.tibrv.TibrvMsg.getFieldByIndex(I)Lcom/tibco/tibrv/TibrvMsgField;
J  com.tibco.plugin.tibrv.RVDeSerializer.a(Lcom/tibco/xml/datamodel/XiNode;Ljava/util/HashMap;Ljava/util/HashMap;Lcom/tibco/xml/schema/SmParticleTerm;Lcom/tibco/tibrv/TibrvMsg;ZZZ)V
J  com.tibco.plugin.tibrv.RVEventSource$RVEventContext.postProcess(Lcom/tibco/xml/datamodel/XiNode;)Lcom/tibco/xml/datamodel/XiNode;
J  com.tibco.pe.core.ProcessGroup.eval(Lcom/tibco/pe/plugin/ProcessContext;Lcom/tibco/xml/datamodel/XiNode;)Lcom/tibco/xml/datamodel/XiNode;
J  com.tibco.pe.core.TaskImpl.eval(Lcom/tibco/pe/plugin/ProcessContext;)Ljava/lang/String;
J  com.tibco.pe.core.Job.a(J)J
J  com.tibco.pe.core.Job.k()J
J  com.tibco.pe.core.JobDispatcher$JobCourier.run()V
v  ~StubRoutines::call_stub

B. Following exception is seen in the stderr of the bwengine:

TibrvException[error=41,message=Decoder failed for TibrvMsgField[name=sub,id=0,type=INVALID(2),data=null]]
                at com.tibco.tibrv.TibrvMsg.getFieldByIndex(TibrvMsg.java:1677)
                at com.tibco.plugin.tibrv.RVDeSerializer.a(Unknown Source)
                at com.tibco.plugin.tibrv.RVDeSerializer.deSerialize(Unknown Source)
                at com.tibco.plugin.tibrv.RVEventSource$RVEventContext.postProcess(Unknown Source)
                at com.tibco.pe.core.ProcessGroup.eval(Unknown Source)
                at com.tibco.pe.plugin.Activity.eval(Unknown Source)
                at com.tibco.pe.core.TaskImpl.eval(Unknown Source)
                at com.tibco.pe.core.Job.a(Unknown Source)
                at com.tibco.pe.core.Job.k(Unknown Source)
                at com.tibco.pe.core.JobDispatcher$JobCourier.a(Unknown Source)
                at com.tibco.pe.core.JobDispatcher$JobCourier.run(Unknown Source)

C. Some RV message fields have null or incorrect values in the output of the RV Subscriber activity in BW.


Cause:
The issue happens due to Rendezvous defect (RV-3105) described below:

Java application could abruptly exit while processing a CM or DQ message outside of the dispatch thread.
(Affects only the tibrvnative.jar library.)

Issue/Introduction

TIBCO BusinessWorks application using Rendezvous Certified or Distributed Queue transport crashes in tibrvMsg_Detach function() or tibrvMsg_GetString() function.

Resolution

Apply Rendezvous 8.4.1 hotfix-01 which fixes this issue:

================================================================================
Closed Issues in 8.4.1_HF-001 (This Release)

RV-3105
 Fixed a defect in which a Java application could abruptly exit while
 processing a CM or DQ message outside of the dispatch thread.
 (Affects only the tibrvnative.jar library.)

================================================================================