Received: by 10.223.185.116 with SMTP id b49csp3612398wrg; Tue, 13 Feb 2018 05:08:08 -0800 (PST) X-Google-Smtp-Source: AH8x224/4S5SUC5CqC6C2pHhRbUZFVQZ0j6AeSdhhlwXXVCZ0DVwtf73s766ge056aMwdKh83uQ2 X-Received: by 10.101.92.196 with SMTP id b4mr960103pgt.27.1518527288568; Tue, 13 Feb 2018 05:08:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518527288; cv=none; d=google.com; s=arc-20160816; b=Nv22/8P1z0Dd+Ho2XMtGcHwEH8ItbVoQLKr002cfjPhJpI+PHbQ33JWepm+onl8hmN dox6iZb2OCpODL3j6AlAMeT+XccVTBKXct5bBAn+/+8Zu6bv3AMr1wdORsCP1QtOEKvH C7cMqIp7FEpejWxCLfXnJtyJMtz9gC/6ii4HjyF8gHxmLkVecGDdCDU2ytyiuGqvmWto m901vSvjzN1XP7T9Z3tq8CGPb25g4lGewjEKTEAsO5ga/NpNpnp3heRd4g1Z/IrbQON4 25tYlquxFdM5Idc80AbFjLE5t0r4lmv6pAp6pBVXHkYcXHt4u6i9CCgX6SiqY6bYE+Qn /kLg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=T7wLnQDciUK9zCexH9beC5nIgrhJpTcqldUf3NdiDRU=; b=Vg1XGZOVFWakdtZHAGmsHsX4GPAthQjsag6lwCq+HRe0fWuekFAF2+CcisQ2fGKiFl rVbEOoAdCCwAiQcy0qmLm93SGjmsAVNCCF7uwN2m5STdc0paksH1qnDLW1lXELVSqklN QGEDCxlgTn+nsBJrNYVA0Y4fT/JBWOcUXfamC9fukJAHnWcWtdWsBjprBqcrRSpC/Oux bHoR54BWift/9DIx6Q907bjm2UiSW40I+HQJqT1FFDPYZ08bgaut48WzsleThFElssnq pdRfDZTZcJfMqGg9anMTVoqJ6Mh/ThYsc/glkApPnOqM0Sso0JV7fU/RK1KF3TrfVAnt lhsg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=Xkwf4dRK; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x6-v6si5591794plo.104.2018.02.13.05.07.54; Tue, 13 Feb 2018 05:08:08 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=Xkwf4dRK; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964786AbeBMNHE (ORCPT + 99 others); Tue, 13 Feb 2018 08:07:04 -0500 Received: from mail-ua0-f176.google.com ([209.85.217.176]:41458 "EHLO mail-ua0-f176.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750865AbeBMNHC (ORCPT ); Tue, 13 Feb 2018 08:07:02 -0500 Received: by mail-ua0-f176.google.com with SMTP id d4so6963960uak.8 for ; Tue, 13 Feb 2018 05:07:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=T7wLnQDciUK9zCexH9beC5nIgrhJpTcqldUf3NdiDRU=; b=Xkwf4dRK/AJKPOmbSAkO+ad83L4aa+gWMzoE09o5VZm93jJEECBe/MFbiww0vnzI8V Tlsv+3ghsv9907Zy4YUym/+Ng5EzCNxjmL2n8Q5gfQcxixir9ckFor/aaxoOOqc5Dkfz PGxa3dmTYG6PiBdaCMa4I1k47yVhq+7oFD8PXbWwAMVgcQbxRcNs08PNcW1qi1PTMMLl IfaFZO/y91p1br9CiI/sXhkE2EistpETD5xZOAHUFMDP/gGIr8ASKazI+OwWXE0OIa1n 40m1ekbE/GwKuaZSq94UoPvSXwAPuF+y26glM9prhMeOrQsIeyQR8LHXHv1Dm/kGIb1t 18aw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=T7wLnQDciUK9zCexH9beC5nIgrhJpTcqldUf3NdiDRU=; b=AbSm9Dg7u+oZMu0vkYZ/CPNOXY3Ibz+YCnO/g8Y4WRanghRRhs8P1k8SrXQMpKYygA wIVbjtbTNnTDlApbs5S8zD3FzAYeSA6pn+Wd4ofyHwc8XyQVdscoF1fuyQm2IpY/ybje eiXh4+tL9Ngso8OmzSPv0me34Q3VP1G6YACjLIpZqQeLT02snE0B7c7fD9hZPo2hqX42 ZQWPGU/GU0I1fdpEB9kWv0gTdMK6Rspwsd46bvMM95e5xEU5h4kAJHfKikPkmwpefZHz t1ptt+nJofmVxTDTBZKpMyaQE5/AM8CI1tJoApGfvCCJBThRHsuFMhIw+by5D9SS86di RK0w== X-Gm-Message-State: APf1xPB5YXnktW2UEcHE79H3zxiPwcEDzinKnDOatuaNaG9bmPlYpQjD bf0r/ha51EvxIx7WE3/bTK+6vZjvGQFI1d4rpqk= X-Received: by 10.159.59.100 with SMTP id j36mr202669uah.187.1518527221607; Tue, 13 Feb 2018 05:07:01 -0800 (PST) MIME-Version: 1.0 Received: by 10.103.70.21 with HTTP; Tue, 13 Feb 2018 05:07:01 -0800 (PST) In-Reply-To: <20180213123510.hkbblka6xkosxi36@huvuddator> References: <9d122a3c-b1fe-a9f8-17db-c38f42fdc4b1@gmail.com> <27f3817b-0c92-5f92-e079-078a8b92eab4@eikelenboom.it> <20180213113324.gm6sv37g72gs3qrc@huvuddator> <20180213123510.hkbblka6xkosxi36@huvuddator> From: Ulf Magnusson Date: Tue, 13 Feb 2018 14:07:01 +0100 Message-ID: Subject: Re: Linux 4.16-rc1: regression bisected, Debian kernel package tool make-kpkg stalls indefinitely during kernel build due to commit "kconfig: remove check_stdin()" To: Sander Eikelenboom Cc: Masahiro Yamada , Woody Suwalski , Manoj Srivastava , linux-kernel Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Feb 13, 2018 at 1:35 PM, Ulf Magnusson wrote: > On Tue, Feb 13, 2018 at 12:33:24PM +0100, Ulf Magnusson wrote: >> On Tue, Feb 13, 2018 at 11:00:49AM +0100, Sander Eikelenboom wrote: >> > On 13/02/18 05:09, Masahiro Yamada wrote: >> > > 2018-02-13 12:00 GMT+09:00 Woody Suwalski : >> > >> Sander Eikelenboom wrote: >> > >>> >> > >>> L.S., >> > >>> >> > >>> The Debian kernel-package tool make-kpkg for easy building of upstream >> > >>> kernels on Debian fails with linux 4.16-rc1. >> > >>> >> > >>> The tool (perl script) while invoked with: >> > >>> make-kpkg --initrd --append_to_version -20180212 kernel_image >> > >>> >> > >>> On a git tree with a .config from the previous kernel release, so new >> > >>> KConfig questions have to be asked on new or changed options. >> > >>> >> > >>> The script stalls indefinitely while it seems to be excuting: >> > >>> exec make kpkg_version=13.018+nmu1 -f >> > >>> /usr/share/kernel-package/ruleset/minimal.mk debian >> > >>> APPEND_TO_VERSION=-t440s-20180212 INITRD=YES >> > >>> >> > >>> After using ctrl-c to break out it, i get: >> > >>> ^CFailed to create a ./debian directory: No such file or directory at >> > >>> /usr/bin/make-kpkg line 970. >> > >>> >> > >>> Bisection turned up as culprit: >> > >>> commit d2a04648a5dbc3d1d043b35257364f0197d4d868 >> > >>> kconfig: remove check_stdin() >> > >>> Except silentoldconfig, valid_stdin is 1, so check_stdin() is >> > >>> no-op. >> > >>> oldconfig and silentoldconfig work almost in the same way except >> > >>> that >> > >>> the latter generates additional files under include/. Both ask users >> > >>> for input for new symbols. >> > >>> I do not know why only silentoldconfig requires stdio be tty. >> > >>> $ rm -f .config; touch .config >> > >>> $ yes "" | make oldconfig > stdout >> > >>> $ rm -f .config; touch .config >> > >>> $ yes "" | make silentoldconfig > stdout >> > >>> make[1]: *** [silentoldconfig] Error 1 >> > >>> make: *** [silentoldconfig] Error 2 >> > >>> $ tail -n 4 stdout >> > >>> Console input/output is redirected. Run 'make oldconfig' to update >> > >>> configuration. >> > >>> scripts/kconfig/Makefile:40: recipe for target >> > >>> 'silentoldconfig' failed >> > >>> Makefile:507: recipe for target 'silentoldconfig' failed >> > >>> Redirection is useful, for example, for testing where we want to >> > >>> give >> > >>> particular key inputs from a test file, then check the result. >> > >>> Signed-off-by: Masahiro Yamada >> > >>> Reviewed-by: Ulf Magnusson >> > >>> >> > >>> Reverting this specific commit makes make-kpkg work again as usual. >> > >>> >> > >>> Version of the kernel-package used: >> > >>> ii kernel-package >> > >>> 13.018+nmu1 >> > >>> >> > >>> >> > >>> I also cc'ed the Debian developer who maintains the kernel-package >> > >>> package: Manoj Srivastava >> > >>> >> > >>> -- >> > >>> Sander >> > >>> >> > >> I have noticed today the same - the kernel-build blockage was in (as I >> > >> recall) >> > >> srcipts/kconfig/conf -s --silentoldconfig Kbuild >> > >> >> > >> I have bypassed it by regenerating the .config "by hand"... >> > > >> > > >> > > silentoldconfig asks you values for new symbols. >> > > So, you must answer questions to proceed. >> > >> > I know, but it stalls before asking the questions. >> > >> > > >> > > How does 'make-kpkg' handle silentoldconfig? >> > > >> > > Re-direct stdio, then make it forcibly fail? >> > >> > I don't know, it is a bunch of perl and shell scripts that gets invoked, not the most easy to comprehend if you are not familiar with them. I'm just a user of the tool. >> > >> > So i would have to defer that question to the Debian package maintainer, hopefully he will chime in. >> > >> > -- >> > Sander >> > >> > > >> > > >> > > >> > >> >> Hello, >> >> What the commit does is to make silentoldconfig not immediately exit(1) >> when both of the following apply: >> >> 1. stdin is from something that's not a terminal >> >> 2. New symbols are prompted for >> >> All the outputs (.config and the include/generated/ and include/config/ >> trees) are generated after the point where silentoldconfig would >> previously exit(1), afaics, so the effects of the commit can be >> summarized as follows: >> >> * If no new symbols appear (that would be prompted for), the >> behavior is exactly the same as before. >> >> (check_stdin() never seems to get called unless a value would >> actually be prompted for, which makes sense.) >> >> * If new symbols appear and stdin is a tty, the behavior is also >> exactly the same as before. >> >> And finally, the only case where the behavior differs: >> >> * If new symbols appear and stdin is not a tty, the >> new behavior is to prompt (to expect e.g. "n"/"m"/"y" from >> wherever stdin is coming from). >> >> The old behavior was to exit(1) without generating any output >> files. >> >> Hopefully that clarifies it. >> >> The intent of the commit was just to clean up the code a bit, since >> there doesn't seem to be a good reason to bail just because stdin >> happens to not be a tty (plus it's inconsistent with the way oldconfig >> works, which never bailed). >> >> silentoldconfig is something of an internal implementation detail at >> this point by the way. It's basically oldconfig + generate the >> configuration stuff in include/generated/ and include/config/ that >> actually gets used during the build. Normally it's called automatically >> as needed when building the kernel. >> >> See https://www.spinics.net/lists/kernel/msg2720574.html for some more >> details re. silentoldconfig. >> >> Cheers, >> Ulf > > By the way: If you can figure out a reason for why that stdin check was > there before while looking into the Debian tool, then please tell us. > > The problem with uncommented mystery code like that is that it easily > looks pointless and is at risk of getting changed or removed, even if > there was a good reason for it (which I still suspect there wasn't > though). > > > > Cheers, > Ulf Shouldn't be a problem to back this one out either if it turns out to cause massive amounts of pain in practice I guess, even if it's the Debian tools doing something weird. Good to look into what it is they're doing in any case. Cheers, Ulf