GNU bug report logs - #74766
mv cannot move a file from a Linux "portal" file system

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: coreutils; Reported by: Bruno Haible <bruno@HIDDEN>; dated Tue, 10 Dec 2024 14:00:02 UTC; Maintainer for coreutils is bug-coreutils@HIDDEN.

Message received at 74766 <at> debbugs.gnu.org:


Received: (at 74766) by debbugs.gnu.org; 10 Dec 2024 18:23:13 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Dec 10 13:23:13 2024
Received: from localhost ([127.0.0.1]:59534 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tL4t6-0004PG-Hk
	for submit <at> debbugs.gnu.org; Tue, 10 Dec 2024 13:23:12 -0500
Received: from mo4-p00-ob.smtp.rzone.de ([85.215.255.22]:35427)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <bruno@HIDDEN>) id 1tL4t3-0004P0-Tn
 for 74766 <at> debbugs.gnu.org; Tue, 10 Dec 2024 13:23:10 -0500
ARC-Seal: i=1; a=rsa-sha256; t=1733854987; cv=none;
 d=strato.com; s=strato-dkim-0002;
 b=VXZRMvYB8QAK8uBa22J+QhAkNvUN1CmulLN2a7qTBJVyrbW1Du8djSHlU1Uqg4ZcCm
 Ufcchue1Qzn6ztadR0UvLsC2RTKQMFpFqxViS2HRh/1UgzjSb8XARXSE8yIe1lGnzjbN
 dHEA03TjP9V+BuUsEy5VrzSi+dZQudt+d5OGpIyWFVLAMIvdND0EMzbKLVk8hYibkeRp
 yVSl8/yeAMM6jo/sUAKxjdvdXMFIsLhKPYRPE6Poee563VciAoS56CkxDA0PIaEwMiGQ
 xa9g1eVME+EpDfcSZPUBjYoObSEu4hGFxZei4OvmIMHiFarlLn4dKsY/Im7PbmzncGQs
 WdLw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1733854987;
 s=strato-dkim-0002; d=strato.com;
 h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date:
 From:Subject:Sender;
 bh=bj9gzknqzydjvl/pZOWJGyYyJfqkVlqUmRBJmwEcWVk=;
 b=Je63dGd+HDFEbG4+nDeOd0ro95YIiShpp/kM3UYSwVazpi34Rjh1u5ZXO/z1bGMbaw
 WSneJLBX7NEGZYJBFlh2Biqc01MQQugsJyuVcyHW+IHr7rf8/Ap0IAFg8/3asNHiGiHI
 tusXwcMlwf81U5w94LR+qk5yywEQ52VgRHvBrFX+Duq34P+SKo/h6uLKjg3ymXiDu06g
 Y+rZdgmA/kaoA/ux1yDr44yLe2mESW21Fg7aIYWwv59J6Mzrg31GQpWSPYwSf5V0wwBY
 3wnSOMqDNid9JN4sZ3d0BUTYgu/Z4wgYIyBwLOrA3v68BNuTnbJQv2qofrz+rOWniAnM
 Rm8Q==
ARC-Authentication-Results: i=1; strato.com;
    arc=none;
    dkim=none
X-RZG-CLASS-ID: mo00
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1733854987;
 s=strato-dkim-0002; d=clisp.org;
 h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date:
 From:Subject:Sender;
 bh=bj9gzknqzydjvl/pZOWJGyYyJfqkVlqUmRBJmwEcWVk=;
 b=ezfKn/wRpHcmk8OrmCsy9HrYQcImRXLrLCB+QrCq9LWKFXLIZOCyuFmGZ2pB9pwpRt
 i4Z/Sl0bepW80+JOimbL7avRif36IA8LOI9LT1pmntqCaIgiLchlFp62z8cScKpRi7L2
 VecA/ToTC5Ed4NI0DI/vmeYroz17muUpiEPadXvMltyfucYXxJl+cTOyrcCZT6xmkif0
 NxHEGXhUysjNo2Y5TElz3wtoodSMO3otmDGB+7Sd/B/8C4epOMSpp8k/ta11vrnFHeLP
 /kTYIQ02XwMZlRnL5DIJqT99QR5IPkyLPk+QNwuQlSZN6c749hsOkmU1FFZDcYmYBkT6
 wD6w==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1733854987;
 s=strato-dkim-0003; d=clisp.org;
 h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date:
 From:Subject:Sender;
 bh=bj9gzknqzydjvl/pZOWJGyYyJfqkVlqUmRBJmwEcWVk=;
 b=sWqvQcmU4kalOOnjlD12d82qebVJSLza4Knl+EsgD7UXqHLBZPlM9QincVqwYMUx6p
 AVrc/WW2vLoB3OuCyYDw==
