Menu

#1489 tkfbox causes error on fork

obsolete: 8.4.3
closed-works-for-me
5
2003-06-03
2003-05-28
No

I think lines 849 and 853 of tkfbox.tcl need a catch
round them (otherwise "configure -state" can be, and
is, called on a label). Anyway, when the catch is
added it fixes the problem and our existing code works
fine again. Was their a change here? Platform is Linux
kernel 2.4.20 (SuSE 8.2 Pro). Seems to work fine when
there are no children.

Discussion

  • Donal K. Fellows

    • assigned_to: hobbs --> dkf
    • status: open --> open-works-for-me
     
  • Donal K. Fellows

    Logged In: YES
    user_id=79902

    I cannot see how that code could be calling 'configure
    -state' on a label other than by memory corruption. If
    there is memory corruption then, alas, all bets are off.
    Since fork() is not used in the Tcl/Tk core except within
    TclpCreateProcess() which has been thoroughly tested over a
    long period of time, I suspect that the fault is elsewhere.
    What code contains the fork()?

     
  • Alan Parslow

    Alan Parslow - 2003-05-29

    Logged In: YES
    user_id=788941

    Our code uses fork (followed by exec etc) - we use multiple processes
    all the time. BTW, we are talking about a mixture of C++ and the C tk
    funcs as well as the scripting stuff. Everything worked absolutely fine
    with all our programs till this release - that's why I wondered whether
    there was a change made here. I just thought others may have this
    problem and this change might help. What harm does the catch do?
    Just ignores a call to configure a label. I doubt it is memory corruption
    as the problem appeared in a lot of different programs in different
    places. It would take a lot of work to check. When you have an object
    which might be one thing or another and an operation on one of them
    will cause an error, isn't it better to check (or catch it)? Anyway, I only
    posted it because others may be pulling their hair out because their
    existing code won't run properly now either. I thought it might help.
    Attached is a log of just one place where it happens.

     
  • Alan Parslow

    Alan Parslow - 2003-05-29

    text file

     
  • Jeffrey Hobbs

    Jeffrey Hobbs - 2003-06-03
    • status: open-works-for-me --> closed-works-for-me
     
  • Jeffrey Hobbs

    Jeffrey Hobbs - 2003-06-03

    Logged In: YES
    user_id=72656

    Are you sure that you are using the correct runtime libs with
    the correct version of Tk? -state is an option for labels, added
    in 8.3 or 8.4.