From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nils Gillmann Subject: Re: Redefining the maximum path length [Fwd: Re: [GNUnet-developers] using $TMPDIR instead of /tmp] Date: Sun, 6 May 2018 19:27:46 +0000 Message-ID: <20180506192746.kgovlw3drfhofhkt@abyayala> References: <20180506185923.rbzaa3jmck5k5iss@abyayala> <20180506191118.GA1898@jasmine.lan> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:42212) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fFPJZ-0007CA-07 for guix-devel@gnu.org; Sun, 06 May 2018 15:27:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fFPJX-0004jQ-VQ for guix-devel@gnu.org; Sun, 06 May 2018 15:27:21 -0400 Received: from conspiracy.of.n0.is ([2a01:4f8:1c0c:7ad0::1]:38656) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fFPJX-0004i3-Kb for guix-devel@gnu.org; Sun, 06 May 2018 15:27:19 -0400 Content-Disposition: inline In-Reply-To: <20180506191118.GA1898@jasmine.lan> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Leo Famulari Cc: guix-devel@gnu.org Leo Famulari transcribed 2.5K bytes: > On Sun, May 06, 2018 at 06:59:23PM +0000, Nils Gillmann wrote: > > we did some changes in GNUnet where my part of the job reminded me again > > of the path length Linux has as default. > > > > I know there's at least (only?) 1 file in the Linux kernel which defines > > the path length. Where else would we need to apply changes as a distro? > > > > I think if there are really no serious implications of extending the length, > > we should make the path longer. Not just for GNUnet. To avoid future annoyance. > > > > What do you think? And if you are against it, what should I look into > > that supports keeping the arbitrary short number we have now? > > If we are interested in discussing this change, we need some more > information for the discussion to be fruitful. > > Specifically, we need to know how the path limit is set and used in the > Linux source code [0]. From there, we will be more able to evaluate the > feasibility and impact of the change. > > This will also help us to understand why the limit exists. Perhaps the > limitation is required by Linux across the full set of platforms (libc > and filesystems) it aims to support, but not for the platforms supported > by Guix. > > Finally, it will be helpful for the rest of guix-devel to understand why > we'd want to make this change. So far, the path length limit > of 4096 characters seems long enough for us... Hi Leo, I have inserted a build log of a failing test from GNUnet commit f13af7e7281064380def70d0b4392b4351211655 This is the limitation I experience, when the tests are not running in /tmp but in $TMPDIR. $GNUNET_TMP's first choice is to select $TMPDIR when it exists. I'll look more into the rest of your email and the problem itself next week. I can imagine that it is platform specific but guessing won't help. > [0] My understanding is that the PATH_MAX macro from limits.h sets a > 4096 "character" limit. ================================================== gnunet 0.11.0: src/statistics/test-suite.log ================================================== # TOTAL: 5 # PASS: 4 # SKIP: 0 # XFAIL: 0 # FAIL: 1 # XPASS: 0 # ERROR: 0 .. contents:: :depth: 2 FAIL: test_gnunet_statistics.py =============================== Preparing: Starting service... TEST: Bad argument checking...PASS TEST: Set value...PASS TEST: Set another value...PASS TEST: Viewing all stats...FAIL: unexpected output: osystem other: 43 subsystem test: 42 !test-statistics-api test-3: 3 FAIL test_gnunet_statistics.py (exit status: 1) Human addition: make[4]: *** [Makefile:1074: test-suite.log] Error 1 make[4]: Leaving directory '/tmp/guix-build-gnunet-git1.drv-0/source/src/statistics' make[3]: *** [Makefile:1182: check-TESTS] Error 2 make[3]: Leaving directory '/tmp/guix-build-gnunet-git1.drv-0/source/src/statistics' make[2]: *** [Makefile:1281: check-am] Error 2 make[2]: Leaving directory '/tmp/guix-build-gnunet-git1.drv-0/source/src/statistics' make[1]: *** [Makefile:550: check-recursive] Error 1 make[1]: Leaving directory '/tmp/guix-build-gnunet-git1.drv-0/source/src' make: *** [Makefile:591: check-recursive] Error 1 phase `set-path-for-check' failed after 29.2 seconds note: keeping build directory `/tmp/guix-build-gnunet-git1.drv-0' builder for `/gnu/store/daqbvvd3zq2w1aw6w4yz5qm7s5k247ap-gnunet-git1.drv' failed with exit code 1 @ build-failed /gnu/store/daqbvvd3zq2w1aw6w4yz5qm7s5k247ap-gnunet-git1.drv - 1 builder for `/gnu/store/daqbvvd3zq2w1aw6w4yz5qm7s5k247ap-gnunet-git1.drv' failed with exit code 1 guix build: error: build failed: build of `/gnu/store/daqbvvd3zq2w1aw6w4yz5qm7s5k247ap-gnunet-git1.drv' failed With this we get filenames like: /tmp/guix-build-gnunet-git1.drv-0/gnunet/test-gnunet-statistics/.local/share/gnunet/statistics.dat which is an average length. When you just do it in /tmp, you won't experience any difficulties. I need to spin up a Debian testmachine, but I guess that other chroots won't hit the limit early and often. running guix build -f guix-env.scm in the source of gnunet, on commit 964f78df05ce848b96908ad0b931dfec1e182348 will enable you to reproduce my examle case.