public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: Ken Brown <kbrown@cornell.edu>
To: cygwin@cygwin.com
Subject: Re: (call-process ...) hangs in emacs
Date: Thu, 07 Aug 2014 18:54:00 -0000	[thread overview]
Message-ID: <53E3CB46.1020909@cornell.edu> (raw)
In-Reply-To: <53E39BAD.3010004@redhat.com>

On 8/7/2014 11:30 AM, Eric Blake wrote:
> On 08/07/2014 05:51 AM, Ken Brown wrote:
>>
>> I think I found the problem with NORMAL mutexes.  emacs calls
>> pthread_atfork after initializing the mutexes, and the resulting
>> 'prepare' handler locks the mutexes.  (The parent and child handlers
>> unlock them.)  So when emacs calls fork, the mutexes are locked, and
>> shortly thereafter the Cygwin DLL calls calloc, leading to a deadlock.
>> Here's a gdb backtrace showing the sequence of calls:
>
> Arguably, that's an upstream bug in emacs.  POSIX has declared
> pthread_atfork to be fundamentally useless; it is broken by design,
> because you cannot use it for anything that is not async-signal-safe
> without risking deadlock.  And (except for sem_post()), NONE of the
> standardized locking functions are async-signal-safe.
>
> http://austingroupbugs.net/view.php?id=858
>
> That said, it would still be nice to support this, since even though the
> theory says it is broken, there are still lots of (broken)
> programs/libraries still trying to use it.

So what do you think emacs should do instead of using pthread_atfork? 
Or is it better to just remove it?  I don't know how likely it is that 
this would cause a problem.

Ken

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

  reply	other threads:[~2014-08-07 18:54 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-01 12:51 Angelo Graziosi
2014-08-01 13:17 ` Peter Hull
2014-08-01 13:32   ` Corinna Vinschen
2014-08-04  1:03     ` Ken Brown
2014-08-04  8:00       ` Corinna Vinschen
2014-08-04 13:34         ` Ken Brown
2014-08-04 13:45           ` Corinna Vinschen
2014-08-05 12:21             ` Ken Brown
2014-08-05 13:33               ` Peter Hull
2014-08-05 13:59                 ` Peter Hull
2014-08-05 13:58               ` Corinna Vinschen
2014-08-05 17:55                 ` Ken Brown
2014-08-05 18:40                   ` Corinna Vinschen
2014-08-07 11:52                     ` Ken Brown
2014-08-07 12:51                       ` Corinna Vinschen
2014-08-07 18:54                         ` Ken Brown
2014-08-07 15:30                       ` Eric Blake
2014-08-07 18:54                         ` Ken Brown [this message]
2014-08-07 21:42                           ` Eric Blake
2014-08-08 13:27                             ` Ken Brown
2014-08-08 15:39                               ` Peter Hull
2014-08-09  1:38                                 ` Ken Brown
2014-08-18 12:28                               ` Ken Brown
2014-08-18 14:58                                 ` Peter Hull
2014-08-18 15:03                                   ` Larry Hall (Cygwin)
2014-08-25 19:00                                 ` Ken Brown
2014-08-26  9:13                                   ` Peter Hull
2014-08-26 18:55                                   ` Achim Gratz
2014-08-26 22:13                                     ` Ken Brown
2014-08-27  8:42                                       ` Corinna Vinschen
2014-08-27 12:53                                         ` Ken Brown
2014-08-27 13:47                                           ` Corinna Vinschen
2014-08-27 14:40                                             ` Eric Blake
2014-08-27 17:15                                               ` Ken Brown
2014-08-27 15:15                                           ` Achim Gratz
2014-08-28  7:25                                             ` Achim Gratz
2014-08-28  9:55                                               ` Corinna Vinschen
2014-08-28 13:18                                                 ` Corinna Vinschen
2014-08-28 15:04                                                   ` Achim Gratz
2014-08-28 15:10                                                     ` Corinna Vinschen
2014-08-28 15:27                                                   ` Achim Gratz
2014-08-29  9:59                                                     ` Achim Gratz
2014-08-29 11:09                                                       ` Corinna Vinschen
2014-08-29 18:08                                                         ` Ken Brown
2014-08-29 19:23                                                           ` Achim Gratz
2014-08-29 19:36                                                             ` Ken Brown
2014-08-29 20:00                                                               ` Achim Gratz
2014-08-29 21:38                                                                 ` Ken Brown
2014-08-29 20:05                                                               ` Andrey Repin
2014-08-29 21:43                                                               ` Corinna Vinschen
2014-08-29 23:35                                                                 ` Andrey Repin
2014-09-01 11:47                                                                   ` Corinna Vinschen
2014-09-01 11:57                                                       ` Corinna Vinschen
2014-09-01 17:38                                                         ` Achim Gratz
2014-09-02  8:32                                                           ` Corinna Vinschen
2014-09-02 17:29                                                             ` Achim Gratz
2014-09-02 19:19                                                               ` Corinna Vinschen
2014-09-02 19:42                                                                 ` Achim Gratz
2014-09-02 20:09                                                                   ` Corinna Vinschen
2014-09-02 20:23                                                                     ` Achim Gratz
2014-09-03 13:04                                                                       ` Corinna Vinschen
2014-09-03 17:59                                                                         ` Achim Gratz
2014-08-28 10:34                                             ` Eric Blake
2014-08-27 21:05                                         ` Andrey Repin
2014-08-28 10:01                                           ` Corinna Vinschen
2014-08-28 13:35                                             ` Andrey Repin
2014-08-28 14:10                                               ` Corinna Vinschen
2014-08-28 17:05                                                 ` ACL behavior in Cygwin // " Andrey Repin
2014-08-28 18:29                                                   ` Achim Gratz
2014-08-29  8:29                                                   ` Corinna Vinschen
2014-08-28 18:38                                                 ` Achim Gratz
2014-08-28 19:50                                                   ` Andrey Repin
2014-08-06  2:30                   ` Katsumi Yamaoka
2014-08-06  8:48                     ` Corinna Vinschen
2014-08-06 23:41                       ` Katsumi Yamaoka
2014-08-07  0:35                         ` Andrey Repin
2014-08-04  8:05       ` Peter Hull
2014-08-04 13:36         ` Ken Brown
  -- strict thread matches above, loose matches on Subject: below --
2014-08-06  0:15 Angelo Graziosi
2014-07-31 14:51 Peter Hull
2014-07-31 17:35 ` Ken Brown
2014-08-01  7:36 ` Peter Hull
2014-08-01 10:22 ` Katsumi Yamaoka
2014-08-01 11:33   ` Peter Hull

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=53E3CB46.1020909@cornell.edu \
    --to=kbrown@cornell.edu \
    --cc=cygwin@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).