Bug 32388

Summary: log socket is created with wrong name and perms by rpm -i
Product: Sisyphus Reporter: Ivan Zakharyaschev <imz>
Component: openldap-serversAssignee: Anton V. Boyarshinov <boyarsh>
Status: NEW --- QA Contact: qa-sisyphus
Severity: major    
Priority: P3 CC: at, boyarsh, glebfm, imz, klark, ldv, shaba, slev, vitty, viy
Version: unstable   
Hardware: all   
OS: Linux   
URL: https://lists.altlinux.org/pipermail/sisyphus-incominger/2016-August/441603.html
Bug Depends on: 32387    
Bug Blocks:    

Description Ivan Zakharyaschev 2016-08-18 01:35:39 MSK
openldap-servers-2.4.42-alt4

log socket is created with wrong name and perms by rpm -i

+++ This bug was initially created as a clone of Bug #32387 +++

rpm-4.0.4-alt100.94

rpm -i creates files with wrong names sometimes. Example: /var/lib/ldap/dev/log

https://lists.altlinux.org/pipermail/sisyphus-incominger/2009-October/238900.html :

x86_64: alterator-squid=1.1-alt2 post-install unowned files:
/etc/caterva
/etc/caterva/squid
/usr/lib/alterator/hooks/firsttime.d
/usr/share/alterator-browser-qt
/usr/share/alterator-browser-qt/design
/usr/share/alterator/design/scripts
/usr/share/alterator/interfaces/guile/backend
/usr/share/alterator/interfaces/guile/type
/usr/share/alterator/interfaces/jquery
/usr/share/snmp
/var/lib/ldap/dev/log;4adde46e
/var/lib/ldap/dev/urandom

https://lists.altlinux.org/pipermail/sisyphus-incominger/2016-August/441603.html :

x86_64: openldap-servers=2.4.42-alt4 post-install unowned files:
/var/lib/ldap/dev/log;57b4ccdb

Here is how this happens:

strace -e trace=file -fF rpm -Uhv openldap-servers....
.....
open("/etc/sysconfig/ldap;57b4db0e", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 10
lstat("/etc/sysconfig/ldap", 0x7fffdc7e8960) = -1 ENOENT (No such file or directory)
rename("/etc/sysconfig/ldap;57b4db0e", "/etc/sysconfig/ldap") = 0
chown("/etc/sysconfig/ldap", 0, 0)      = 0
chmod("/etc/sysconfig/ldap", 0644)      = 0
utime("/etc/sysconfig/ldap", [2016/06/08-16:07:19, 2016/06/08-16:07:19]) = 0
lstat("/etc/syslog.d/ldap;57b4db0e", 0x654270) = -1 ENOENT (No such file or directory)
symlink("/var/lib/ldap/dev/log", "/etc/syslog.d/ldap;57b4db0e") = 0
....
lstat("/var/lib/ldap/dev/log;57b4db0e", 0x654270) = -1 ENOENT (No such file or directory)
mknod("/var/lib/ldap/dev/log;57b4db0e", S_IFSOCK) = 0
....

..and there are no more mentions of /dev/log*

So, normally, as we can see from this log, rpm creates the file with a temporary name, and then renames it (as in the case of /etc/sysconfig/ldap ).

But such rename is not done after:

mknod("/var/lib/ldap/dev/log;57b4db0e", S_IFSOCK) = 0

$ rpm -qp /ALT/Sisyphus/x86_64/RPMS.classic/openldap-servers-2.4.42-alt4.x86_64.rpm -lv | fgrep /log
lrwxrwxrwx    1 root    root               21 Aug 17 22:40 /etc/syslog.d/ldap -> /var/lib/ldap/dev/log
srwxrwxr-x    1 root    ldap                0 Aug 17 22:40 /var/lib/ldap/dev/log
Comment 1 Ivan Zakharyaschev 2017-12-23 00:43:53 MSK
Если в Sisyphus с rpm-4.13 нет этой проблемы, надо будет на p8 перевесить...