From: steve.g.szabo on
I have a server daemon written in C which creates a pool of tcl
interpreters within a thread ( one tcl per thread ) . There seems to be
some issue with flushing a log file channel from tcl:

FlushChannel: damaged channel list

I also get a core dump:

My C code:

ff124a74 evalTclScript (d31c0, 2eafb8, fdd09b78, 7efefeff, 81010100,
ff0000) + 18c
00029c0c processCronJob (2f3398, c2ee8, 2eaf50, 2f5338, 16180, 0) + c4

...
...
...

Tcl C code:

ff1f88d8 Tcl_PanicVA (ff222a98, fdd07360, 1, fffffff8, 3, ff23ec0c) +
e0
ff1f8908 Tcl_Panic (ff222a98, 20, 1, 4, 19a, 100d) + 1c
ff1e092c Tcl_CutChannel (14c3f8, 1, 0, 80006, 3248e0, 106) + a0
ff1e0758 CloseChannel (d31c0, 14c3f8, 0, 19adf8, 2, 10) + c0
ff1e0680 FlushChannel (0, 14c3f8, 0, 0, 6, ff2447c8) + 298
ff1e0bb8 Tcl_Close (0, 14c3f8, fdd06cd0, fdd06b6f, ffffffff, 10) + 1ac
ff1df9c0 Tcl_UnregisterChannel (0, 14c3f8, 0, d35c0, 31f1b8, 0) + e8
ff1e713c Tcl_CloseObjCmd (1, d31c0, 2, db4a8, 31f1b8, 1) + 64
ff1a85b4 TclEvalObjvInternal (1e8, 2, db4a8, 0, 1ec, 0) + 2ec
ff1cefd4 TclExecuteByteCode (d31c0, 320978, d2e00, 0, 2, 2) + 8c4
ff1ce650 TclCompEvalObj (d31c0, da050, d35c0, 1, ff226c40, 1738c8) +
190
ff2016a8 TclObjInterpProc (fdd078b8, d31c0, 0, db4a0, ce730, 1) + 360
ff1a85b4 TclEvalObjvInternal (1e8, 2, db4a0, 0, 1ec, 0) + 2ec
ff1cefd4 TclExecuteByteCode (d31c0, 102e20, d2e00, 200, 2, 2) + 8c4
ff1ce650 TclCompEvalObj (d31c0, d9e10, d35c0, 1, ff226c40, 173a08) +
190
ff2016a8 TclObjInterpProc (fdd07e38, d31c0, 0, db49c, 14c8f8, 1) + 360
ff1a85b4 TclEvalObjvInternal (1e8, 1, db49c, 0, 1ec, 0) + 2ec
ff1cefd4 TclExecuteByteCode (d31c0, 102c20, d2e00, 3, 2, 1) + 8c4
ff1ce650 TclCompEvalObj (d31c0, da128, d35c0, 1, ff226c40, 173a88) +
190
ff2016a8 TclObjInterpProc (fdd08418, d31c0, 0, db490, 11cfb0, 1) + 360
ff1a85b4 TclEvalObjvInternal (1e8, 3, db490, 0, 1ec, 0) + 2ec
ff1cefd4 TclExecuteByteCode (d31c0, 102a20, d2e00, 200, 2, 3) + 8c4
ff1ce650 TclCompEvalObj (d31c0, da0b0, d35c0, 1, ff226c40, 173388) +
190
ff2016a8 TclObjInterpProc (fdd089d8, d31c0, 0, db480, fb5b8, 1) + 360
ff1a85b4 TclEvalObjvInternal (1e8, 4, db480, 0, 1ec, 0) + 2ec
ff1cefd4 TclExecuteByteCode (d31c0, 31afd0, d2e00, 200, 2, 4) + 8c4
ff1ce650 TclCompEvalObj (d31c0, dafc8, d35c0, 1, ff226c40, 174ec8) +
190
ff2016a8 TclObjInterpProc (fdd08f58, d31c0, 0, db474, 313140, 1) + 360
ff1a85b4 TclEvalObjvInternal (1e8, 3, db474, 0, 1ec, 0) + 2ec
ff1cefd4 TclExecuteByteCode (d31c0, 317028, d2e00, 0, 2, 3) + 8c4
ff1ce650 TclCompEvalObj (d31c0, da080, d35c0, 1, ff226c40, 1742c8) +
190
ff2016a8 TclObjInterpProc (fdd094f8, d31c0, ffffffff, fdd09860, 20, 1)
+ 360
ff1a85b4 TclEvalObjvInternal (1e8, 2, fdd09860, 2eafb8, 1ec, 0) + 2ec
ff1a8eb0 Tcl_EvalEx (0, 2eafb8, 62, fdd09928, 0, 1) + 16c
ff1a9214 Tcl_Eval (d31c0, 2eafb8, 62, 56cc9, 2eaf50, 45b94) + 10