Bug 1114993
Summary: | Host installation fails: sasl passwd.db missing - File "/usr/lib64/python2.6/site-packages/vdsm/tool/passwd.py", line 50, in set_saslpasswd | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | [Retired] oVirt | Reporter: | Jiri Belka <jbelka> | ||||||
Component: | vdsm | Assignee: | Yaniv Bronhaim <ybronhei> | ||||||
Status: | CLOSED CURRENTRELEASE | QA Contact: | Jiri Belka <jbelka> | ||||||
Severity: | urgent | Docs Contact: | |||||||
Priority: | unspecified | ||||||||
Version: | 3.5 | CC: | alonbl, andrew, bazulay, danken, dcaroest, gklein, iheim, info, kjachim, mgoldboi, mpavlik, mtayer, myakove, oourfali, pstehlik, rbalakri, yeylon | ||||||
Target Milestone: | --- | Keywords: | AutomationBlocker, Regression, TestBlocker | ||||||
Target Release: | 3.5.0 | ||||||||
Hardware: | Unspecified | ||||||||
OS: | Unspecified | ||||||||
Whiteboard: | infra | ||||||||
Fixed In Version: | ovirt-3.5.0-beta1.1 | Doc Type: | Bug Fix | ||||||
Doc Text: | Story Points: | --- | |||||||
Clone Of: | Environment: | ||||||||
Last Closed: | 2014-10-17 12:38:30 UTC | Type: | Bug | ||||||
Regression: | --- | Mount Type: | --- | ||||||
Documentation: | --- | CRM: | |||||||
Verified Versions: | Category: | --- | |||||||
oVirt Team: | Infra | RHEL 7.3 requirements from Atomic Host: | |||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||
Embargoed: | |||||||||
Bug Depends On: | |||||||||
Bug Blocks: | 1118689 | ||||||||
Attachments: |
|
Description
Jiri Belka
2014-07-01 11:58:53 UTC
Created attachment 913732 [details]
sosreport-LogCollector-20140701135906.7z
Created attachment 913734 [details]
/tmp/sosreport-LogCollector-20140701135906.7z.002
workaround: # saslpasswd2 -c -a libvirt vdsm@ovirt Password: Again (for verification): # /etc/init.d/vdsmd restart Alon - any clue? (In reply to Oved Ourfali from comment #4) > Alon - any clue? no.... this should be taken care of by vdsm-tool configure. Root cause: vdsm assumes that saslpasswd2 is /sbin/saslpasswd2 and on some machines (I guess, RHEL6.5 at least) it is /usr/sbin/saslpasswd2 [root@puma11 ~]# cat /usr/lib64/python2.6/site-packages/vdsm/constants.py | grep saslp EXT_SASLPASSWD2 = '/sbin/saslpasswd2' another workaround: create symlink /sbin/saslpasswd2 pointing to /usr/sbin/saslpasswd2 before you try to install vdsm IMHO it should use PATH from OS and not to hard-code path to commands. (In reply to Jiri Belka from comment #8) > IMHO it should use PATH from OS and not to hard-code path to commands. I fully agree! but hard to convince people here that sysadmin knows how to set path better than developers. Then have a file with ovirt/rhevm related PATH and include it :) Alon, I remember you were in favor of letting the builder set the path to utilities; not that you'd like to see autoconf and all of its full paths dropped. We started using full path due to security-based concern (who knows who set the path for rpm -e), but I must admit that it was never very strong. I wonder what's the specific reason that made /usr/sbin/saslpasswd2 disappear from the build environment (or to be there previously). I guess it never has been, and got the default: configure.ac:AC_PATH_PROG([SASLPASSWD2_PATH], [saslpasswd2], [/sbin/saslpasswd2]) Better to set default to /usr/sbin as the chance of it to work is higher. And yes, I am against of using full path in scripts, I am unsure what the security benefit is... as I can always add LD_PRELOAD and modify whatever you may try to override. As Jiri wrote, you can always drop the full path and override the system path if required in single script that is sourced by all, this is what we are doing in engine-setup for example... search the utilities in our own designated path (that can be overridden by sysadmin if he likes so). Probably you should add: BuildRequires: cyrus-sasl-lib or based on your notation (which I do not like): BuildRequires: /usr/sbin/saslpasswd2 Some discussion about full path[1], I can probably find more, as I always mention this... and remove whenever I can, unless a specific utility should be customized. Using full path is bad for example the move of /sbin/ip into /bin/ip was impossible for these that hardcoded/config detected the location. [1] http://gerrit.ovirt.org/#/c/14826/7/vdsm/init/init_mkdirs.sh,cm *** Bug 1115283 has been marked as a duplicate of this bug. *** *** Bug 1121561 has been marked as a duplicate of this bug. *** Will this get backported to 3.4.3? Quite a show stopper if 3.4.3 is shipping a buggy version. already replied on that question somewhere. no its not, its relevant only since commit http://gerrit.ovirt.org/27298 (merged since 3.5 only) which changes this (lib/vdsm/tool/passwd.py): 2014-04-30 14:29:36 +0300 38) script = [constants.EXT_SASLPASSWD2, '-p', '-a', 'libvirt', instead of hardcoded path. the constant was wrong long time again, but we didn't use it I updated a node manually with latest VDSM rpm's from 3.5-pre repo and things are working now. Thanks! ok, no problem found. a clean host was added into ovirt 3.5-pre setup without problem. # grep -RI saslpasswd2 /usr/lib64/python2.6/site-packages/vdsm /usr/lib64/python2.6/site-packages/vdsm/constants.py:EXT_SASLPASSWD2 = '/usr/sbin/saslpasswd2' # grep -lRI saslpasswd2 /usr/lib64/python2.6/site-packages/vdsm | xargs rpm -qf vdsm-python-4.16.1-0.gita4d9abf.el6.x86_64 oVirt 3.5 has been released and should include the fix for this issue. |