Bug 1053436

Summary: kerberos perl error in user plugin module
Product: [openSUSE] openSUSE Distribution Reporter: Bob Goddard <opensuse>
Component: YaST2Assignee: E-mail List <yast2-maintainers>
Status: RESOLVED NORESPONSE QA Contact: Jiri Srain <jsrain>
Severity: Normal    
Priority: P5 - None CC: igonzalezsosa, opensuse
Version: Leap 42.3Flags: lslezak: needinfo? (opensuse)
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Bob Goddard 2017-08-11 13:52:13 UTC
Accessing the users module, specifically the LDAP, produces the following error:

Use of uninitialized value in concatenation (.) or string at
        /usr/share/YaST2/modules/UsersPluginKerberos.pm line 152 (#1)
    (W uninitialized) An undefined value was used as if it were already
    defined.  It was interpreted as a "" or a 0, but maybe it was a mistake.
    To suppress this warning assign a defined value to your variables.
    
    To help you figure out what was undefined, perl will try to tell you
    the name of the variable (if any) that was undefined.  In some cases
    it cannot do this, so it also tells you what operation you used the
    undefined value in.  Note, however, that perl optimizes your program
    anid the operation displayed in the warning may not necessarily appear
    literally in your program.  For example, "that $foo" is usually
    optimized into "that " . $foo, and the warning will refer to the
    concatenation (.) operator, even though there is no . in
    your program.
    
Use of uninitialized value in regexp compilation at
        /usr/share/YaST2/modules/UsersPluginKerberos.pm line 153 (#1)
Comment 1 Ladislav Slezák 2017-08-14 10:45:56 UTC
The error message refers to https://github.com/yast/yast-users/blob/SLE-12-SP3/src/modules/UsersPluginKerberos.pm#L152.

Please attach YaST logs (https://en.opensuse.org/openSUSE:Report_a_YaST_bug).

How can I reproduce the problem (step by step)? Having $data->{uid} undefined looks suspicious, maybe there is another hidden issue...
Comment 2 Bob Goddard 2017-08-14 11:59:07 UTC
When you run the user module, filter on ldap.

When you click the "add" button, the error happens.

It only happens after you start the module, soc licking on the "Add" button again does not produce an error.

The relevant info from y2log:

2017-08-14 12:46:18 <1> eth7(14187) [Ruby] modules/Ldap.rb:329 Index 0 is out of array size
2017-08-14 12:46:18 <1> eth7(14187) [Ruby] modules/Ldap.rb:448 Read LDAP Settings: server ldap.bgcomp.co.uk, base_dn dc=bgcomp,dc=co,c=uk, bind_dn cn=Administrator,dc=bgcomp,dc=co,c=uk, base_config_dn ou=ldapconfig,dc=bgcomp,dc=co,c=uk
2017-08-14 12:46:18 <2> eth7(14187) [ui] YCPDialogParser.cc(parseInputField):1851 
2017-08-14 12:46:18 <2> eth7(14187) [ui] YCPDialogParser.cc(parseInputField):1851 
2017-08-14 12:46:18 <2> eth7(14187) [ui] YCPDialogParser.cc(parseInputField):1851 Using `TextEntry() in bug compatibiltiy mode.
2017-08-14 12:46:18 <2> eth7(14187) [ui] YCPDialogParser.cc(parseInputField):1851 This is equivalent to `InputField(`opt(`hstretch), ...).
2017-08-14 12:46:18 <2> eth7(14187) [ui] YCPDialogParser.cc(parseInputField):1851 This makes the field grab as much space horizontally as it can get,
2017-08-14 12:46:18 <2> eth7(14187) [ui] YCPDialogParser.cc(parseInputField):1851 typically making it stretch across the entire width of the dialog.
2017-08-14 12:46:18 <2> eth7(14187) [ui] YCPDialogParser.cc(parseInputField):1851 Without this hstretch, the field will take a reasonable default width.
2017-08-14 12:46:18 <2> eth7(14187) [ui] YCPDialogParser.cc(parseInputField):1851 
2017-08-14 12:46:18 <2> eth7(14187) [ui] YCPDialogParser.cc(parseInputField):1851 If this `hstretch is really desired, please use `InputField(`opt(`hstretch), ...).
2017-08-14 12:46:18 <2> eth7(14187) [ui] YCPDialogParser.cc(parseInputField):1851 If it is not, please use `InputField() without `hstretch.
2017-08-14 12:46:18 <2> eth7(14187) [ui] YCPDialogParser.cc(parseInputField):1851 
2017-08-14 12:46:18 <2> eth7(14187) [ui] YCPDialogParser.cc(parseInputField):1851 
2017-08-14 12:46:18 <1> eth7(14187) [ui] YPushButton.cc(setFunctionKey):202 Guessing button role YOKButton for YPushButton "OK" at 0x7fcb7435e420 from function key F10
2017-08-14 12:46:18 <1> eth7(14187) [ui] YPushButton.cc(setFunctionKey):202 Guessing button role YCancelButton for YPushButton "Cancel" at 0x7fcb74348f80 from function key F9
Comment 4 Ladislav Slezák 2017-08-28 14:40:17 UTC
I do not know if that "Index 0 is out of array size" error is relevant here, but it refers to the code (https://github.com/yast/yast-ldap/blob/24c5e9e2523b6cbedadd81869000f6b438234688/src/Ldap.rb#L329) which reads the /etc/openldap/ldap.conf file.

Please, attach that file as well.
Comment 5 Imobach Gonzalez Sosa 2017-09-22 15:55:07 UTC
We would need further information in order to fix this problem. So I am closing this bug report *by now*. Please, feel free to reopen it if you can provide us with that information (mainly YaST logs and /etc/openldap/ldap.conf (removing sensitive data).

Thanks!