Bug 478961
Summary: | [RHEL5] tcl threads support implementation can cause scripts to hang | ||||||
---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 5 | Reporter: | Tomas Smetana <tsmetana> | ||||
Component: | tcl | Assignee: | Jaroslav Škarvada <jskarvad> | ||||
Status: | CLOSED ERRATA | QA Contact: | Martin Kyral <mkyral> | ||||
Severity: | medium | Docs Contact: | |||||
Priority: | high | ||||||
Version: | 5.2 | CC: | fhirtz, jentrena, jskarvad, mkyral, rvokal, sforsber, tao | ||||
Target Milestone: | rc | Keywords: | Reopened | ||||
Target Release: | --- | ||||||
Hardware: | All | ||||||
OS: | Linux | ||||||
Whiteboard: | |||||||
Fixed In Version: | tcl-8.4.13-5.el5 | Doc Type: | Bug Fix | ||||
Doc Text: |
Previously the combination of threads and fork in tcl scripts could cause the tcl script to hang. This is caused by poor implementation of threading in tcl. Currently it is not possible to drop the threading or rewrite it completely (it would break more things). As the fix we provide both threading and non-threading version of tcl that is switchable via alternatives (e.g. 64 bit tcl version on x86_64 by command: alternatives --config tcl.x86_64). Users who need to use fork in their tcl scripts and do not need threading support are now able to switch to the non-threading version of tcl.
|
Story Points: | --- | ||||
Clone Of: | Environment: | ||||||
Last Closed: | 2013-01-08 04:51:45 UTC | Type: | --- | ||||
Regression: | --- | Mount Type: | --- | ||||
Documentation: | --- | CRM: | |||||
Verified Versions: | Category: | --- | |||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
Cloudforms Team: | --- | Target Upstream Version: | |||||
Embargoed: | |||||||
Bug Depends On: | |||||||
Bug Blocks: | 743405, 807971 | ||||||
Attachments: |
|
Description
Tomas Smetana
2009-01-06 09:27:08 UTC
Created attachment 328259 [details]
GDB backtrace of the hung expect interpreter.
This request was evaluated by Red Hat Product Management for inclusion, but this component is not scheduled to be updated in the current Red Hat Enterprise Linux release. If you would like this request to be reviewed for the next minor release, ask your support representative to set the next rhel-x.y flag to "?". Event posted on 01-05-2010 03:13pm EST by fhirtz Note, that the test workaround of a rebuild without threading being enabled does correct the demonstration case here for them. This obviously isn't a priority, but it's still something that they'd like to see addressed in the context of the release. This event sent from IssueTracker by fhirtz issue 242872 This is well known issue arising from combination of threads and fork. Rebuilding without threads (as many other distros including Fedora done) fixes this issue but could also affect customers relying on threads. Fixing this in TCL needs complex rewrite and still wasn't done by upstream. The possible solutions: 1) Provide separate builds of TCL with and without threads - customer choose if she/he needs threads or fork. 2) Rebuild without threads - it could affect customers relying on threads. 3) Try to fix it - it requires a lot of time and complex modifications that would probably introduce bugs and changes in behaviour. 4) Reporter can avoid the hang by using of C wrapper for starting daemons instead of fork in "expect". The client in this case is going with option 1) as they're not needing threading. It seems that 1) is the most prudent option since it doesn't carry risks aside from requiring a bit of explaining on our side. Hello, this bug seems to have even more ugly outcomes (e.g., the "wait" command doesn't return upon the child process' termination). We have more customers being hit by this problem, so please reconsider the inclusion of the fix in the next minor release. I think the proposal 1 from the comment #7 sounds like a safe enough option. Thank you and regards. Development Management has reviewed and declined this request. You may appeal this decision by reopening this request. This request was evaluated by Red Hat Product Management for inclusion in the current release of Red Hat Enterprise Linux. Because the affected component is not scheduled to be updated in the current release, Red Hat is unfortunately unable to address this request at this time. Red Hat invites you to ask your support representative to propose this request, if appropriate and relevant, in the next release of Red Hat Enterprise Linux. This request was evaluated by Red Hat Product Management for inclusion in the current release of Red Hat Enterprise Linux. Because the affected component is not scheduled to be updated in the current release, Red Hat is unfortunately unable to address this request at this time. Red Hat invites you to ask your support representative to propose this request, if appropriate and relevant, in the next release of Red Hat Enterprise Linux. This request was evaluated by Red Hat Product Management for inclusion in the current release of Red Hat Enterprise Linux. Because the affected component is not scheduled to be updated in the current release, Red Hat is unfortunately unable to address this request at this time. Red Hat invites you to ask your support representative to propose this request, if appropriate and relevant, in the next release of Red Hat Enterprise Linux. This request was evaluated by Red Hat Product Management for inclusion in a Red Hat Enterprise Linux release. Product Management has requested further review of this request by Red Hat Engineering, for potential inclusion in a Red Hat Enterprise Linux release for currently deployed products. This request is not yet committed for inclusion in a release. Technical note added. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. New Contents: Previously the combination of threads and fork in tcl scripts could cause the tcl script to hang. This is caused by poor implementation of threading in tcl. Currently it is not possible to drop the threading or rewrite it completely (it would break more things). As the fix we provide both threading and non-threading version of tcl that is switchable via alternatives (e.g. 64 bit tcl version on x86_64 by command: alternatives --config tcl.x86_64). Users who need to use fork in their tcl scripts and do not need threading support are now able to switch to the non-threading version of tcl. Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHSA-2013-0122.html |