如何处理一个新的Tcl断言(在8.5.18中引入)触发IO操作?

时间:2015-07-16 12:05:26

标签: tcl openacs

我们基于Tcl的Web应用程序(OpenACS,NaviServer)提供上传和提取ZIP存档的功能。升级到最新版本的Tcl(8.5.18)后,服务器现在在处理提取的存档内容时崩溃并发出此错误。

nsd: /usr/local/src/tcl/tcl8.5.18/unix/../generic/tclIO.c:5395: DoReadChars: Assertion `!((statePtr)->flags & ((1<<9))) || ((statePtr)->flags & ((1<<10))) || Tcl_InputBuffered((Tcl_Channel)chanPtr) == 0' failed.

在Tcl 8.5.17和8.5.18之间引入了这个断言。断言是错误还是过于严格,还是在应用程序级别提示某种形式的错误?

1 个答案:

答案 0 :(得分:0)

事实证明,我遇到了一个已于2015年4月修复的已知错误(http://core.tcl.tk/tcl/info/879a0747bee593e2)。当Tcl 8.5.19发布时,使用它将使我的麻烦消失。在此之前,可以使用Tcl开发源,或者单独尝试补丁(http://core.tcl.tk/tcl/info/4b964e7afb811898)。