Comment 24 for bug 160862

Revision history for this message
Milan Bouchet-Valat (nalimilan) wrote :

Thanks for that very valuable information. It may still worth give a deeper look at this, since it seems to hurt people at random, and can still raise issues in Lucid (even if that doesn't destroy your system as now).

So what happens is that the backends have a problem creating group structures that should be sent over D-Bus, which explains the warning "number of values does not match type at /usr/lib/perl5/Net/DBus/Binding/Iterator.pm line 606". Unfortunately, this line is not where the problem happens, but where the D-Bus perl binding detects it, and it must come from the function GroupsConfig.pm::get(). The liboobs warnings are simply the consequence: empty groups are sent, which explains why we remove all of them (or almost) when committing changes.

I don't know if you know a little about perl, but you can try to get more informations by editing your /usr/share/system-tools-backends-2.0/scripts/GroupsConfig.pm. There's a function called get() there, in which it would be interesting to print to debug output all the informations that were retrieved from /etc/group. For example, you can add to the start of the while loop something like:
&Utils::File::run ("echo Group:");
and at the end of the loop:
&Utils::File::run ("echo " . join(" ", @line));
&Utils::File::run ("echo $copy");

Then, reproducing the debugging steps, you'll be able to see what's going on in the log.