Bug 971352
Summary: | strace hangs while tracing parent+child communicating via pipe | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | Jan Stancek <jstancek> | ||||||||
Component: | strace | Assignee: | Jeff Law <law> | ||||||||
Status: | CLOSED CURRENTRELEASE | QA Contact: | Michael Petlan <mpetlan> | ||||||||
Severity: | unspecified | Docs Contact: | |||||||||
Priority: | unspecified | ||||||||||
Version: | 7.0 | CC: | jarod, jburke, kmcmartin, mpetlan, ohudlick, pfrankli, pkis | ||||||||
Target Milestone: | beta | ||||||||||
Target Release: | --- | ||||||||||
Hardware: | Unspecified | ||||||||||
OS: | Unspecified | ||||||||||
Whiteboard: | |||||||||||
Fixed In Version: | strace-4.8-3.el7 | Doc Type: | Bug Fix | ||||||||
Doc Text: | Story Points: | --- | |||||||||
Clone Of: | |||||||||||
: | 992965 (view as bug list) | Environment: | |||||||||
Last Closed: | 2014-06-13 10:56:57 UTC | Type: | Bug | ||||||||
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: | 987469, 992965 | ||||||||||
Attachments: |
|
Description
Jan Stancek
2013-06-06 10:49:49 UTC
Created attachment 757606 [details]
strace_hangs.c
Created attachment 760168 [details]
experimental patch v1
With this patch on top of strace-4.7-10.el7.x86_64 I can no longer trigger the hang.
Created attachment 770864 [details]
experimental patch 2 v1 (on top of strace-4.8-2.el7)
One more issue, that caught my eye is that register data is updated in collect_stopped_tcbs() in every iteration of while loop and then same (last) register data is used for all tcbs processed in handle_stopped_tcbs().
Trivial program doing just fork() returned sporadically 0 from clone():
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f3068aeca10) = 0
Jan, That looks like a pretty reasonable change; Denys made a change to when and how strace retrieves the register file. It's pretty obvious that we're using stale data. I'm on the road right now, I'll integrate your patch into rhel7 & dts shortly. Thanks! Tested with strace-4.8-7.el7 and no hang occurred. VERIFIED. This request was resolved in Red Hat Enterprise Linux 7.0. Contact your manager or support representative in case you have further questions about the request. |