Bug#924291: netrek-client-cow: build can loop indefinitely on failure
Helmut Grohne
helmut at subdivi.de
Mon Mar 11 05:08:05 GMT 2019
Source: netrek-client-cow
Version: 3.3.1-1
Severity: serious
Justification: breaks build infrastructure
When mkkey fails to run, netrek-client-cow has a very bad failure mode.
It loops until mkkey succeeds:
| until ./mkkey key.cow.linux "Client Of Win" "automatic packaged key" "quozl at us.netrek.org" "netrek.org/files/COW/" "inl,standard2"; do sleep 1; done
When mkkey fails reliably and produces output, this causes the build to
run indefinitely as sbuild only abort a build that has no output for a
prologned time. This behaviour can make buildds and QA infrastructure
hang.
I suggest using a bounded loop and failing hard after a number of
attempts. That's a very simple solution to the problem at hand. For
instance:
| attempts=32; until ./mkkey ...; do attempts=$((attempts - 1)); test $attempts -le 0 && exit 1; sleep 1; done
Furthermore I question why a key should be created at build time and
then be distributed to consumers of the package. That seems to run
counter to the concept of a "key". If the key is to protect anything, it
must not be public. Maybe the best course of action would be not
creating this key at all during build.
Helmut
More information about the Pkg-games-devel
mailing list