Comment 26 for bug 160862

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

Yes, I meant Users/Groups.pm. The syntax error is actually not a perl message: it comes from the shell because of the parentheses in "ARRAY()". But that's not an issue since we only want to get the message printed.

Everything seems to be fine - at least groups are found and filled correctly. So I suspect two errors: either the list of members is not passed correctly, or the logindefs are wrong.

The former is easy to check too, just add
&Utils::File::run ("echo " . join(".", @a));

The latter not hard either: add something like
&Utils::File::run ("echo Min: $$logindefs{"gmin"}");
&Utils::File::run ("echo Max: $$logindefs{"gmax"}");
before 'return' in GroupsConfig.pm:get().
If there's a problem, then you should check your /etc/login.defs for GID_MIN and GID_MAX entries. But that problem should not happen since default values should be used.

I'm not very familiar with perl, so I'm a little lost with lists becoming arrays then structs. But since we're looking for a relatively rare bug, I don't think that's a plain syntax error. Thanks for your debugging work, and don't hesitate to play with this method to get more details, as you likely know has much as I do about perl.