X-RZG-AUTH: ":Ln4Re0+Ic/6oZXR1YgKryK8brlshOcZlLnY4jECd2hdUURIbZgL8PX2QiTuZ3cdB8X/nqmicFTps8tOjtGRX7YucGP2mGS4="
Received: from nimes.localnet by smtp.strato.de (RZmta 51.2.11 AUTH)
 with ESMTPSA id Nd105a0BAIN6U9E
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits))
 (Client did not present a certificate);
 Tue, 10 Dec 2024 19:23:06 +0100 (CET)
From: Bruno Haible <bruno@HIDDEN>
To: Paul Eggert <eggert@HIDDEN>
Subject: Re: bug#74766: mv cannot move a file from a Linux "portal" file system
Date: Tue, 10 Dec 2024 19:23:05 +0100
Message-ID: <2483301.Qy3A1AUfiQ@nimes>
In-Reply-To: <235c0678-3a44-47c8-905e-93f63995719d@HIDDEN>
References: <2311529.ZZOgW5g1CT@nimes>
 <235c0678-3a44-47c8-905e-93f63995719d@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="us-ascii"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 74766
Cc: 74766 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Thanks for the investigations.

Paul Eggert wrote:
> Assuming it's a FUSE portal filesystem, the bug could be either in the 
> Linux FUSE kernel module, or (more likely) in the user-space code. I 
> assume you are using GVFS

Yes, indeed:
$ mount
...
portal on /run/user/1000/doc type fuse.portal (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
...

> and I reproduced a similar problem, so I 
> filed a bug report with the GVFS folks here:
> 
> https://gitlab.gnome.org/GNOME/gvfs/-/issues/774

Thanks!

Bruno







Information forwarded to bug-coreutils@HIDDEN:
bug#74766; Package coreutils. Full text available.

Message received at 74766 <at> debbugs.gnu.org:


Received: (at 74766) by debbugs.gnu.org; 10 Dec 2024 18:11:33 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Dec 10 13:11:33 2024
Received: from localhost ([127.0.0.1]:59522 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tL4hp-0003YY-6l
	for submit <at> debbugs.gnu.org; Tue, 10 Dec 2024 13:11:33 -0500
Received: from mail.cs.ucla.edu ([131.179.128.66]:44804)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eggert@HIDDEN>) id 1tL4hk-0003Y6-Tr
 for 74766 <at> debbugs.gnu.org; Tue, 10 Dec 2024 13:11:32 -0500
Received: from localhost (localhost [127.0.0.1])
 by mail.cs.ucla.edu (Postfix) with ESMTP id 98EA83C00FA8A;
 Tue, 10 Dec 2024 10:11:22 -0800 (PST)
Received: from mail.cs.ucla.edu ([127.0.0.1])
 by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavis, port 10032) with ESMTP
 id VTGSYOtSbBJj; Tue, 10 Dec 2024 10:11:22 -0800 (PST)
Received: from localhost (localhost [127.0.0.1])
 by mail.cs.ucla.edu (Postfix) with ESMTP id 4FB7C3C00FA90;
 Tue, 10 Dec 2024 10:11:22 -0800 (PST)
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.cs.ucla.edu 4FB7C3C00FA90
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.ucla.edu;
 s=9D0B346E-2AEB-11ED-9476-E14B719DCE6C; t=1733854282;
 bh=ZMhhMryQmtHTqyaCenzB9EwtdilwU42Ysrsz/dduKSg=;
 h=Message-ID:Date:MIME-Version:To:From;
 b=jRaQi2uj7rm40UUEsKLfuslkEJudQKukDesXbyAm/GBiLGn9OSe3LrvRkX9rEyiAu
 D3R88r1rn+4sa3uOYTDXeq456Yv3r8Zg9oQ9eZOIRy9p5zJRVcxO5qLHMh3vIAvL0x
 +MVnhkv6ndJ/u+XYx/F0z1Wau6KejrFdU1ZahOB5diK+Aa2RRyolJDPUocPSsEsusC
 rdxL+fqOwyGZWCGUy4ZpsZ8GzFztYWiKORpIlYzcRRNHw+KAxgBZTyNsly2KeycuWW
 12ZvE45w2cs+zMG/VZnflq2pH87MM/8RcME02WDRH4dYHEbMPivYJEQCPGx8bUCUti
 tx8vuS2th/REw==
