GNU bug report logs - #1107
23.0.60; Emacs --daemon crashes when emacsclient tries to establish a connection on OS X

Previous Next

Packages: emacs, ns;

Reported by: William Farrington <wfarr <at> gatech.edu>

Date: Tue, 7 Oct 2008 13:45:03 UTC

Severity: normal

Tags: patch

Merged with 1500

Done: Adrian Robert <adrian.b.robert <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


Message #36 received at 1107 <at> emacsbugs.donarmstrong.com (full text, mbox):

From: Adrian Robert <adrian.b.robert <at> gmail.com>
To: Dan Nicolaescu <dann <at> ics.uci.edu>
Cc: 1107 <at> debbugs.gnu.org
Subject: Re: #1107 - 23.0.60; Emacs --daemon crashes when emacsclient tries to establish a connection on OS X - Emacs bug report logs
Date: Tue, 25 Nov 2008 15:08:31 -0500
OK, it seems that the NS GUI stuff cannot be used in a child process  
from fork():

http://developer.apple.com/ReleaseNotes/CoreFoundation/CoreFoundation.html

(search for "fork"):

> Due to the behavior of fork(), CoreFoundation cannot be used on the  
> child-side of fork(). If you fork(), you must follow that with an  
> exec*() call of some sort, and you should not use CoreFoundation  
> APIs within the child, before the exec*().

I put in a really ugly hack that calls execve() in the child after the  
fork (which then means the daemonization has to be short-circuited the  
second time), and this works in all respects except:

The emacsclient must be given "--socket-name /tmp/emacs503/server" to  
find the server.  Else it gives "No socket or alternate editor."

On the other hand, if I start emacs -Q and run 'server-start', this  
argument is NOT needed, and furthermore if it IS given it, it fails  
with "connect: Connection refused".

Any insight into what is happening here?





This bug report was last modified 15 years and 190 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.