From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Subject: bug#23194: Benign error in installation image: "stty: standard input: Input/output error" Date: Mon, 04 Apr 2016 17:10:20 +0200 Message-ID: <8760vxcsv7.fsf@gnu.org> References: <87lh4v7m5c.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:53038) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1an69i-0007xT-57 for bug-guix@gnu.org; Mon, 04 Apr 2016 11:11:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1an69e-0004CI-CA for bug-guix@gnu.org; Mon, 04 Apr 2016 11:11:06 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:54118) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1an69e-0004CE-9I for bug-guix@gnu.org; Mon, 04 Apr 2016 11:11:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1an69e-0003pO-6B for bug-guix@gnu.org; Mon, 04 Apr 2016 11:11:02 -0400 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <87lh4v7m5c.fsf@gmail.com> (Chris Marusich's message of "Sat, 02 Apr 2016 14:09:51 -0700") List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org To: Chris Marusich Cc: 23194@debbugs.gnu.org --=-=-= Content-Type: text/plain Chris Marusich skribis: > In the installation image for GuixSD v0.10.0, I get some I/O errors on > the terminal just before/during/after the MOTD is displayed: > > "stty: standard input: Input/output error" With a patch like this, the issue vanishes: --=-=-= Content-Type: text/x-patch Content-Disposition: inline diff --git a/gnu/services/base.scm b/gnu/services/base.scm index b168543..aa34aa8 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -482,6 +482,7 @@ strings or string-valued gexps." (let ((pid (primitive-fork))) (case pid ((0) + (sleep 1) (close-fdes 0) (dup2 (open-fdes #$tty O_RDONLY) 0) (close-fdes 1) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable This hints at a race condition. I *think* that the problem is that at the time the =E2=80=98console-font-X= =E2=80=99 service starts and invokes =E2=80=98unicode_start=E2=80=99, it may be that = mingetty hasn=E2=80=99t opened the tty yet. Indeed, the =E2=80=98term-ttyX=E2=80=99 services are considered started as = soon as mingetty is running, but there=E2=80=99s a chance that it=E2=80=99s running= and has not opened the tty yet. I think we should use another implementation that doesn=E2=80=99t have this problem (agetty?). Given that mingetty.c is 400 lines, we might as well do it in Scheme. Ludo=E2=80=99. --=-=-=--