X-Virus-Scanned: amavis at mail.cs.ucla.edu
Received: from mail.cs.ucla.edu ([127.0.0.1])
 by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavis, port 10026) with ESMTP
 id z_EtznFZEqgN; Tue, 10 Dec 2024 10:11:22 -0800 (PST)
Received: from [192.168.254.12] (unknown [47.154.27.134])
 by mail.cs.ucla.edu (Postfix) with ESMTPSA id 2FB0A3C00FA8A;
 Tue, 10 Dec 2024 10:11:22 -0800 (PST)
Message-ID: <235c0678-3a44-47c8-905e-93f63995719d@HIDDEN>
Date: Tue, 10 Dec 2024 10:11:21 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#74766: mv cannot move a file from a Linux "portal" file system
To: Bruno Haible <bruno@HIDDEN>
References: <2311529.ZZOgW5g1CT@nimes>
Content-Language: en-US
From: Paul Eggert <eggert@HIDDEN>
Organization: UCLA Computer Science Department
In-Reply-To: <2311529.ZZOgW5g1CT@nimes>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 74766
Cc: 74766 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

On 2024-12-10 05:59, Bruno Haible via GNU coreutils Bug Reports wrote:

> newfstatat(AT_FDCWD, "/run/user/1000/doc/1316905f/jas-key.gpg", {st_mode=S_IFREG|0664, st_size=7335, ...}, AT_SYMLINK_NOFOLLOW) = 0

This means /run/user/1000/doc/1316905f/jas-key.gpg is a regular file and 
its name can be resolved without symlink loops.


> openat(AT_FDCWD, "/run/user/1000/doc/1316905f/jas-key.gpg", O_RDONLY|O_NOFOLLOW) = -1 ELOOP (Too many levels of symbolic links)

This means /run/user/1000/doc/1316905f/jas-key.gpg is a symlink, or 
there is a symlink loop when resolving /run or /run/user or ... or 
/run/user/1000/doc/1316905f. Which obviously contradicts the newfstatat 
results.


> I don't understand the result of the openat() system call.

Yes, it looks like a filesystem bug. I see a similar bug reported (but 
incorrectly diagnosed) here:

https://github.com/flatpak/xdg-desktop-portal/issues/1117


> $ cp /run/user/1000/doc/1316905f/jas-key.gpg .
> works fine.

Presumably this is because cp uses "openat(AT_FDCWD, 
"/run/user/1000/doc/1316905f/jas-key.gpg", O_RDONLY)", i.e., cp doesn't 
use the O_NOFOLLOW flag and so it sidesteps the filesystem bug.

Assuming it's a FUSE portal filesystem, the bug could be either in the 
Linux FUSE kernel module, or (more likely) in the user-space code. I 
assume you are using GVFS, and I reproduced a similar problem, so I 
filed a bug report with the GVFS folks here:

https://gitlab.gnome.org/GNOME/gvfs/-/issues/774

I don't see how coreutils could easily work around these filesystem bugs.




Information forwarded to bug-coreutils@HIDDEN:
bug#74766; Package coreutils. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 10 Dec 2024 13:59:32 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Dec 10 08:59:32 2024
Received: from localhost ([127.0.0.1]:57426 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tL0lv-0008O2-AO
	for submit <at> debbugs.gnu.org; Tue, 10 Dec 2024 08:59:32 -0500
Received: from lists.gnu.org ([209.51.188.17]:38376)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <bruno@HIDDEN>) id 1tL0lt-0008Nu-Gx
 for submit <at> debbugs.gnu.org; Tue, 10 Dec 2024 08:59:30 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <bruno@HIDDEN>) id 1tL0lt-0006iv-7v
 for bug-coreutils@HIDDEN; Tue, 10 Dec 2024 08:59:29 -0500
Received: from mo4-p00-ob.smtp.rzone.de ([81.169.146.219])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <bruno@HIDDEN>) id 1tL0lq-0006gV-Ez
 for bug-coreutils@HIDDEN; Tue, 10 Dec 2024 08:59:28 -0500
