From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by sourceware.org (Postfix) with ESMTPS id 69D933858D20 for ; Mon, 11 Mar 2024 16:59:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 69D933858D20 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=SystematicSW.ab.ca Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=SystematicSW.ab.ca ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 69D933858D20 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=216.40.44.12 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1710176349; cv=none; b=Oht2JEembJkYJKlLrdOrBfOcNiuAgJm90mTdCS3eH6xXCFVsRzgSfYxJcyNysj6fE8TF6n+88FlaXX5yk9EHjsckxXFVh+PMlwsHCKAKlnqrxvasV1LxfTeZ+f0CskceX+AAFaEUn6E6BQmmTnYdtD/ijY/SVr1lCAT0o21tS84= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1710176349; c=relaxed/simple; bh=5Rk11jLH6CD/T39FyIfDLDSL3shpcyYKzGYI96RO9SE=; h=Message-ID:Date:MIME-Version:Subject:To:From; b=qmNFpAOGmYum0HPDOsRHebfIQZ1blhlk6+633R+obp3QaR7fJy7IrXx6uzbxE80BlpnkhNyC/wlzvdf5atHMNQptM0OW6pivWv1w3iapuVTtp5sY2dZ+tERjKxUK4bn3bHcxkfIU92JJxdSxkDBR7HyNixatKCnRo9+DcXt+mn8= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from omf07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 9C930140BCC for ; Mon, 11 Mar 2024 16:59:06 +0000 (UTC) Received: from [HIDDEN] (Authenticated sender: Brian.Inglis@SystematicSW.ab.ca) by omf07.hostedemail.com (Postfix) with ESMTPA id 218752002C for ; Mon, 11 Mar 2024 16:59:05 +0000 (UTC) Message-ID: <36e07086-b975-416d-b2c1-a5bd208cb7de@SystematicSW.ab.ca> Date: Mon, 11 Mar 2024 10:59:02 -0600 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Reply-To: cygwin@cygwin.com Subject: Re: Cygwin 3.5.1: unable to open output file '/cygdrive/t/tmpdir/x-01564d.o': 'Operation not permitted' Content-Language: en-CA To: cygwin@cygwin.com References: From: Brian Inglis Organization: Systematic Software In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Stat-Signature: 13qbws1k4hhfqse6mxmojg73io3z6dme X-Rspamd-Server: rspamout03 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,KAM_DMARC_STATUS,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Rspamd-Queue-Id: 218752002C X-Session-Marker: 427269616E2E496E676C69734053797374656D6174696353572E61622E6361 X-Session-ID: U2FsdGVkX1+mD+MMJqV2XS+ZxcSD445pr5KO5DqSU/4= X-HE-Tag: 1710176345-275830 X-HE-Meta: U2FsdGVkX1+0USlmeTG19jDGwRooXqUnwS7dzvPhxTCdZWWZsvhC7nx6nSvFKut1pQdeWevYZndTH76cofEdpfY7KU46lTDMoEUIyBcIDEf76jefiExaXLoLPiv7NUQC38nTcgZ4/5k2D4ov3473gnfhKTn+Qnj3cVj3b+CQbd9bYWHs5ueVfM7UZ/lUvuAf5AdXIYa5VwTT/RFUriBvP4N4tztVRqbf+ZHqFSxePtGTplJddL6CH14jcXvl3n17Zql6H3oZMMiIYUgbHtVO6i62GkL9tGcmmkhqSKRVmAi7HnUxxixdXqA2QR0n3GrlgHiadHIo5m8O/A1eUJkDXiDJ8ALlTWESkapUTCRFM9lJL/AqccKyuLvEz8MuZxao0CpR2i1iQGDOXfKHau7/7/K3relUm4qL7Rh26bt/8QfxeVUC+g5cOR4qfXL1WkZRfD0pN63Mr1FuuBumkx075w== X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 2024-03-11 04:27, Roland Mainz via Cygwin wrote: > On Mon, Mar 11, 2024 at 8:01 AM Cedric Blancher via Cygwin > wrote: >> On Fri, 8 Mar 2024 at 03:25, Dan Shelton via Cygwin wrote: >>> I've run into a problem with clang on Cygwin 3.5.1 and 3.6. My machine >>> does not have much disk space left, so I switched TMPDIR to the >>> network drive. But clang then failed, like this: >>> >>> $ cat x.c >>> #include >>> int main(int ac, char *av[]) { puts("hello world"); return 0 ; } >>> $ mkdir /cygdrive/t/tmpdir >>> $ TMPDIR=/cygdrive/t/tmpdir clang x.c >>> error: unable to open output file '/cygdrive/t/tmpdir/x-01564d.o': >>> 'Operation not permitted' >>> 1 error generated. >>> >>> /cygdrive/t/tmpdir/ is a clean dir. >>> /usr/bin/touch /cygdrive/t/tmpdir/dummy works without problems >> >> I can confirm the bug, but only for the clang version linked to >> Cygwin. clang version of MinGW does not show that error, so this looks >> like a Cygwin bug. > > I can reproduce the bug on Cygwin "CYGWIN_NT-10.0-19045 > 3.6.0-0.73.gc2310061c66a.x86_64": > ---- snip ---- > $ cat x.c > #include > int main(int ac, char *av[]) { puts("hello world"); return 0 ; } > > $ TMPDIR=/cygdrive/t/tmpdir/ strace -o clang_tmpdir_on_nfs41fs.log > "C:\cygwin64\bin\clang-8.exe" x.c > error: unable to open output file '/cygdrive/t/tmpdir/x-8cb6f7.o': > 'Operation not permitted' > 1 error generated. > ---- snip ---- > > Full strace log is at https://nrubsig.kpaste.net/ff6248c25 (I use the > line numbers from that site below). > > It seems starting with line 2949 this goes wrong: > ---- snip ---- > 505 5069822 [main] clang-8 40295 symlink_info::check: 0x0 = > NtCreateFile (\??\T:\tmpdir\x-8cb6f7.o) > 3645 5073467 [main] clang-8 40295 symlink_info::check: not a symlink > 266 5073733 [main] clang-8 40295 symlink_info::check: 0 = > symlink.check(T:\tmpdir\x-8cb6f7.o, 0x7FFFF96E0) (mount_flags 0x4020, > path_flags 0x0) > 310 5074043 [main] clang-8 40295 path_conv::check: > this->path(T:\tmpdir\x-8cb6f7.o), has_acls(1) > 305 5074348 [main] clang-8 40295 build_fh_pc: fh 0x800027A30, dev 000000C3 > 1441 5075789 [main] clang-8 40295 __set_errno: int > check_access(security_descriptor&, GENERIC_MAPPING&, ACCESS_MASK, int, > bool):600 setting errno 13 > 257 5076046 [main] clang-8 40295 check_file_access: flags 0x2, ret -1 > ---- snip ---- > > So |build_fh_pc()| somehow fails with error 13... but I don't understand why... > > And then there is this weird ACL: > ---- snip ----- > $ ls -l /cygdrive/t/tmpdir/x-8cb6f7.o > -rw------- 1 Unix_User+197608 Unix_Group+197121 0 Mar 11 11:00 > /cygdrive/t/tmpdir/x-8cb6f7.o > $ getfacl /cygdrive/t/tmpdir/x-8cb6f7.o > # file: /cygdrive/t/tmpdir/x-8cb6f7.o > # owner: Unix_User+197608 > # group: Unix_Group+197121 > user::--- > group::--- > other::--- > ---- snip ---- > > /usr/bin/file, echo&&/&/usr/bin/cat can read/write that file > ---- snip ---- > $ file /cygdrive/t/tmpdir/x-8cb6f7.o > /cygdrive/t/tmpdir/x-8cb6f7.o: empty > $ echo "foo" >>/cygdrive/t/tmpdir/x-8cb6f7.o > $ cat /cygdrive/t/tmpdir/x-8cb6f7.o > foo > ---- snip ---- > > I have no idea why clang fails in this case... I need help with this one... For normal temp space behaviour under Cygwin, I found you have to: chmod -c a+rwxt /cygdrive/t/tmpdir/ setfacl -m u::rwx,g::rwx,o::rwx,d:u::rwx,d:g::rwx,d:o::rwx /cygdrive/t/tmpdir/ to set the DACLs to rwx and avoid any problems. -- Take care. Thanks, Brian Inglis Calgary, Alberta, Canada La perfection est atteinte Perfection is achieved non pas lorsqu'il n'y a plus rien à ajouter not when there is no more to add mais lorsqu'il n'y a plus rien à retirer but when there is no more to cut -- Antoine de Saint-Exupéry