GNU bug report logs - #10465
MSYS read-only file trouble

Previous Next

Package: automake;

Reported by: Peter Rosin <peda <at> lysator.liu.se>

Date: Mon, 9 Jan 2012 11:00:02 UTC

Severity: normal

Tags: patch

Done: Stefano Lattarini <stefano.lattarini <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: Peter Rosin <peda <at> lysator.liu.se>
Cc: 10465 <at> debbugs.gnu.org
Subject: bug#10465: MSYS read-only file trouble
Date: Mon, 09 Jan 2012 20:03:45 +0100
On 01/09/2012 11:58 AM, Peter Rosin wrote:
> Hi!
>
Hi Peter.

> MSYS will not allow redirecting on top of an existing r/o file,
> even if the dir is r/w, like this:
> 
> $ mkdir foo
> $ ls -do foo
> drwxr-xr-x 2 peda 0 Jan  9 11:02 foo
> $ cd foo
> $ touch bar
> $ chmod a-w bar
> $ ls > bar
> bash: bar: Permission denied
> $ cat bar
> $
>
Which is good and POSIX-ish, no?

> I think the above causes a testsuite failure for tap-driver-stderr.test.
>
Unlikely: the test is expected to see a failure in the `tap-driver' script,
since that script is trying to write to a read-only file (an action which
should rightfully trigger an error); what we are actually checking is that
this failure is accompanied by a meaningful error message *which does not
get redirected to the test logs*.

Let's see what's happening ...

> Cheers,
> Peter
> 
> For reference, tap-driver-stderr.log:
> 
> Running from installcheck: no
> Using TAP: no
> PATH = /home/peda/automake/tests:/c/Program Files (x86)/Microsoft F#/v4.0/:/c/Program Files (x86)/Microsoft Visual Studio 10.0/VSTSDB/Deploy:/c/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/:/c/Program Files (x86)/Microsoft Visual Studio 10.0/VC/BIN:/c/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/Tools/:/c/Windows/Microsoft.NET/Framework/v4.0.30319:/c/Windows/Microsoft.NET/Framework/v3.5:/c/Program Files (x86)/Microsoft Visual Studio 10.0/VC/VCPackages:/c/Program Files (x86)/HTML Help Workshop:/c/Program Files (x86)/Microsoft Visual Studio 10.0/Team Tools/Performance Tools:/c/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/bin/NETFX 4.0 Tools:.:/usr/local/bin:/mingw/bin:/bin:/c/Program Files/Common Files/Microsoft Shared/Windows Live:/c/Program Files (x86)/Common Files/Microsoft Shared/Windows Live:/c/Windows/system32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/
> ./defs: line 805: priv-check.11388: Permission denied
> ++ pwd
> /home/peda/automake/tests/tap-driver-stderr.dir
> + fetch_tap_driver
> + case $am_tap_implementation in
> + sed '1s|#!.*|#! /bin/sh|' /home/peda/automake/lib/tap-driver.sh
> + chmod a+x tap-driver
> + sed 10q tap-driver
> #! /bin/sh
> # Copyright (C) 2011 Free Software Foundation, Inc.
> #
> # This program is free software; you can redistribute it and/or modify
> # it under the terms of the GNU General Public License as published by
> # the Free Software Foundation; either version 2, or (at your option)
> # any later version.
> #
> # This program is distributed in the hope that it will be useful,
> # but WITHOUT ANY WARRANTY; without even the implied warranty of
> + tst=zardoz
> + for suf in trs log
> + rm -f zardoz.log zardoz.trs
> + touch zardoz.trs
> + chmod a-w zardoz.trs
> + st=0
> + ./tap-driver --test-name zardoz --log-file zardoz.log --trs-file zardoz.trs -- sh -c 'echo 1..1; echo ok 1; echo "Hello, World!"'
> + cat stdout
> PASS: zardoz 1
> + cat stderr
> awk: cmd. line:324: (FILENAME=- FNR=4) fatal: can't redirect to `zardoz.trs' (Permission denied)
> tap-driver.sh: fatal: I/O or internal error
>
So far so good: the error goes to stderr ...

> + cat zardoz.log
> 1..1
> ok 1
> PASS: zardoz 1
> Hello, World!
> + cat zardoz.trs
> + test 0 -eq 0
> + /bin/grep -F 'Hello, World!' stderr stdout
> + /bin/grep -F zardoz.trs stderr
> awk: cmd. line:324: (FILENAME=- FNR=4) fatal: can't redirect to `zardoz.trs' (Permission denied)
> + for suf in trs log
> + rm -f zardoz.log zardoz.trs
> + touch zardoz.log
> + chmod a-w zardoz.log
> + st=0
> + ./tap-driver --test-name zardoz --log-file zardoz.log --trs-file zardoz.trs -- sh -c 'echo 1..1; echo ok 1; echo "Hello, World!"'
> + st=1
>
Hmmm... looks like the shell is not returning a non-zero exit status in
face of a I/O redirection failure.

Could you try what happens doing the following?

  $ > foo; chmod a-w foo; sh -c ': > foo; echo one: $?'; echo two: $?

> + cat stdout
> + cat stderr
> ./tap-driver: line 637: zardoz.log: Permission denied
>
(This is good as well BTW, this error goes to stderr too).

Thanks,
  Stefano




This bug report was last modified 13 years and 190 days ago.

Previous Next


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