On Thursday 25 January 2007 03:03, Frans Pop wrote:
> I have just tested how the newt frontend behaves in this case, and that
> can be made to crash too, with basically the same behavior.
The bug can be reproduced with RC1, but not with Beta3. However, the bug
can be made to happen very easily in Beta3 with the following change in
the code for STATE 2 (whitespace reduced) in user-setup-ask.
db_get passwd/root-password
ROOT_PW="$RET"
if [ -z "$ROOT_PW" ]; then
db_fset user-setup/password-empty seen false
db_input critical user-setup/password-empty
db_fset passwd/root-password seen false
db_fset passwd/root-password-again seen false
- STATE=0
+ STATE=1
continue
fi
db_get passwd/root-password-again
if [ "$ROOT_PW" != "$RET" ]; then
db_fset user-setup/password-mismatch seen false
db_input critical user-setup/password-mismatch
db_fset passwd/root-password seen false
db_fset passwd/root-password-again seen false
- STATE=0
+ STATE=1
continue
fi
This is basically my commit r39683 for user-setup, and that change still
seems entirely correct to me. The only difference is that two db_input
statements for templates that get skipped get executed again before the
next db_go; at high priority this should be a no-op. (And at lower
priorities I see no good reason why those questions should be repeated.)
It seems like there is an error in debconf in memory handling or in the
management of a pointer list or some such for skipped questions.
As it seems to avoid this weird crash I will revert r39683 for now.
At least we now have a workaround for the RC2 release and a testcase to
trace the real issue after the release; I call that progress :-)
Attachment:
pgppBBssRSsp1.pgp
Description: PGP signature