GNU bug report logs - #5723
23.1.94; make-network-process and emacs hangs

Previous Next

Package: emacs;

Reported by: Leo <sdl.web <at> gmail.com>

Date: Mon, 15 Mar 2010 16:02:01 UTC

Severity: normal

Done: YAMAMOTO Mitsuharu <mituharu <at> math.s.chiba-u.ac.jp>

Bug is archived. No further changes may be made.

Full log


Message #26 received at 5723 <at> debbugs.gnu.org (full text, mbox):

From: YAMAMOTO Mitsuharu <mituharu <at> math.s.chiba-u.ac.jp>
To: Leo <sdl.web <at> gmail.com>
Cc: 5723 <at> debbugs.gnu.org, Helmut Eller <eller.helmut <at> gmail.com>,
	YAMAMOTO Mitsuharu <mituharu <at> math.s.chiba-u.ac.jp>
Subject: Re: bug#5723: 23.1.94; make-network-process and emacs hangs
Date: Thu, 18 Mar 2010 10:57:17 +0900
>>>>> On Wed, 17 Mar 2010 12:01:16 +0000, Leo <sdl.web <at> gmail.com> said:

>> I guess OP's case is about `connect' rather than `getaddrinfo'.
>> 
>> http://lists.gnu.org/archive/html/emacs-devel/2009-08/msg00148.html
>> 
>> Leo, can you check where it blocks (using GDB), and whether giving
>> --without-sync-input as a configure option changes the situation
>> (using the X11 build, preferably)?

> With this option and build emacs with X11, I can't start the gui
> version, getting this error:

> Xlib: unexpected async reply (sequence 0x5c)!

> Starting emacs with emacs -nw I can quit with C-g nicely.

> I have no luck with --with-mac, C-g still can not stop the process.

The Carbon port and its descendants use polling with SIGALRM to check
whether C-g is pressed.  The systems without SIGIO (such as Solaris 8)
work similarly even with X11.  If your case blocks at `connect', then
it can't be quit with C-g regardless of SYNC_INPUT on those
ports/systems, because atimer is turned off during the `connect' call.

      immediate_quit = 1;
      QUIT;

      /* This turns off all alarm-based interrupts; the
	 bind_polling_period call above doesn't always turn all the
	 short-interval ones off, especially if interrupt_input is
	 set.

	 It'd be nice to be able to control the connect timeout
	 though.  Would non-blocking connect calls be portable?

	 This used to be conditioned by HAVE_GETADDRINFO.  Why?  */

      turn_on_atimers (0);

      ret = connect (s, lres->ai_addr, lres->ai_addrlen);
      xerrno = errno;

      turn_on_atimers (1);

Again, could you check if it actually blocks at `connect', using GDB?

				     YAMAMOTO Mitsuharu
				mituharu <at> math.s.chiba-u.ac.jp




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

Previous Next


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