This is the mail archive of the cygwin-apps mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Concern about new g-b-s logging change - loss of error detection


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

This thread seems to have gone to sleep.

Summary: The addition of the 'logging' g-b-s feature introduced a bug:
Errors during phases of package building do not halt the build, so that
an error during 'make' or 'make install' would not prevent the 'pkg'
operation running, and producing flawed package files.

If no one has time to fix the logging feature properly right now, could
we just revert the logging feature from g-b-s CVS HEAD until someone does?

Thanks,
Max.



=== Full text of earlier part of thread follows: ===

Max Bowsher wrote:
> Igor Pechtchanski wrote:
> 
>> On Sat, 29 Oct 2005, Max Bowsher wrote:
>>
>>> Please forgive me if this has already been discussed - I've been
>>> time-limited to scanning subject lines only recently.
>>>
>>> Bourne shells consider only the exit status of the last command in a
>>> pipeline when determining $? - this means that the addition of lots of
>>> "| tee somefile" will cause errors occurring during the commands being
>>> logged to be ignored.
>>>
>>> This seems to me to be a more severe problem than not keeping the logs
>>> in the first place - as a failing "make" could result in the packaging
>>> of a partially built package.
>>
>>
>> Max,
>>
>> Thanks for bringing this up.  This hasn't been discussed, and I admit I
>> missed this aspect of the problem when reviewing the patch.  I did have a
>> fleeting thought of changing the "tee"s to redirections, but didn't
>> realize the importance of this.  I just verified that even with "set -e"
>> in effect, bash will not terminate if an interior pipe command fails.
>>
>> I can think of two ways to tackle this: use redirection (with the loss of
>> immediate console output),
> 
> 
> I don't like that idea. When building a large package, this would mean
> many minutes without any feedback at all.
> 
>> or use $PIPESTATUS (which is a bashism, and is
>> fragile, unless we use ${PIPESTATUS[$((${#PIPESTATUS[@]}-1))]}).
> 
> 
> I think using a bashism is OK. Even people who don't actually use bash
> interactively will have it installed - it's in 'Base', after all.
> 
> Why would ${PIPESTATUS[1]} not be OK?


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (Cygwin)

iD8DBQFDf2/KfFNSmcDyxYARAuPZAJwIi7o6tswK4MiM6gSW47CJaMM53QCeNT4R
Y1VhvWqxw4sgxZ98GMBuFBE=
=IvkU
-----END PGP SIGNATURE-----


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]