| Ticket UUID: | 6022b9f946b242d548af6da0a08a659b4ba546d0 | |||
| Title: | Tk when built against Tcl 9.0 broken | |||
| Type: | Bug | Version: | 9.0 | |
| Submitter: | jan.nijtmans | Created on: | 2023-05-17 15:22:04 | |
| Subsystem: | 10. Objects | Assigned To: | pooryorick | |
| Priority: | 5 Medium | Severity: | Important | |
| Status: | Closed | Last Modified: | 2023-07-12 14:07:52 | |
| Resolution: | Fixed | Closed By: | pooryorick | |
| Closed on: | 2023-07-12 14:07:52 | |||
| Description: |
When running the Tk testsuite against Tcl 9.0, there are 3 test-failures: See: https://github.com/tcltk/tk/actions/runs/5000425737/jobs/8962784135 But the build with 8.7 and 9.1 (unofficial) is OK. This points to a problem in the current trunk, not actually in Tk: imgPhoto.test Looking at the build history, this build was done using Tcl commit [427bc951fbcffe81], which the previous successfull build was done using Tcl commit [8181a7f089ec83e0]. There are 3 suspicious commits in this range: * [427bc951fbcffe81] Fix memory leaks and remove unnecessary reference count bounce. * [40af0258ecad67cd] New function, TclDuplicatePureObj(), .... * [0785828c472b53ea] Add Tcl_DecrRefCount() missing from [4b1a20629e]. Which of those 3 commit's is the coolpit, I don't know. | |||
| User Comments: |
pooryorick added on 2023-07-12 14:07:52:
Note, the previous two messages belong on [a34733451b2cf189], not here. pooryorick added on 2023-07-12 14:05:47: Oops, please disregard the previous repeated message. Here is the new message: The last trouble reported with TclDuplicatePureObj() was fixed almost two months ago, in [c405bdd1f0]. Since then there have been no test failures until the merge of TIP 636. That clearly indicates that the trouble is with the TIP 636 merge, and that's what should be reverted here. pooryorick added on 2023-07-12 14:03:53: The last trouble reported with TclDuplicatePureObj() was fixed almost two months ago, in [c405bdd1f0]. Since then there have been no test failures until the merge of TIP 636. That clearly indicates that the trouble is with the TIP 636 merge, and that's what should be reverted here. pooryorick added on 2023-05-18 08:11:45: Before committing to trunk I tested each commit both with a --enable-symbols=debug CFLAGS='-DPURIFY' build, along with a complete valgrind run, and also with a --enable-symbols=mem build. If the C/I system were currently testing branches other than the main lines of development, I would have let it run on a separate branch before merging it. I do what I can to make sure errors don't make it to trunk. I consider Tcl_DuplicatePureObj() a needed enhancement, not an experiment, but it did stem from an experimental branch, pyk-objinterface. Maybe I'll start testing Tcl with Tk too before merging with trunk. On my platform hundreds of Tk tests fail every time, so I'll have to run the tests both before and after, and compare the differences. I don't want spend time correcting other peoples' mistakes either, but I do it when necessary. You could have reproduced the failure using the latest commit to trunk before reporting it. That's what I always do. jan.nijtmans added on 2023-05-17 20:12:28: By the way, I like the Tcl_DuplicatePureObj() function and the error-checking that you added. But ... the proper way of "causing no harm" is testing it in a branch first. The "main" branch is not for experimenting, as you are doing. My commit was not a fix, it was just backing out the harmful commit. I don't want to spend time correcting your mistakes jan.nijtmans added on 2023-05-17 20:07:44: It - indeed - appears that [c405bdd1f0] already fixed this. How could I have known that? jan.nijtmans added on 2023-05-17 19:57:01: Commit war starting again .... pooryorick added on 2023-05-17 19:28:13: Ooops,scratch that last comment. It should have read as follows: Commit [1452a806b7] is the wrong fix for this issue, as it was already fixed in [c405bdd1f0]. Therefore, I've backed out [1452a806b7]. pooryorick added on 2023-05-17 19:26:20: Commit [1452a806b7] is the wrong fix for this issue, as it was already fixed in [ [c405bdd1f0]. Therefore, I've backed out [c405bdd1f0]. jan.nijtmans added on 2023-05-17 15:55:13: I did a bisect, in order to locate the problem. Fossil tells me: bisect complete 1 BAD 2023-05-16 06:25:19 8e4d8a60539e13a9 4 BAD 2023-05-16 05:25:31 40af0258ecad67cd CURRENT 3 GOOD 2023-05-15 20:49:43 0785828c472b53ea 2 GOOD 2023-05-14 08:21:50 8181a7f089ec83e0 So, the problematic commit is: [40af0258ecad67cd]: New function, TclDuplicatePureObj(), doesn't duplicate the string .... | |||