The is Bug 240 restarted. The segfault appears
to happen more frequently now, but still not every time.
$ make test TESTFLAGS='-singleproc 1 -file "info.test inherit.test methods.test mkindex.test protection.test"'
...
info.test
inherit.test
methods.test
mkindex.test
protection.test
make: *** [test] Segmentation fault
The bug-240 branch (updated to trunk) is effective
in stopping the segfault, but see comments in bug 240
about questions raised by it.
Copying over the key comment that summarizes
the current status:
Branch bug-240 has stopped the test suite segfaults,
but now suffers from failing test:
==== tinfo-10.1 type info types FAILED
==== Contents of test case:
type dog {
}
type cat {
}
lsort [dog info types]
---- Result was:
bar cat confused-dog dog dogbase foo tail tail1 tail2 wag
---- Result should have been (exact matching):
cat dog
==== tinfo-10.1 FAILED
when run in -singleproc 1 mode. Might just be a test error,
or might be something more serious. The other issue is with
all this Preserve-ing and refcounting to stop segfaults from
accessing freed memory, there's a real risk that memory leaks
have been introduced.
Diff:
I have tested with Tcl trunk and Itcl trunk and there was no problem on my machine.
Can you please check again.
Thanks.
It appears the fix requires both Itcl trunk and Tcl trunk,
so the bug points to some combo of bugs in Itcl and TclOO.
Testing the Itcl trunk with Tcl 8.6.1 still delivers frequent
segfaults.
....and so I go looking for the checkin that
solved the matter, and the failure goes away, even
in the scenario where I just saw it.
I suppose closing this until it can be reliably
reproduced is reasonable. Wish I had greater confidence
we knew what was wrong and why it is fixed (if it is
indeed fixed). I cannot chase it now.
It could have to do with the fix for fossil bug ticket
2cd667f270b68ef66d668338e09d144e20405e23
because there was a crash, when checking protection (private method).
Because of a lot of payed work I cannot look for that closer now.
Arnulf
Last edit: Arnulf Wiedemann 2014-09-20
Using current trunk for both Tcl and Itcl with repeated
runs of
make test TESTFLAGS="-singleproc 1"
I will see a segfault in protection.test
Based on history, my guess is this is the protect-2.5
problem still unfixed, but I cannot reproduce with
a -verbose option to be sure.
Sorry not to have a more reliable reproduction yet. Might
be able to produce one in a few weeks.
Here's the stack trace of the crash
Last edit: Don Porter 2014-10-01
The bug-240 branch with
make test TESTFLAGS="'-singleproc 1 -file type[fi]*.test -match "mymethod-1.1 tinfo-10.1"'
produces
==== tinfo-10.1 type info types FAILED
==== Contents of test case:
---- Result was:
bar cat dog foo
---- Result should have been (exact matching):
cat dog
==== tinfo-10.1 FAILED
which seems to indicate that this branch fails to actually
delete the types foo and bar in the -cleanup of test mymethod-1.1.
Restoring a commented-out release stops the
test suite failure and the segfaults do not come back.
Merging bug fix branch to go out in Itcl 4.0.3.