ARC-Seal: i=1; a=rsa-sha256; t=1733839162; cv=none;
 d=strato.com; s=strato-dkim-0002;
 b=mUWehl8ti3qVNc8ukHu7CrJ3uZTo7NKs6B4o4ILPP/6hWAgX4/99IqZUk+/mfl1JpQ
 L3s8J5piRGALo3XcMrLjC1a5XjPFproABnmOqS1PSFWI/TuBv5avr2Qf3kNm9Meqaqxf
 nIeUOYVL8e2QDFzzwmf2sI9xRqb4NplV9khSzgaPARSSie2/8Ov7ErkMWfyzKFaJJXw7
 OM9xjkgnkfHuuTZaE6CJPKMaLF1LNCeFcS6VHiM993oLPwJRbEV1Lz2zQEybumzGg/U+
 B0jzeOMFX9hCKIeDiGT1FzhJoMKjo8rPtRbjUmibPDFL2QKvtbYEUjjXq3I1Pskzzq2r
 jJZg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1733839162;
 s=strato-dkim-0002; d=strato.com;
 h=Message-ID:Date:Subject:To:From:Cc:Date:From:Subject:Sender;
 bh=fNTTBTbfWQvds1kHGfMY4Z41qub9EurD9dtpe03GYlE=;
 b=cNU0Aiui4ijFeRI/aXkDRRt5y/h3sc4PvZH9w0BzK2u32MmTk2ufE68AKmkWWjQAiH
 W/oqcBxwJmlzH4ssPN0/zQNA6h9NZaG2O7PPDi91Asrls0iItdtVko2AADUB72DNe5Vg
 Jrsbq/zjMv3evgn4TTnutFkFg7F7tErm18WSkHmuXWjHbEq6lN79dKQ54Dh4Z80BUllC
 AUrR+OdpEZ07YyICl+OmCov8ZvLw7jJgTEZdUt2wIR3uZ+zDH88SOwP2vDcf/LrxAbef
 Naukxw/rsb4FAz8q1UE6WEnnt8LxKSK9u7BXkbrxk9n8krgsl+OwEFHt9NPZMjSz+e9L
 Ijbw==
ARC-Authentication-Results: i=1; strato.com;
    arc=none;
    dkim=none
X-RZG-CLASS-ID: mo00
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1733839162;
 s=strato-dkim-0002; d=clisp.org;
 h=Message-ID:Date:Subject:To:From:Cc:Date:From:Subject:Sender;
 bh=fNTTBTbfWQvds1kHGfMY4Z41qub9EurD9dtpe03GYlE=;
 b=CZB3fvDoeKws3Ei/k0arGetVhUSuN7sU0NZZgluw0Dhh0DkYT9LIOsYMXUGace9WUi
 21tHLsiG6iB0kN/qBnnWEvpX27KxXn+HfKi4Y1hTH9M4MGPcjGu3fafQhQa4+JEFj+QL
 B9U81jz2LYmqu8V6383Pj9MiQ1tH7x0UwT8p3RdBY6lOrl6iXT2VE7YoxQtoVJIoNwi6
 4A1D42l+7S6Q+MKZ1weGQwbtLES9trMkD+TW0wpkckQf0TYvmYIxNzOg+sTTdKPXx+RP
 uNW8PGPLzF2iJGTfHIecEV+mAdnin04YrcE9ZOnO9cVj6B5LEsC1iPe08owAqGkwusNg
 PUcA==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1733839162;
 s=strato-dkim-0003; d=clisp.org;
 h=Message-ID:Date:Subject:To:From:Cc:Date:From:Subject:Sender;
 bh=fNTTBTbfWQvds1kHGfMY4Z41qub9EurD9dtpe03GYlE=;
 b=hPKD/MqAM8sKOjIdIvbXziYbNCKpaB382UiiaCF5IZ5aLViZb/Q6HlC2LMd1pTt4HN
 2ugUs+BoW1/2KIa53wDA==
X-RZG-AUTH: ":Ln4Re0+Ic/6oZXR1YgKryK8brlshOcZlLnY4jECd2hdUURIbZgL8PX2QiTuZ3cdB8X/nqmicFTps8tOjtGRX7YucGP2mGS4="
Received: from nimes.localnet by smtp.strato.de (RZmta 51.2.11 AUTH)
 with ESMTPSA id Nd105a0BADxMSv0
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits))
 (Client did not present a certificate);
 Tue, 10 Dec 2024 14:59:22 +0100 (CET)
