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

Changes by: Marcus Brinkmann <[EMAIL PROTECTED]>
Date: Sun 08/17/2003 at 00:25 (Europe/Berlin)

            What     | Removed                   | Added
---------------------------------------------------------------------------
              Status | Closed                    | Open
          Size (loc) | Low <30                   | Medium 30 - 200


------------------ Additional Follow-up Comments ----------------------------
The patch #1633 has been reverted.  See the comment in there why and what could be 
done alternatively to fix this.




=================== 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:  Open                         Reproducibility:  Every Time          
Size (loc):  Medium 30 - 200          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: Sun 08/17/2003 at 00:25       By: marcus
The patch #1633 has been reverted.  See the comment in there why and what could be 
done alternatively to fix this.


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



_______________________________________________
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd

Reply via email to