Menu

#373 pop3::top Hangs under wish/tkcon

open
pop3 (21)
5
2003-09-30
2003-09-30
Roy E Terry
No

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

Discussion

  • Roy E Terry

    Roy E Terry - 2003-09-30

    script demo's hang and cpu consumption

     
  • Roy E Terry

    Roy E Terry - 2003-10-02

    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.

     
  • Andreas Kupries

    Andreas Kupries - 2003-10-21

    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.

     
  • Roy E Terry

    Roy E Terry - 2003-10-31

    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.

     
  • Roy E Terry

    Roy E Terry - 2003-10-31

    Application program for pop3 test

     
  • Roy E Terry

    Roy E Terry - 2003-10-31

    log:: and tkcon captured with note at end