From: Bruno Haible <bruno@HIDDEN>
To: bug-coreutils@HIDDEN
Subject: mv cannot move a file from a Linux "portal" file system
Date: Tue, 10 Dec 2024 14:59:22 +0100
Message-ID: <2311529.ZZOgW5g1CT@nimes>
MIME-Version: 1.0
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="us-ascii"
Received-SPF: none client-ip=81.169.146.219; envelope-from=bruno@HIDDEN;
 helo=mo4-p00-ob.smtp.rzone.de
X-Spam_score_int: -27
X-Spam_score: -2.8
X-Spam_bar: --
X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
 RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001,
 RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001,
 SPF_HELO_PASS=-0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Hi,

On Linux (Linux 5.15.0) I have a file /run/user/1000/doc/1316905f/jas-key.gpg
(created by visiting https://savannah.gnu.org/users/jas in Firefox and clicking
the "Download GPG Key" in that page).

It appears to be a regular file:

$ ls -l /run/user/1000/doc/1316905f/jas-key.gpg
-rw-rw-r-- 1 bruno bruno 7335 Dec 10 14:41 /run/user/1000/doc/1316905f/jas-key.gpg

It sits on a file system of type "portal":

$ (cd /run/user/1000/doc/1316905f/ && df -m .)
Filesystem     1M-blocks    Used Available Use% Mounted on
portal           1290923 1218257      7019 100% /run/user/1000/doc

I'm using 'mv' from GNU coreutils:

$ LC_ALL=C mv --version
mv (GNU coreutils) 9.4
...

Moving the file to an ext4 file system fails:

$ mv /run/user/1000/doc/1316905f/jas-key.gpg .
mv: cannot open '/run/user/1000/doc/1316905f/jas-key.gpg' for reading: Too many levels of symbolic links

Look at the system calls:

