Menu

#29 TSIPP: duplicate object hash entry

v1.5
open
6
2002-05-17
2002-05-17
No

Tcl code will be tagged problem_<id>.

This problem occurs in a random test initiated with
the following parameters:

tksipp>after 10000 {randomTest::randomTest -opLog
op4.log -userErrorLog user4.log -seed 88889}
after#43
tksipp>TSIPP: duplicate object hash entry

Aborted

======================================================
Start of op4.log:

Record of random Test Initiated on Wed May 15
08:43:01 BST 2002

Args -opLog -seed -userErrorLog
args -opLog op4.log -userErrorLog
user4.log -seed 88889
checkAggregate 0
checkSelected 0
checkShaders 0
checkVertexSet 0
fpOpLog file4
maxMemory 100.0
maxMotion 25
maxMultiView 5
maxRender_ms 100
milliseconds 0
minCreate 0.1
minMultiView 0
minSelect 0.0
minTool 0.4
minZoom 0.7
monWin 1
motionDelta 30
op -1
opLimit 0
opLog op4.log
randSeq 0
seed 88889
userErrorLog user4.log
xDirector biasedRandomDeviate0
yDirector biasedRandomDeviate1

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

0 2 Display licence Event pageSpecificOps
1 3 Event forget
2 5 Display licence Event pageSpecificOps
3 6 Event dragAndRelease
4 7 Event dragAndRelease
5 8 Event changeMax
6 9 Event interpolate

======================================================
End of op4.log:

1305962 17341293 Canvas Front Mouse Shift_3_canvas
MultiView ::.t6640.v Event dragAndRelease
1305963 17341295 VisualEditOp changeColorTarget Event
pageSpecificOps
1305964 17341297 MultiView ::.t6632.v Event forget
1305965 17341299 MultiView ::.t6640.v Event revisit

======================================================
Investigation of error:

The error message is generated by the procedure
TSippBindObjectToHandle in the file tSippObj.c, when a
call to Tcl_CreateHashEntry returns with a zero value
in the integer pointed to by the third parameter.

Tcl_CreateHashEntry is a define in
tcl8.3.3/generic/tcl.h, which executes a procedure
pointed to by a field in a hash table structure. From
this error message, one cannot tell which actual
procedure that would be. This field is assigned in
four places within tcl8.3.3/generic/tclHash. One of
these should never be called and infact calls panic
and cannot return. The others (StringCreate,
OneWordCreate and ArrayCreate) all return 0 if the
entry already exists in the hashtable, in this case
"objectPtr", a parameter of TSippBindObjectToHandle.

Suspected causes are either an error in TSIPP, the
Tcl hash table mechanism, or, because the problem
occurred after heavy usage, due to some form of
wrap-around in object handle values, causing them to
duplicate.

Discussion


Log in to post a comment.