From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#47596: File descriptor error when exiting emacs on android 11 Date: Mon, 05 Apr 2021 15:50:48 +0300 Message-ID: <838s5wdhef.fsf@gnu.org> References: <83im51deye.fsf@gnu.org> <730dad3a54f0f53b22e9603879e949b60f5b2c00.camel@grimler.se> <191e2295b88384adf0e7cc1e3dc84cf8f37eb973.camel@grimler.se> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="37806"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 47596@debbugs.gnu.org To: Henrik Grimler Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Apr 05 14:51:09 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lTOhB-0009iz-5h for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 05 Apr 2021 14:51:09 +0200 Original-Received: from localhost ([::1]:47472 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lTOh9-0001Eb-PU for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 05 Apr 2021 08:51:07 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:41320) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lTOh4-0001ET-5d for bug-gnu-emacs@gnu.org; Mon, 05 Apr 2021 08:51:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:53941) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lTOh3-0000lO-UM for bug-gnu-emacs@gnu.org; Mon, 05 Apr 2021 08:51:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lTOh3-0003HR-TH for bug-gnu-emacs@gnu.org; Mon, 05 Apr 2021 08:51:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 05 Apr 2021 12:51:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47596 X-GNU-PR-Package: emacs Original-Received: via spool by 47596-submit@debbugs.gnu.org id=B47596.161762706012602 (code B ref 47596); Mon, 05 Apr 2021 12:51:01 +0000 Original-Received: (at 47596) by debbugs.gnu.org; 5 Apr 2021 12:51:00 +0000 Original-Received: from localhost ([127.0.0.1]:37254 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lTOh2-0003HB-Br for submit@debbugs.gnu.org; Mon, 05 Apr 2021 08:51:00 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:48294) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lTOh0-0003Gz-Nw for 47596@debbugs.gnu.org; Mon, 05 Apr 2021 08:50:59 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:57783) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lTOgu-0000e2-JL; Mon, 05 Apr 2021 08:50:52 -0400 Original-Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:4422 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1lTOgt-0004PQ-TX; Mon, 05 Apr 2021 08:50:52 -0400 In-Reply-To: <191e2295b88384adf0e7cc1e3dc84cf8f37eb973.camel@grimler.se> (message from Henrik Grimler on Mon, 05 Apr 2021 10:14:10 +0200) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:203589 Archived-At: > From: Henrik Grimler > Cc: 47596@debbugs.gnu.org > Date: Mon, 05 Apr 2021 10:14:10 +0200 > > Compiling this, on any optimisation level, is enough to trigger the > error: > > ``` > #include > int main() > { > fdopen (2, "w"); > fclose (stderr); > } > ``` Any idea why? It makes no sense to me, and the above is an entirely valid program, AFAICT. > In emacs fdopen is run in init_standard_fds, where we have > > ``` > [...] > > force_open (STDERR_FILENO, O_RDONLY); > > /* Set buferr if possible on platforms defining _PC_PIPE_BUF, as > they support the notion of atomic writes to pipes. */ > #ifdef _PC_PIPE_BUF > buferr = fdopen (STDERR_FILENO, "w"); > if (buferr) > setvbuf (buferr, NULL, _IOLBF, 0); > #endif > } > ``` This just creates a copy of stderr that has special buffering. Again, entirely valid for a C program to do that. > so I suppose there is either some very fundamental issue with  > `fdopen (STDERR_FILENO, "w")` here, or the file descriptor sanitizer on > android is broken. Likely the latter, so I'm reluctant to make any changes in Emacs until the issue you opened against Android gets some response that makes sense. > If I avoid that part of init_standard_fds, i.e. change the ifdef to > something like `#if defined(_PC_PIPE_BUF) && !defined(__ANDROID__)`, I > get an emacs that seem to fully work on android. Feel free to make such changes in your copy, but I'd prefer not to change Emacs until the root cause behind these weird problems becomes clear.