$ strace mv /run/user/1000/doc/1316905f/jas-key.gpg .
execve("/arch/local/x86_64-linux/bin/mv", ["mv", "/run/user/1000/doc/1316905f/jas-"..., "."], 0x7ffd1f57d410 /* 89 vars */) = 0
brk(NULL)                               = 0x14a8000
arch_prctl(0x3001 /* ARCH_??? */, 0x7ffcdeb8fe90) = -1 EINVAL (Invalid argument)
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f0e9e8f3000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=134075, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 134075, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f0e9e8d2000
close(3)                                = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=166280, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 177672, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f0e9e8a6000
mprotect(0x7f0e9e8ac000, 139264, PROT_NONE) = 0
mmap(0x7f0e9e8ac000, 106496, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7f0e9e8ac000
mmap(0x7f0e9e8c6000, 28672, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x20000) = 0x7f0e9e8c6000
mmap(0x7f0e9e8ce000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x27000) = 0x7f0e9e8ce000
mmap(0x7f0e9e8d0000, 5640, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f0e9e8d0000
close(3)                                = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libacl.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=34888, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 36896, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f0e9e89c000
mprotect(0x7f0e9e89e000, 24576, PROT_NONE) = 0
mmap(0x7f0e9e89e000, 16384, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f0e9e89e000
mmap(0x7f0e9e8a2000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7f0e9e8a2000
mmap(0x7f0e9e8a4000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7000) = 0x7f0e9e8a4000
close(3)                                = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libattr.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=26696, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 28696, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f0e9e894000
mmap(0x7f0e9e896000, 12288, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f0e9e896000
mmap(0x7f0e9e899000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x5000) = 0x7f0e9e899000
mmap(0x7f0e9e89a000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x5000) = 0x7f0e9e89a000
close(3)                                = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\237\2\0\0\0\0\0"..., 832) = 832
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784
pread64(3, "\4\0\0\0 \0\0\0\5\0\0\0GNU\0\2\0\0\300\4\0\0\0\3\0\0\0\0\0\0\0"..., 48, 848) = 48
pread64(3, "\4\0\0\0\24\0\0\0\3\0\0\0GNU\0I\17\357\204\3$\f\221\2039x\324\224\323\236S"..., 68, 896) = 68
newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=2220400, ...}, AT_EMPTY_PATH) = 0
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784
mmap(NULL, 2264656, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f0e9e66b000
mprotect(0x7f0e9e693000, 2023424, PROT_NONE) = 0
mmap(0x7f0e9e693000, 1658880, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x28000) = 0x7f0e9e693000
mmap(0x7f0e9e828000, 360448, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1bd000) = 0x7f0e9e828000
mmap(0x7f0e9e881000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x215000) = 0x7f0e9e881000
mmap(0x7f0e9e887000, 52816, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f0e9e887000
close(3)                                = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libpcre2-8.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=613064, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 615184, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f0e9e5d4000
mmap(0x7f0e9e5d6000, 438272, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f0e9e5d6000
mmap(0x7f0e9e641000, 163840, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6d000) = 0x7f0e9e641000
mmap(0x7f0e9e669000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x94000) = 0x7f0e9e669000
close(3)                                = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f0e9e5d2000
arch_prctl(ARCH_SET_FS, 0x7f0e9e5d3340) = 0
set_tid_address(0x7f0e9e5d3610)         = 3802617
set_robust_list(0x7f0e9e5d3620, 24)     = 0
rseq(0x7f0e9e5d3ce0, 0x20, 0, 0x53053053) = 0
mprotect(0x7f0e9e881000, 16384, PROT_READ) = 0
mprotect(0x7f0e9e669000, 4096, PROT_READ) = 0
mprotect(0x7f0e9e89a000, 4096, PROT_READ) = 0
mprotect(0x7f0e9e8a4000, 4096, PROT_READ) = 0
mprotect(0x7f0e9e8ce000, 4096, PROT_READ) = 0
mprotect(0x423000, 4096, PROT_READ)     = 0
mprotect(0x7f0e9e92d000, 8192, PROT_READ) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
munmap(0x7f0e9e8d2000, 134075)          = 0
statfs("/sys/fs/selinux", 0x7ffcdeb8fed0) = -1 ENOENT (No such file or directory)
statfs("/selinux", 0x7ffcdeb8fed0)      = -1 ENOENT (No such file or directory)
getrandom("\xc1\x7e\x88\x97\xcb\xb4\x9e\x85", 8, GRND_NONBLOCK) = 8
brk(NULL)                               = 0x14a8000
brk(0x14c9000)                          = 0x14c9000
openat(AT_FDCWD, "/proc/filesystems", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0444, st_size=0, ...}, AT_EMPTY_PATH) = 0
read(3, "nodev\tsysfs\nnodev\ttmpfs\nnodev\tbd"..., 1024) = 505
read(3, "", 1024)                       = 0
close(3)                                = 0
access("/etc/selinux/config", F_OK)     = -1 ENOENT (No such file or directory)
geteuid()                               = 1000
ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
renameat2(AT_FDCWD, "/run/user/1000/doc/1316905f/jas-key.gpg", AT_FDCWD, ".", RENAME_NOREPLACE) = -1 EXDEV (Invalid cross-device link)
renameat2(AT_FDCWD, "/run/user/1000/doc/1316905f/jas-key.gpg", AT_FDCWD, "jas-key.gpg", RENAME_NOREPLACE) = -1 EXDEV (Invalid cross-device link)
newfstatat(AT_FDCWD, "/run/user/1000/doc/1316905f/jas-key.gpg", {st_mode=S_IFREG|0664, st_size=7335, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(AT_FDCWD, "jas-key.gpg", 0x7ffcdeb8fb30, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory)
unlinkat(AT_FDCWD, "jas-key.gpg", 0)    = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/user/1000/doc/1316905f/jas-key.gpg", O_RDONLY|O_NOFOLLOW) = -1 ELOOP (Too many levels of symbolic links)
write(2, "mv: ", 4mv: )                     = 4
write(2, "cannot open '/run/user/1000/doc/"..., 65cannot open '/run/user/1000/doc/1316905f/jas-key.gpg' for reading) = 65
write(2, ": Too many levels of symbolic li"..., 35: Too many levels of symbolic links) = 35
write(2, "\n", 1
)                       = 1
lseek(0, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
close(0)                                = 0
close(1)                                = 0
close(2)                                = 0
exit_group(1)                           = ?
+++ exited with 1 +++

I don't understand the result of the openat() system call.

$ cp /run/user/1000/doc/1316905f/jas-key.gpg .
works fine.

Bruno







Acknowledgement sent to Bruno Haible <bruno@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-coreutils@HIDDEN. Full text available.
Report forwarded to bug-coreutils@HIDDEN:
bug#74766; Package coreutils. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Sun, 12 Jan 2025 05:45:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.