Bug 1027473

Summary: /usr/libexec/lcrso/{coroparse,objdb,quorum_testquorum,...}.lcrso set executable needlessly
Product: Red Hat Enterprise Linux 6 Reporter: Jan Pokorný [poki] <jpokorny>
Component: corosyncAssignee: Jan Friesse <jfriesse>
Status: CLOSED WONTFIX QA Contact: Cluster QE <mspqa-list>
Severity: low Docs Contact:
Priority: low    
Version: 6.4CC: ccaulfie, cluster-maint
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-01-06 12:48:55 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jan Pokorný [poki] 2013-11-06 22:23:45 UTC
# for p in $(for i in /usr/libexec/lcrso/*; do rpm -qf "${i}"; done \
  | sort -u); do echo "${p}:"; rpm -ql "${p}" \
  | grep -F /usr/libexec/lcrso/; done
> [...]
> corosync-1.4.1-17.el6.x86_64:
> /usr/libexec/lcrso/coroparse.lcrso
> /usr/libexec/lcrso/objdb.lcrso
> /usr/libexec/lcrso/quorum_testquorum.lcrso
> /usr/libexec/lcrso/quorum_votequorum.lcrso
> /usr/libexec/lcrso/service_cfg.lcrso
> /usr/libexec/lcrso/service_confdb.lcrso
> /usr/libexec/lcrso/service_cpg.lcrso
> /usr/libexec/lcrso/service_evs.lcrso
> /usr/libexec/lcrso/service_pload.lcrso
> /usr/libexec/lcrso/vsf_quorum.lcrso
> /usr/libexec/lcrso/vsf_ykd.lcrso
> [...]

# /usr/libexec/lcrso/coroparse.lcrso
> Segmentation fault (core dumped)

Comment 2 Jan Friesse 2013-11-07 08:32:55 UTC
Moving to 6.6 because 6.5 capacity constrained.

Comment 3 Jan Friesse 2014-01-06 12:48:55 UTC
Libraries (*.so) files are generally created executable (and lcrso is just renamed so). Only very few libraries contains valid entry point (libc does, pthread does, ld.so does). Vast majority of libraries execution ends with segfault. Take a look to /lib{64} or /usr/lib{64}.

Executable bit is also used on some platforms (like hp-ux) and without it, dl_open doesn't work.

Generally, I don't have any intent to solve this in RHEL 6, because possible breaking compatibility and general nonsense of such action. RHEL 7 corosync doesn't include lcrso so it's already solved there.