Received: by 10.223.185.116 with SMTP id b49csp3579970wrg; Tue, 13 Feb 2018 04:36:06 -0800 (PST) X-Google-Smtp-Source: AH8x227zOIsqA8oPjppHGwoMQFpYQHOQ2zWwErr5zqBFd9KaUsTT+BhcyNOXNd0syVAsZcCJ5VQ/ X-Received: by 10.99.137.195 with SMTP id v186mr902143pgd.90.1518525366327; Tue, 13 Feb 2018 04:36:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518525366; cv=none; d=google.com; s=arc-20160816; b=YMIGmaRMZ8+6J2W6N8iSfHEnUF4qdwPvjh2GV0rQfdOoaFUA47Qo6W057GczkSBUl+ Uwq7STPXhMUDaAEFxLmblVFYyd9+mwZ9IOfkS+T56mokjKgK55dT1h/VvNKu7fuqySWz tRvlgAiuatYCt+lR6W2bvftlRuI3c5/Ph/pwMIV87kcHB9YfH0zNR7FJbtIWKDIZ7arn iw/H7wceznAjRZQ3QT0o6MteUWx052vF5r8mMowB+Y+aa59/EI9MefG+UkQmRKChh3y/ MN4GDAa2U/JIUCPt90d16qQVmDxyu9GN+/pdS/TpAHUUmnEPJ71Mjf7/D2qvviGS7+Zy 1DNw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature:arc-authentication-results; bh=a/rVdzIwlf6oC2aJN3+AjH/40YqV+FIWAfD1kNa2RLQ=; b=rHcHlfSoOWlw+Sdajx0Fv/3cYfSsEAm1YvA5IUGCn2Lyi+OLsJILHAO+VCMEBKYuFP BrxopgRgMAVvHhih0QkCXr3zkfsKSZtApRwAMQEF+beLWa4OCs37x4kSmibqLO1BP3aw 6nXBNxzKuGvxpdOgflLf64zzaYJ6iBDEsrEnJ7TF/l9iDqpZyDm4DEIkN5KAl6GQV1ED DA9oRmGUDBBi761453/IwZvZhxUlEZ5tgDtibFIvBy1LMHNplH/zqn50BkdfbP/qqCcu vpZ8Xva9W71sKTROISgSTVmvlWud5P2Hf0CG1repidzAXTiF6fFDHBe89MibNFmkKPbB rdCg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=UBt4vHPJ; 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 n11si1262984pgq.230.2018.02.13.04.35.51; Tue, 13 Feb 2018 04:36:06 -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=UBt4vHPJ; 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 S935174AbeBMMfQ (ORCPT + 99 others); Tue, 13 Feb 2018 07:35:16 -0500 Received: from mail-lf0-f45.google.com ([209.85.215.45]:45021 "EHLO mail-lf0-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935020AbeBMMfO (ORCPT ); Tue, 13 Feb 2018 07:35:14 -0500 Received: by mail-lf0-f45.google.com with SMTP id c188so8972922lfc.11 for ; Tue, 13 Feb 2018 04:35:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=a/rVdzIwlf6oC2aJN3+AjH/40YqV+FIWAfD1kNa2RLQ=; b=UBt4vHPJCLaODUlKsfgi1W+0M/ix7YIsSAChP9T9JuRXo4fX5BymrcEcf1EOiIuBcr QCHsKMJuzYJhtRaC2vJQlPh+tRcau+lbnw8yVFFiD6qYRsn3XhXypk0aUCLfx7jHs+Gw uDXrp23rAnusNObFItbMEO7Fb73WD0iZhFm20vLJ43mZXR5OXbuZE8RUfvEvS0FUrDy8 PgYRVwdxZMDlhir7yw8oRhPIp7qJK7YcDUjtZqnSa/740JUSbhp1/GlfU77zB4GD+xbB 8BmiToIXFgsT55TqRzE/GnKkX95MetrjTGHhe/7UseHpKRMRV2QETDw6ehnBGkoKWWrR LX+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=a/rVdzIwlf6oC2aJN3+AjH/40YqV+FIWAfD1kNa2RLQ=; b=BwODPL0FcafjklivHexB2fONdW3FS8A82aJtpSfJ2sKvw6Ecn/sdze3HnD4c9NLbuH PXRR9NBqYtWCmIbxZPjjBU3Zsq5UPrTpVG5fX/DlOBqnDM8AbCbwjdr0W5fRvDY1Moqk z7tT1XT3+CDioBUO4N+lWa8eqe9IzKhCXKJd39I7CgOkNNE3ZXMpG5NjF3a3PmwR9rlN CZKN/J0OhvRhcUSYbn0cXPQcBhJwTjVi6Vgr2TGA58WGCLtLBKGxdez3lWb2PNIzduzJ ojyI1xfapXvWBBYc9VMFNMkJDJj9lYJUihjL+HBwosspXLXjBdCeslrDthlDb7A1b0CH ir1g== X-Gm-Message-State: APf1xPAfulUBcuJrwZ/Pmj5i0ulGq6EQ498g6q2WFCDW90o3Db7UsxVN gI568CJTvvTs+CqJMDHa6PPeYLYdRDI= X-Received: by 10.25.34.81 with SMTP id i78mr908636lfi.50.1518525312939; Tue, 13 Feb 2018 04:35:12 -0800 (PST) Received: from huvuddator (ua-213-113-106-221.cust.bredbandsbolaget.se. [213.113.106.221]) by smtp.gmail.com with ESMTPSA id y10sm5155lja.7.2018.02.13.04.35.11 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 13 Feb 2018 04:35:12 -0800 (PST) Date: Tue, 13 Feb 2018 13:35:10 +0100 From: Ulf Magnusson To: Sander Eikelenboom Cc: Masahiro Yamada , Woody Suwalski , srivasta@debian.org, linux-kernel 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()" Message-ID: <20180213123510.hkbblka6xkosxi36@huvuddator> References: <9d122a3c-b1fe-a9f8-17db-c38f42fdc4b1@gmail.com> <27f3817b-0c92-5f92-e079-078a8b92eab4@eikelenboom.it> <20180213113324.gm6sv37g72gs3qrc@huvuddator> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20180213113324.gm6sv37g72gs3qrc@huvuddator> User-Agent: NeoMutt/20170609 (1.8.3) 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 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