bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #3939] rpctrace:d program hangs when signal that terminates or susp


From: nobody
Subject: [bug #3939] rpctrace:d program hangs when signal that terminates or suspends it is sent
Date: Sat, 09 Aug 2003 12:51:13 -0400
User-agent: Mozilla/5.0 (X11; U; Linux i686) Gecko/20030714 Galeon/1.3.5 Debian/1.3.5.20030714-2

=================== BUG #3939: LATEST MODIFICATIONS ==================
http://savannah.gnu.org/bugs/?func=detailbug&bug_id=3939&group_id=30

Changes by: Marcus Brinkmann <marcus@gnu.org>
Date: Sat 08/09/2003 at 18:51 (Europe/Berlin)

            What     | Removed                   | Added
---------------------------------------------------------------------------
            Category | None                      | Hurd Interfaces
          Resolution | None                      | Fixed
         Assigned to | None                      | marcus
              Status | Open                      | Closed
     Reproducibility | None                      | Every Time
          Size (loc) | None                      | Low <30
              Effort | 0.00                      | 0.50


------------------ Additional Follow-up Comments ----------------------------
Thanks for the report.  This has been fixed by Patch #1633, which is now in CVS.




=================== BUG #3939: FULL BUG SNAPSHOT ===================


Submitted by: ogi                     Project: The GNU Hurd                 
Submitted on: Tue 06/10/2003 at 16:24
Category:  Hurd Interfaces            Severity:  5 - Major                  
Priority:  None                       Bug Group:  None                      
Resolution:  Fixed                    Assigned to:  marcus                  
Originator Name:                      Originator Email:                     
Status:  Closed                       Reproducibility:  Every Time          
Size (loc):  Low <30                  Effort:  0.50                         

Summary:  rpctrace:d program hangs when signal that terminates or suspends it 
is sent

Original Submission:  All RPC communication of a rpctrace:d programs is catched 
by rpctrace.  When signal that terminates or suspends the traced task is sent, 
the special thread of the traced task that handles signals calls RPC 
proc_dostop_request to the proc server.  This call, by design, suspends all 
threads of the traced task except the one that handles the signal.  
Unfortunately, actually all the threads are suspended, thus making the whole 
process to hang.  Moreover, when a key is pressed the whole terminal hangs.  
This is probably because the traced task is no longer able to handle any input.

So, why proc_dostop_request can't recognize the signal thread of the traced 
task?  Because proc_dostop_request receives 2 arguments: task_t process and 
thread_t contthread.  The function gets all process threads and compare them to 
contthread.  But contthread is changed by rpctrace!  That's why all threads are 
suspended.

The easiest solution is to add special case to rpctrace processing.  Though it 
is questionable whether this is the right thing to do.

Follow-up Comments
*******************

-------------------------------------------------------
Date: Sat 08/09/2003 at 18:51       By: marcus
Thanks for the report.  This has been fixed by Patch #1633, which is now in CVS.



CC list is empty


No files currently attached


For detailed info, follow this link:
http://savannah.gnu.org/bugs/?func=detailbug&bug_id=3939&group_id=30

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/





reply via email to

[Prev in Thread] Current Thread [Next in Thread]