Tcl Source Code

View Ticket
Login
Ticket UUID: 219142
Title: bug in bgerror: should use Tcl_GetCommandInfo
Type: Bug Version: obsolete: 8.0.3
Submitter: nobody Created on: 2000-10-26 05:02:16
Subsystem: 02. Event Loops Assigned To: msofer
Priority: 6 Severity:
Status: Closed Last Modified: 2001-12-11 03:31:49
Resolution: Fixed Closed By: msofer
    Closed on: 2001-12-10 20:31:48
Description:
OriginalBugID: 750 Bug
Version: 8.0.3
SubmitDate: '1998-10-22'
LastModified: '2000-01-23'
Severity: MED
Status: Assigned
Submitter: admin
ChangedBy: hobbs
RelatedBugIDs: 3998 2577 2136
OS: All
FixedDate: '2000-10-25'
FixedInVersion: NA
ClosedDate: '2000-10-25'


Name: Paul Duffin

Tcl_BackgroundError evaluates bgerror in the global context. If that
returns an error then it generates the message. To determine whether
bgerror is a valid command it compares the interp result with a
particular string and if it matches then bgerror is not defined, else
bgerror generated an error. In the first case it just writes out what
the original error was, in the second case it writes out both the
original error and the new error (as above).  Unfortunately the string
it tests against is not

invalid command name "bgerror"
but
"bgerror" is an invalid command name or ambiguous abbreviation

which I presume used to be the error returned when a command did not
exist but the error has changed.

It should really use Tcl_GetCommandInfo or something similar to check
whether bgerror is defined.

tclEvent.c:HandleBgErrors is where the problem is, but this has
other problems that need resolving (see related reports) at the same time. 
-- 01/23/2000 hobbs
User Comments: msofer added on 2001-12-11 03:31:49:

File Added - 14469: bgerror.patch

msofer added on 2001-12-11 03:31:48:
Logged In: YES 
user_id=148712

Single loc fix and test committed.

kennykb added on 2001-12-11 03:20:24:
Logged In: YES 
user_id=99768

Donal's not entirely right here.  The stack trace of the original error gets lost.

dkf added on 2000-12-03 01:54:38:
OTOH, it is not completely disastrous though.  All you get is a complaint about the lack of a bgerror *and* a report of the original message as well...

dkf added on 2000-11-19 17:48:52:
Ought to investigate further, but the problem will only show up when you've not got a bgerror command defined, and that's usually bad practise when you're using the event loop.  Still, fixing this really ought to be a priority.

Attachments: