Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.

Bug 1145192

Summary: RFE: Allow install of i686 crash without name conflict on x86_64 arch
Product: Red Hat Enterprise Linux 6 Reporter: Dave Wysochanski <dwysocha>
Component: crashAssignee: Dave Anderson <anderson>
Status: CLOSED WONTFIX QA Contact: Red Hat Kernel QE team <kernel-qe>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.7Keywords: FutureFeature, Patch
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-02-10 20:33:29 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:
Attachments:
Description Flags
proof of concept patch which just renames 'crash' to 'crash-i686' on i686 none

Description Dave Wysochanski 2014-09-22 14:17:27 UTC
Description of problem:
As far as I know there should be no reason why we can't run 32-bit Intel (i686) crash on 64-bit (x86_64) machine.  The main problem I could find is the name conflict of the crash binary itself in /usr/bin/crash.

Request the spec file or install procedure allow for i686 crash to be installed on x86_64 without a name conflict (for example, install as /usr/bin/crash-i686).


Version-Release number of selected component (if applicable):
crash-7.x


How reproducible:
Everytime


Steps to Reproduce:
1. Install crash-7.*.86_64, note path to binary is /usr/bin/crash 
2. Install crash-7.*.i686, note path to binary is /usr/bin/crash


Actual results:
x86_64 and i686 crash binary have same filename path


Expected results:
x86_64 and i686 crash binary have different filename path


Additional info:
As a result of constant requests for this in our vmcore analysis system, I created a small patch to the spec file which accomplishes the above and will attach it to this bug.  There may be a better way and I'd like to get this in officially so we don't have to build special crash packages for our vmcore system.

Note that crash-extensions already "just work" due to the /usr/lib64 and /usr/lib install directories

There are other files in the crash RPM which will have conflicts, but I'm not sure we care about them (README and man page).  I didn't check carefully, but unless there's arch-specific stuff in the man page, the only time they may be different is if the i686 version of crash is different than the x86_64 version.  Maybe we check for this and disallow the install due to conflicts, or maybe it happens already?

Comment 1 Dave Wysochanski 2014-09-22 14:17:39 UTC
Created attachment 940037 [details]
proof of concept patch which just renames 'crash' to 'crash-i686' on i686

Comment 3 Dave Anderson 2014-09-22 14:39:13 UTC
Wouldn't your proof of concept also change the name when installing
the package on a 32-bit host?  We certainly wouldn't want to do that.

(Not to mention that your sample crash.spec file is not of the RHEL 
variety, given that it's got all that "extensions" sub-package
crap that only exists in the upstream crash.spec file.)

Anyway, I'm not a packaging expert and have no idea how this could
(or should) be done.  Is there any other RHEL package where this kind
of thing is done?

To be honest, I always just pull the 32-bit crash binary from its rpm
and copy it to /usr/bin/crash32, and don't find that particularly onerous. 
And this really is primarily because I (and you guys in GSS) find it
common to debug the two strains of vmcore on the same machine.  I'm not
under the impression that this would be of much use to a paying customer.

Comment 4 Dave Wysochanski 2014-09-30 15:32:17 UTC
(In reply to Dave Anderson from comment #3)
> Wouldn't your proof of concept also change the name when installing
> the package on a 32-bit host?  We certainly wouldn't want to do that.
> 
Right it's got some flaws but should be fixable.


> (Not to mention that your sample crash.spec file is not of the RHEL 
> variety, given that it's got all that "extensions" sub-package
> crap that only exists in the upstream crash.spec file.)
> 
Interesting.  I thought I had just pulled from rhel6 dist-git and edited that one part but maybe in the pulling of the upstream tarball I pulled the spec file as well somehow.  In any case it builds on rhel6 crash dist-git but could be fixed.


> Anyway, I'm not a packaging expert and have no idea how this could
> (or should) be done.  Is there any other RHEL package where this kind
> of thing is done?
> 
I am not sure either.


> To be honest, I always just pull the 32-bit crash binary from its rpm
> and copy it to /usr/bin/crash32, and don't find that particularly onerous. 
> And this really is primarily because I (and you guys in GSS) find it
> common to debug the two strains of vmcore on the same machine.  I'm not
> under the impression that this would be of much use to a paying customer.

It would be of use to any large customer who has a similar vmcore analysis setup (maybe some TAM customers).  I cannot say who that is but there are customers in secure environments which cannot give us vmcores and require us to give them crash commands.  If these same customers use 32-bit machines they would want the same functionality so I thought it was worthwhile submitting a bug.  Note that retrace-server is public so none of our system is private and anyone can set it up.  All that said, I agree it's probably a low # of customers that would want it.

Internally we're trying to get away from manual steps in setting up our vmcore analysis system.  Right now we have to build our own crash from upstream and patch it with a few things.  If this bug is just too nasty then we can do the above workaround when we update it but it's a manual step and people can get it wrong.  Just internally I know of 3 unique retrace-server vmcore analysis systems so that's a manual step on all 3 of them.  But again, if we're just renaming why not do it in the spec file install step?

Comment 5 Dave Anderson 2014-09-30 15:52:35 UTC
> Right it's got some flaws but should be fixable.

Well, when you figure out how it could be done, and still pass the errata's
rpmdiff step, tell me how...  ;-)

But on the other hand, it's just so trivial to accomplish:

  $ rpm2cpio crash-7.0.8-2.el7.i686.rpm | cpio -id --rename ./usr/bin/crash

Although the --rename option is interactive, it's still something that can be
done in a simple shell script as part of your toolset.
 
And I also don't believe that it should be the only RHEL package that does
such an odd-ball thing.

Comment 6 Guy Streeter 2014-10-02 15:05:47 UTC
I'm not the one who has to do this when we need to update crash on the retrace servers, so I can't comment on how much effort this would save. It seems like it isn't much of a pain to unpack the rpm and edit the specfile and rebuild a one-off package. And if as Dave says the only thing we need from the 32bit rpm is the crash executable, that's even simpler.

You may want to do it another way, though:

1. Install the 32bit crash rpm, so the 32bit dependencies get installed.
2. Hard-link or copy /usr/bin/crash to /usr/bin/crash32
3. Uninstall 32bit crash
4. Install 64bit crash

Since we always do it in a maintenance window, this won't be disruptive.

I haven't heard any of our customers mention a need for both arches on one machine. I'm OK with WONTFIX on this one.