I have a script that runs fine under tclsh84.
When run by wish it hangs and then begins to
take 100% of cpu. May work with 1 or 2 messages but
hangs consistently with more.
I haved tried supplying a bgerror handler and supplying
a do-nothing log::log proc. Still hangs when
Script attached
INPUT: (add to top of script)
mailserver
login
pass
Windows 2000
Tcl/Tk 8.4.2
script demo's hang and cpu consumption
Logged In: YES
user_id=146884
I found a "fix" of sorts. Not a real fix because
I'm not prepared to explain how/why it works.
The change is to switch the channel to -buffering line
and to change -translation {binary crlf} to -translation binary
Based on
# RCS: @(#) $Id: pop3.tcl,v 1.25 2003/04/11 20:07:24
andreas_kupries Exp $
Here is the diff
-------------------------------------------------
738 C:/p/t/spam> diff pop3-works-under-windows2000-tk.tcl
pop3.tcl
274c274
< fconfigure $chan -buffering line -translation binary
---
> fconfigure $chan -buffering none
282c282
< # fconfigure $chan -translation {binary crlf}
---
> fconfigure $chan -translation {binary crlf}
Makes my issue go away at least for now.
Logged In: YES
user_id=75003
log::log is usually inactive, i.e. not producing output. Setting
it a null proc will accomplish nothing with respect to output.
It may make the code a bit faster as there won't be any
checks for possible logging anymore.
Please remove your null log::log and then activate logging
(Via [log::lvSupressLE critical 0]). That way we can see what
is going inside the library and on the wire to the pop server.
Logged In: YES
user_id=146884
I tried this again with logging as requested by Andreas. The
observed behavior was different this time but still always a
failure. My stop-gap fix continues to work without any known
errors.
The failure is an unknown (no error string) error out of
pop3::send, which is reported by pop3::top. This results in
only the first message top being retrieved by the code.
In roytest2.tcl see line 586 for the call to top. Again this all
works fine (and I use it continously) for days and weeks on
end with the patched version. Seems pretty clear that fiile
events are being mismanaged somehow in the standard code
such that running in Windows Tk fails.
Please see attached log/console: roytest2.output.txt
and roytest2.tcl
PS: Regarding log enable/enable I have learned through
painful experience to be suspicious of performing "console"
(and sometimes even file output) during tk event processing.
In the past this has lead to some lockups and crashes. That
is why I disabled logging. Unfortunately logging in this case
really doesn't seem to reveal much but here you have it
anyway in the .txt file.
Thanks,
Roy Terry
- more -
I tried "standard" versions of pop3.tcl
< # RCS: @(#) $Id: pop3.tcl,v 1.25 2003/04/11 20:07:24
andreas_kupries Exp $
---
> # RCS: @(#) $Id: pop3.tcl,v 1.21 2002/10/14 19:17:23
andreas_kupries Exp $
and they failed identically.
The saved output from tkcon is attached. and I 've added a
note at the bottom of it. I've also attached the program files
I used to execute the test with my personal server
information deleted.
Application program for pop3 test
log:: and tkcon captured with note at end