|
2015-04-30
| ||
| 16:13 | • Ticket [894da183c8] In a thread, switch a non-blocking channel to blocking and close == hang status still Closed with 6 other changes artifact: d73122e96b user: oehhar | |
| 13:57 | • Ticket [894da183c8]: 5 changes artifact: 8a633a7c64 user: dgp | |
| 13:02 | • Ticket [894da183c8]: 6 changes artifact: d3ae1928ec user: oehhar | |
|
2015-04-29
| ||
| 18:17 | • Closed ticket [894da183c8]. artifact: 378bea9167 user: dgp | |
| 18:16 | [894da183c8] Test and fix for regression in flushing blocked channels. check-in: 98d7d3d724 user: dgp tags: trunk | |
| 18:00 | [894da183c8] Test and fix for regression in flushing blocked channels. check-in: a13963e6e4 user: dgp tags: core-8-5-branch | |
| 16:35 | • Ticket [894da183c8] In a thread, switch a non-blocking channel to blocking and close == hang status still Open with 3 other changes artifact: 4044e4efe9 user: dgp | |
| 16:34 | [894da183c8] Fix and test for bug at the point it was introduced. Closed-Leaf check-in: 8eb3c44932 user: dgp tags: bug-894da183c8 | |
|
2015-04-28
| ||
| 15:56 | • Ticket [894da183c8] In a thread, switch a non-blocking channel to blocking and close == hang status still Open with 3 other changes artifact: 6be33ba9e8 user: dgp | |
|
2015-04-26
| ||
| 01:18 | • Ticket [894da183c8]: 4 changes artifact: 445d87fd30 user: pooryorick | |
|
2015-04-24
| ||
| 22:51 | • Ticket [894da183c8]: 3 changes artifact: 17bbdd776b user: pooryorick | |
| 18:37 | • New ticket [894da183c8]. artifact: 50ec4a0619 user: pooryorick | |
| Ticket UUID: | 894da183c8475264b8070b5b4dbbd6dd72f8dd69 | |||
| Title: | In a thread, switch a non-blocking channel to blocking and close == hang | |||
| Type: | Bug | Version: | 8.6.4 | |
| Submitter: | pooryorick | Created on: | 2015-04-24 18:37:17 | |
| Subsystem: | 25. Channel System | Assigned To: | dgp | |
| Priority: | 5 Medium | Severity: | Critical | |
| Status: | Closed | Last Modified: | 2015-04-30 16:13:39 | |
| Resolution: | Fixed | Closed By: | oehhar | |
| Closed on: | 2015-04-30 16:13:39 | |||
| Description: |
The following script causes Tcl to hang:
Add a call to
| |||
| User Comments: |
oehhar added on 2015-04-30 16:13:39:
Fix [453c47d3d9] works for me, thanks ! dgp added on 2015-04-30 13:57:07: Right you are! Will fix soon. oehhar added on 2015-04-30 13:02:01: Thank you for the patch and the test. I have tried this checkin [98d7d3d724], Win 8.1, MS-VC6. For me, the test fails as follows:
---- io-53.4.1 start
==== io-53.4.1 Bug 894da183c8 FAILED
==== Contents of test case:
set big bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\n
variable x
for {set x 0} {$x < 12} {incr x} {
append big $big
}
file delete $path(pipe)
set f1 [open $path(pipe) w]
puts $f1 [list file delete $path(test1)]
puts $f1 {
puts ready
set f [open io-53.4.1 w]
fcopy stdin $f -command { set x }
vwait x
close $f
}
puts $f1 "close \[[list open $path(test1) w]]"
close $f1
set f1 [open "|[list [interpreter] $path(pipe)]" r+]
set result [gets $f1]
fconfigure $f1 -blocking 0 -buffersize 125000
puts $f1 $big
fconfigure $f1 -blocking 1
close $f1
set big {}
while {[catch {glob $path(test1)}]} {after 50}
file delete $path(test1)
set check [file size io-53.4.1]
file delete io-53.4.1
set check
---- Result was:
270338
---- Result should have been (exact matching):
266241
==== io-53.4.1 FAILED
I suppose, this is due to different line ending styles: \n\r on windows and by \n on unix.... dgp added on 2015-04-29 18:17:17: Tidied patches merged to active release branches. dgp added on 2015-04-29 16:35:20: See branch bug-894da183c8 for test and fix demonstrating where the regression regressed. dgp added on 2015-04-28 15:56:46: Regression introduced in http://core.tcl.tk/tcl/info/37bcb4b42d963315 pooryorick added on 2015-04-26 01:18:33: Some experimentation showed that in case of the first example (no [flush $chan]), the contents of In tclIO.c/FlushChannl, the contents of statePtr->curOutPtr were not getting flushed, causing FlushChannel not to call CloseChannel. This fix solves the problem and passes the Tcl test suite:
| |||