Ticket #2870 (closed merge: fixed)

Opened 4 years ago

Last modified 4 years ago

User signals are not blocked before 'fork' in runInteractiveProcess

Reported by: dsh Owned by: igoo
Priority: high Milestone: 6.10.2
Component: libraries/process Version: 6.10.1
Keywords: threaded runInteractiveProcess Cc:
Operating System: Unknown/Multiple Architecture: x86_64 (amd64)
Type of failure: Difficulty: Unknown
Test Case: Blocked By:
Blocking: Related Tickets:

Description

Hello,

It is possible that the parent process handles user-defined interrupts for the child process. IOManager pipe and generic_handler is inherited in the child process. Pipe and generic_handler are used in threaded RTS.

Although the race window before 'exec' is small.

Regards,
Dmitry

Attachments

patch Download (0.7 KB) - added by dsh 4 years ago.

Change History

Changed 4 years ago by dsh

Changed 4 years ago by igloo

  • priority changed from normal to high
  • difficulty set to Unknown
  • milestone set to 6.10.2

Thanks for the patch! We'll take a look for 6.10.2.

Changed 4 years ago by simonmar

  • owner set to simonmar

Changed 4 years ago by simonmar

  • owner changed from simonmar to igoo
  • type changed from bug to merge

Fixed. Three patches are required, first ghc:

Thu Feb 19 03:34:18 PST 2009  Simon Marlow <marlowsd@gmail.com>
  * Export blockUserSignals and unblockUserSignals (needed for #2870)

secondly for libraries/process:

Thu Feb 19 04:32:35 PST 2009  Simon Marlow <marlowsd@gmail.com>
  * Fix #2870: User signals are not blocked before 'fork' in runInteractiveProcess

and finally, for libraries/base, this isn't strictly necessary but I think it's prudent:

Thu Feb 19 03:42:17 PST 2009  Simon Marlow <marlowsd@gmail.com>
  * Set the IO manager pipe descriptors to FD_CLOEXEC

Changed 4 years ago by igloo

  • status changed from new to closed
  • resolution set to fixed

All 3 merged.

Note: See TracTickets for help on using tickets.