Notes/Domino Fix List
SPR # JPAI6ARFE5Fixed in 6.5.4 FP2; 6.5.5 releaseRegression in 6.5.4



Product Area: Server Technical Area: LDAP Server Platform: Cross Platform

Lotus Customer Support APAR: LO08332

SPR# JPAI6ARFE5 - This fix prevents the Domino Update task from crashing when processing a document in the Domino directory whose FullName value is greater than 256 characters. This regression was introduced in 6.5.4.

Technote Number: 1206493

Problem:
This issue was reported to Quality Engineering as SPR# JPAI6ARFE5 (APAR#
LO08332) and has been fixed in Domino 6.5.4 Fix Pack 2 and Domino 6.5.5.

The crash occurs in cases where the FullName field in a user's Person document
contains an entry that is a string of spaces. Any server containing the Person
document can be affected. In one known case, the FullName field had the
expected name content as well, with the spaces entry being last in the list.
For example:

"CN=John Doe/OU=East/O=Widgets"
"John Doe"
"-----"
In one reported case it was observed that both the FullName and NetUsername
fields contained entries of 255 spaces. How these entries were generated is
unknown. The spaces entry in the NetUsername field is not relative to the
crash.

Excerpt from the Lotus Domino Release 6.5.4 Fix Pack 2 and 6.5.5 fix list
(available at http://www.ibm.com/developerworks/lotus):

SPR# JPAI6ARFE5 - This fix prevents the Domino Update task from crashing when
processing a document in the Domino directory whose FullName value is greater
than 256 characters. This regression was introduced in 6.5.4.

Refer to the Upgrade Central site for details on upgrading Notes/Domino.

Workaround
To avoid the crash, you must clear the extra spaces from the FullName field in
the Person document. Below are descriptions of an agent you can write to
correct the entry. The example is also designed to check the NetUsername field
for a multiple space entry and correct it as well. The agent is designed to
update only documents that have problematic contents; it will not update other
documents unnecessarily.

Before the agent can be used to clean up the documents, you must first make
sure the Update task is not running to avoid crashing the server while you are
attempting to correct the problem documents.

If you can start the server without it crashing immediately, then start the
server and issue the command "Tell Update Quit." Once the agent has been used
to correct the Person documents, then issue the command "Load Update" to
restart the task.

If the server is crashing immediately after startup, then you will have to
modify the Notes.INI file so that the Update task is not started
automatically. In the Notes.INI file, locate the ServerTasks entry and remove
Update from the list. Save and close the Notes.INI and then restart the
server. Once the agent has been used to correct the documents, shut down the
server, and add Update to the ServerTasks entry again, and then restart the
server.

Formula agent to clear spaces
Create a Formula agent designed to run on selected documents, or all documents
in the view, to trim the space entries from the FullName field and the
NetUserName field. You would run the agent from the People view of the Domino
Directory. The agent would use the following formula:

TFullName := @Trim(Fullname);
@If(TfullName!=Fullname; @SetField("Fullname"; TFullName);"");
TNetUserName := @Trim(NetUserName);
@If(TNetUserName!=NetUserName; @SetField("NetUserName"; TNetUserName);"");

Or in some cases, you can review the NSD to determine which document is
contributing to the crash and correct only that document. In the Open
Documents section for the crashing process, look for the NOTEID value. Convert
that value to a hexadecimal value, and use the Find Note tool in the Domino
Administrator to find the affected Person document.

Crash stack
The full stack recorded in the NSD file during the crash is as follows:

############################################################
### FATAL THREAD 2/14 [ nHTTP:0a64:0ebc]
### FP=0x0496dfac, PC=0x605915ac, SP=0x0496df90, stksize=28
### EAX=0x00000000, EBX=0x00000001, ECX=0x0496dfc4, EDX=0x609f9990
### ESI=0x0496dfc4, EDI=0x00000000, CS=0x0000001b, SS=0x00000023
### DS=0x00000023, ES=0x00000023, FS=0x0000003b, GS=0x00000000 Flags=0x00010246
Exception code: c0000005 (ACCESS_VIOLATION)
############################################################
@[ 1] 0x605915ac nnotes._LDAP_RDNAttrValue_Normalize@4+396
(496dfc4,0,ffffffff,13a)
@[ 2] 0x605946ee nnotes._NotesDN_GetLDAPCNValue@12+270
(afa00f4,496e350,100,480991c)
@[ 3] 0x6017d90b nnotes.TextElement::NameConvert+715
(496e48c,13a,496e4d8,496e498)
@[ 4] 0x6017e8d4 nnotes.NameTransform::TransformElement+20
(496e48c,496e4b0,480991c,48098e0)
@[ 5] 0x600d902a nnotes.TransformEnumerator::ProcessTextElement+26
(496e4b0,4809a84,48098e0,5)
@[ 6] 0x6011f042 nnotes.NSFTextListValue::EnumerateElements+66
(496e4d8,48098e0,496e4f8,1)
@[ 7] 0x600d9000 nnotes.TextListValue::Transform+80
(496e500,4808e10,4808d98,13a)
@[ 8] 0x6017e89d nnotes.AtName::Execute+141 (4808e10,4808e10,1,0)
@[ 9] 0x600537a1 nnotes.AtFunctionNode::GetValue+49 (496e558,600c336f,0,4808ef0)
@[10] 0x6005d8a3 nnotes.ExecutableNode::GetArgValue+19
(0,4808ef0,4808e10,4808e10)
@[11] 0x600c336f nnotes.OpListConcat::Execute+15 (4808ef0,4808ef0,1,0)
@[12] 0x600537a1 nnotes.AtFunctionNode::GetValue+49 (496e5a4,600c336f,0,4808f24)
@[13] 0x6005d8a3 nnotes.ExecutableNode::GetArgValue+19
(0,4808f24,4808ef0,4808ef0)
@[14] 0x600c336f nnotes.OpListConcat::Execute+15 (4808f24,4808f24,1,0)
@[15] 0x600537a1 nnotes.AtFunctionNode::GetValue+49 (496e918,600f43ed,0,4808f24)
@[16] 0x6005d8a3 nnotes.ExecutableNode::GetArgValue+19 (0,4808f24,0,0)
@[17] 0x600f43ed nnotes.AtUnique::Execute+205 (4809350,480e854,1,0)
@[18] 0x6004f4b0 nnotes.AtFunctionNode::ComputeVariants+80
(480cae0,480e854,1,480cae0)
@[19] 0x60099a47 nnotes.AtIf::ComputeVariants+199 (480cb1c,480cae0,480d40c,0)
@[20] 0x60099a47 nnotes.AtIf::ComputeVariants+199
(480cb1c,4808af4,480d40c,480e7f0)
@[21] 0x6004f494 nnotes.AtFunctionNode::ComputeVariants+52
(480e7f0,4808af4,480d40c,480d40c)
@[22] 0x60070920 nnotes.AssignmentExpressionNode::ComputeVariants+80
(480b560,48084d4,0,6000110d)
@[23] 0x6004f685 nnotes.RootNode::ComputeVariants+101
(496ebe4,48084d4,48034d4,6008d25e)
@[24] 0x6004f359 nnotes.Compute::Eval+137 (496ee24,11a84ac,11a8198,496ea90)
@[25] 0x60508ffc nnotes._NSFComputeMainFormula2@36+108 (48084d4,1,496ebe4,0)
@[26] 0x60087562 nnotes._NSFComputeMainFormula@28+50 (48084d4,1,496ebe4,0)
@[27] 0x60079744 nnotes._SearchNote@20+2132 (496ef28,496ee24,496ecb8,2d09044)
@[28] 0x6007eb95 nnotes._DbForEachDocumentInBucket@24+1589
(2d09000,11a8254,0,11a8198)
@[29] 0x6007f863 nnotes._iSearchFill@8+1315 (1a96,1a95,1a96,6007fb30)
@[30] 0x6007fb85 nnotes._SearchFill@8+85 (1a96,1a95,1b6c0e8,1a96)
@[31] 0x60065258 nnotes._QueueFill@4+40 (1a96,1b67c68,496f040,60077c1a)
@[32] 0x600651c6 nnotes._QueueGet@8+22 (1a96,496f038,1b6c0e8,1b67c68)
@[33] 0x60077c1a nnotes._GetNextBuffer@8+938 (1b6c0e8,60c2cbe0,1b67c68,1b6c0e8)
@[34] 0x60058091 nnotes._UpdateCollection@8+2817 (1b67c68,0,1b644e8,0)
@[35] 0x6008aebe nnotes._NIFUpdateCollectionNext@8+1038 (1b644e8,0,1,1b30148)
@[36] 0x6004ff93 nnotes._NIFUpdateCollection@4+179
(1b644e8,496fca7,496fb4c,496fca7)
@[37] 0x608b35ca nnotes._LocateNameSpace@36+874 (496fca7,1,0,1)
@[38] 0x6008a5ea nnotes._OpenNameSpace@8+362 (496fb4c,496f908,10b0000,0)
@[39] 0x60089d3c nnotes._NAMELookupDiskLookup@20+332 (9,496ff00,496ff50,496ff58)
@[40] 0x600a5acf nnotes._Lookup@32+2063 (0,1,661a4c,1)
@[41] 0x608c3569 nnotes._NAMELookupThread@4+537 (0,0,0,0)
@[42] 0x60115294 nnotes._ThreadWrapper@4+212 (0,0,0,0)
[43] 0x77e4a990 KERNEL32.FlsSetValue+1913 (601151c0,0,0,c8)

The full stack when the same problem happens on OS/400 is as follows:

JOB: 016286/QNOTES/LDAP THREAD: 0x1
_CXX_PEP 553 QP0ZPCP2 QP0ZPCP2
main 539
_C_pep 0 NOTES0 LDAP
notes_main 14
NotesMain 4 NOTESAI0
AddInMain 1185 ISMAIN
FirstProcessMain__6CIServFUiiPPc 1189 CISERV
OnFirstProcessStart__8CLDAPSrvFv 4182 CLDAPSRV
FetchUpdatedConfig__8CLDAPSrvFv 4782
LoadPerDbConfig__8CLDAPSrvFv 4524
LDAPReadPerDbConfig 2628 UTILCONF LIBNOTES
NAMELookup 16 LOOKUP0
Lookup 135 LOOKUP
NAMELookupDiskLookup 38
OpenNameSpace 23
LocateNameSpace 51
NIFUpdateCollection 19 UPDATE0
NIFUpdateCollectionNext 73 UPDATE
UpdateCollection 235
GetNextBuffer 18
QueueGet 2 QUEUE
QueueFill 8
SearchFill 7 NSFSEM3
iSearchFill 121 SRFILL
DbForEachDocumentInBucket 140 CURSOR
SearchNote 163 SRFILL
NSFComputeMainFormula 1447 CNSFWRAP
NSFComputeMainFormula2 1457
Eval__7ComputeFv 1800 COMPUTE
ComputeVariants__8RootNodeFv 1960 COMPNODE
ComputeVariants__24AssignmentExpressionNodeFv 1785
ComputeVariants__14AtFunctionNodeFv 1727
ComputeVariants__4AtIfFv 1687 ATIF
ComputeVariants__4AtIfFv 1687
ComputeVariants__14AtFunctionNodeFv 1732 COMPNODE
Execute__8AtUniqueFv 1735 ATUNIQUE
GetArgValue__14ExecutableNodeFUl 1713 COMPNODE
GetValue__14AtFunctionNodeFv 1742
Execute__12OpListConcatFv 1670 OPLSTCNCAT
GetArgValue__14ExecutableNodeFUl 1713 COMPNODE
GetValue__14AtFunctionNodeFv 1742
Execute__12OpListConcatFv 1670 OPLSTCNCAT
GetArgValue__14ExecutableNodeFUl 1713 COMPNODE
GetValue__14AtFunctionNodeFv 1742
Execute__6AtNameFv 1679 ATNAME
Transform__13TextListValueCFR24TextListValueTran 1197 TEXTVALUE
EnumerateElements__19SingleTextListValueCFR23Tex 1354
ProcessTextElement__19TransformEnumeratorFR11Tex 1180
TransformElement__13NameTransformFR11TextElement 1673 ATNAME
NameConvert__11TextElementCFUl 4306 TXT_LEM_NT
NotesDN_GetLDAPCNValue 3548 UTILVALU
LDAP_RDNAttrValue_Normalize 3682 UTIL
ExceptionOccurred 1 NOTES0 LDAP
kill 479 QP0SLIB QP0SSRV1
qp0skill__FiT1 532 QP0SKILL QP0SSRV3
fatal_error 32 BREAK LIBNOTES
OSFaultCleanup 85 CLEANUP
OSRunExternalScript 19
__system_a 2 STDLIB_A
system 6 QC2SYS QC2SYS
297 QCMDEXC
_C_pep 0 NSD NSD
More >



Last Modified on 12/08/2013

Go back