Tcl Source Code

View Ticket
Login
Ticket UUID: 414d10346bef85d8b89e64eea146d6b336f77ea4
Title: tcl 8.5.15/8.6.1(threaded build) hangs in exec on HP-UX
Type: Bug Version:
Submitter: aku Created on: 2013-10-28 17:44:41
Subsystem: 01. Notifier Assigned To: jan.nijtmans
Priority: 5 Medium Severity: Critical
Status: Closed Last Modified: 2014-04-04 15:06:38
Resolution: Fixed Closed By: jan.nijtmans
    Closed on: 2014-04-04 15:06:38
Description:
In recent weeks the AS Tcl 8.5/6 builds on our HPUX boxing were
failing, with the just-built tclsh hanging itself up when trying to

    set foo [exec uname -a]

Inspection of the process list did not show the uname child, just the
hanging tclsh. Concluded that it hangs either just before spawning the
child, or after the child has terminated and is gone.

Tcl 8.5/6 are built with threads (that should have been a hint, in hindsight).

This problem is the reason why the recent AT CE releases (8.5.15.0,
8.6.1.0) do not have HPUX in their line up.

Today I managed to claw enough cycles from having to do regular donuts
to bisect the issue.

The attached uname.tcl is my test script. Printing OK when GODD, and
hanging after the UNAME= output when bad.
Note that after killing the process with ^C it is still necessary to
kill -9 it, ^C does not remove it entirely.

The attached bitest.sh is the code to build Tcl from source, with my
specific directory layout for such work,
At the end it runs the uname.tcl

Bisection results:

% f bi log
  1 BAD  2013-10-22 18:55:02 e077937cf04d43d2  -- head core-8-5-0-branch
  2 GOOD 2007-12-19 21:32:06 39e99a2de45c6434  -- tag core-8-5-0
  3 GOOD 2010-11-01 19:39:23 4150f5bace63c09e
  4 GOOD 2012-06-05 15:40:56 7581260f8ea6e15f
  5 GOOD 2013-01-30 18:58:37 e7ef315c2fb61d08
  6 GOOD 2013-05-01 21:13:03 e7d7fe409abbf3f1
  7 GOOD 2013-07-08 18:55:23 728fb2f25bda6df0
  8 BAD  2013-09-19 14:06:46 3a3f75ac5a6d5f72
  9 BAD  2013-08-15 19:55:26 f3fac8ede1a102da
 10 GOOD 2013-07-29 09:29:16 334ab96e5ee173a0
 11 BAD  2013-08-11 14:41:10 f04e2881d307a743
 12 BAD  2013-08-05 21:58:21 0107005970cef5f6
 13 BAD  2013-08-01 12:38:04 02909e227fb95f54

% f bi vlist
2013-08-01 12:38:04 02909e227fb95f54 BAD CURRENT
2013-07-29 09:29:16 334ab96e5ee173a0 GOOD

That is
    http://core.tcl.tk/tcl/info/02909e227fb95f54

Glancing over it, it seems to be pthread-at-fork support going wrong
somehow in combination with [exec].
See what I meant with 'compiled for threads should have been a hint' ?!

Going back to donuts I plan to investigate a bit more over next week.
I.e. getting a detailed look where it hangs because of this change.

In the mean time this mail is a general alert to various maintainer
about the issue, in case you have an HPUX box (11.00) and spare time
as well, are the committer, or experience with threads (I hope).
User Comments: jan.nijtmans added on 2013-11-11 12:27:00:

Related: [1470152]


jan.nijtmans added on 2013-11-11 12:18:09:

Workaround committed to core-8-5-branch [d7c93731e2] and trunk [6ba84ab753].


aku added on 2013-10-28 18:47:10:
Testing Jan's hpux.patch ...
- Fix HPUX symbol to "__hpux".
- Applies cleanly to the current head of core-8-5-0-branch
  (Revision [a803608ed5]).
- Compiles cleanly
- Now the test is GOOD.

So, disabling the entire code is possible and a viable workaround until we have a proper fix.

aku added on 2013-10-28 17:53:14:
Note that the original medium for the main description was a mail to a few people. As such it references a few attached files. While I have now attached the demo script (uname.tcl) here, the other referenced file, the build script bitest.sh will not be attached to this ticket.

Attachments: