LSXODBC Agent called from HTTP may cause crash due to duplicate SQLFreeStmt as result of SQLDisconnect

Technote (troubleshooting)


Problem

The Domino HTTP server crashes with a stack similar to this.
Hide details for LE_Create_Thread2__FP12crtth_parm_t 18 QLECRTTH QLESPILE_Create_Thread2__FP12crtth_parm_t 18 QLECRTTH QLESPI
LE_Create_Thread2__FP12crtth_parm_t                  18   QLECRTTH QLESPI
pthread_create_part2                                 19  QP0WSPTHR QP0WPINT
ThreadWrapper                                        20     THREAD LIBNOTES
HTThreadBeginProc                                     8   HTTHREAD LIBHTTPSTA
ThreadMain__14HTWorkerThreadFv                        8   HTWRKTHR
CheckForWork__14HTWorkerThreadFv                     71            
StartRequest__9HTSessionFv                          156   HTSESSON
ProcessRequest__9HTRequestFv                        322   HTREQUST
ProcessRequest__21HTRequestExtContainerF19HTAppl    156   HTEXTCON
ProcessRequest__15HTInotesRequestFv                   2   HTINOTES
InotesHTTPProcessRequest                              2   INOTESIF LIBINOTES
InotesHTTPProcessRequestImpl__FP18_InotesHTTPreq    317            
Execute__3CmdFv                                       3        CMD
Handler__10CmdHandlerFP3CmdPv                        28    CMDHAND
PrivHandle__10CmdHandlerFP3Cmd                       21            
PrivHandle__14CmdHandlerBaseFP3CmdT1                 39   CMDHANDB
HandleOpenFormCmd__14CmdHandlerBaseFP11OpenFormC     80   OPFCMDHD
HandleClick__10CmdHandlerFP3CmdR5NNoteR11ClickTa     98   CLICKARG
Evaluate__8NFormulaFv                                 3   NFORMULA
Evaluate__8NFormulaFR6NValuePi                       16            
NSFComputeEvaluateExt                                17   CNSFWRAP LIBNOTES
Eval__7ComputeFv                                     13    COMPUTE
ComputeVariants__8RootNodeFv                          5   COMPNODE
ComputeVariants__18CalcExpressionNodeFv               6            
ComputeVariants__14AtFunctionNodeFv                   9            
Execute__13ExtensionProcFv                           19 EXTNSNPROC
ExtensionProc__18CompGeneralContextFR7ComputeUlP     38    CONTEXT
INotesCompExtProc                                     6   NFORMULA LIBINOTES
ExtensionProc__8NFormulaFUsT1PUlPPvPUiT3            565            
DoToolsRunMacro__8NFormulaFPUlPPv                    55            
Run__6NAgentFP8UserInfo                              88     NAGENT
AgentRun                                            238   WRAPPERS LIBNOTES
Run__10CAssistantFP21tagASSISTRUNCTXSTRUCT          473     ASSIST
RunAlone__10CAssistantFP13CDefActionCtx               1            
Execute__10CRawActionFP13CDefActionCtx               34     ACTION
Run__10CRawActionFP13CDefActionCtxUiPUl               6            
Run__21CRawActionLotusScriptFP13CDefActionCtxUiP     58      ATERM
RunScript__12CLSIDocumentFUisPcT2UlT5                86     LSIDOC
RunToCompletion__9LSIThreadFUli                      40    LTHREAD
RunInternal__9LSIThreadFsUl11tagTIMEDATEi             6            
Run__9LSIThreadFUli                                  12            
Run__9LSsThreadFv                                    21    LSTHRUN
NRun__9LSsThreadFv                                  340            
AdtDoProdCallout__9LSsThreadFP8LSsValueUsP13LSsE     29    LSTHOBJ
ProdMethodCall__9LScObjCliFUlRC5_GUIDUsP8LSsValu      6   LSOBJCLI
AdtCallBack__11LSsInstanceFPFP11LSsInstance9LSIA     59     LSINST
ClassControl__14LSADTResultSetFP14LSsApiInstance     65    ODBCRES LIBLSXODBC
EnvokeMethod__14LSADTResultSetFP14LSsApiInstance     45            
QTDeleteRow                                          40   QTUPDATE
QTHasRowChanged                                      59            
OS400ExceptionOccurred                                1      BREAK LIBNOTES
fatal_error                                          34            
OSFaultCleanup                                        1    CLEANUP
OSFaultCleanupExt                                    91            
OSRunExternalScript                                  40            
__system_a                                            2   STDLIB_A LIBCAW
system                                                6     QC2SYS QC2SYS
                                                    303            QCMDEXC
_C_pep                                                0        

This failure stack is NOT the cause of the failure but the reporting failure.


Symptom

Domino HTTP agents called invoking LSXODBC in very high traffic site may crash.



Cause

SQLDisconnect LotusScript call at end of LSXODBC agent to free the DB2 connection will result in SQLFreeStmt request for each Statement Handle that had been allocated during the agent run.

Each will result in a non-critical error of SQL_INVALID_HANDLE. as the handle is no longer allocated.

In a very heavily used Server it is possible for another thread in HTTP to also call an LSXODBC agent to allocate the handle used after the SQLDisconnect and BEFORE the SQLFreeStmt,

In this case the SQLfreeStmt will NOT error, the handle will be freed, and the second Thread will crash the server when it attempts to operate on the handle which was incorrectly freed.


Environment

LSXODBC agent calls in HTTP ,

Domino for IBM i

Diagnosing the problem

SQLCLI traces are required to confirm this issue.

Resolving the problem

This issue was reported as SPR WSCN8VFL9R / APAR LO70095 and a fix is now available. Please contact IBM support to request this fix.


Rate this page:

(0 users)Average rating

Document information


More support for:

IBM Domino
Crash

Software version:

8.5.2.2

Operating system(s):

IBM i, i5/OS

Software edition:

All Editions

Reference #:

1599177

Modified date:

2013-05-20

Translate my page

Machine Translation

Content navigation