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. |