Bug 228873

Summary: openibd is not loaded on Pathscale InfiniBand cards.
Product: Red Hat Enterprise Linux 4 Reporter: Konrad Rzeszutek <konradr>
Component: openibAssignee: Doug Ledford <dledford>
Status: CLOSED CURRENTRELEASE QA Contact: Brian Brock <bbrock>
Severity: medium Docs Contact:
Priority: high    
Version: 4.5CC: gozen, jbaron, jburke, konradr, mjenner, tao
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: openib-1.1-6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-02-15 22:03:38 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 185457    
Attachments:
Description Flags
Patch to init script to load with Pathscale InfiniBand cards.
none
Patch to openibd script to work around difference between RHEL4 and RHEL5 action statement in init scripts none

Comment 1 Konrad Rzeszutek 2007-02-15 17:46:15 UTC
Created attachment 148125 [details]
Patch to init script to load with Pathscale InfiniBand cards.

Patch to openibd that fixes the problem.

Comment 2 Doug Ledford 2007-02-15 18:05:49 UTC
This bug has already been fixed in the packages slated for RHEL4.5.  Test
packages to confirm the fix can be downloaded from
http://people.redhat.com/dledford/Infiniband/openib/1.1/5

Note, this version of the openibd script fixes the problem in a more generic
fashion and removes the need to hardcode lspci values in the init script itself,
instead relying on modinfo tables read from modules to determine what devices
have a driver that supports them.

Comment 3 Konrad Rzeszutek 2007-02-15 18:11:31 UTC
Wow. That was super quick. Thanks!

Comment 4 Konrad Rzeszutek 2007-02-15 19:38:08 UTC
[root@ibm-ridgeback ~]# /etc/init.d/openibd start
Loading OpenIB kernel modules:  execvp: No such file or directory
[FAILED]
[root@ibm-ridgeback ~]#


Comment 5 Konrad Rzeszutek 2007-02-15 19:49:06 UTC
Looking at the scripts, the openibd does this:

start)
                action $"Loading OpenIB kernel modules: " start
and inside action function (in /etc/rc.d/init.d/functions) this fails:

  initlog $INITLOG_ARGS -c "$*" && success $"$STRING" || failure $"$STRING"

The $* translates to start, and initlog tries to execute that and fails.



Comment 6 Doug Ledford 2007-02-15 20:30:27 UTC
Created attachment 148145 [details]
Patch to openibd script to work around difference between RHEL4 and RHEL5 action statement in init scripts

OK, that's a valid issue.  I had already fixed it, but it evidently didn't get
checked into CVS.  I'll make an openib-1.1-6 that corrects the problem.  I'll
also attach a diff from the broken openibd to the fixed openibd so you can test
for yourself that the problem is solved.

Comment 7 Doug Ledford 2007-02-15 21:16:18 UTC
openib-1.1-6 has been built into the build system and is also available on my
people page.

Comment 8 Konrad Rzeszutek 2007-02-15 21:41:44 UTC
Patch fixes the problem.

Comment 9 Doug Ledford 2007-02-15 22:03:38 UTC
Since this isn't attached to an errata anywhere, it won't get transitioned to
closed when the errata ships, so closing it out as CURRENTRELEASE since the fix
has been verified.

Comment 10 Gurhan Ozen 2007-02-15 22:27:09 UTC
Am I missing something here? I did test this with rhel 5.0 (openib-1.1-4) and it
did indeed work. Or was this something particular to rhel 4.5 ?



Comment 11 Doug Ledford 2007-02-15 22:39:54 UTC
It's particular to RHEL4.5.  In specific, the function action() in
/etc/init.d/functions is different between RHEL4.5 and RHEL5 and it requires a
different method of usage.  In RHEL5, action() can be used to call shell
functions embedded in the init script (which is what openibd did), where as in
RHEL4.5, action() requires the first argument to  be an executable file on the
filesystem.  I rewrote the start/stop/restart sections of the openibd script to
not use action() and instead do what action() does on RHEL5.  I did this *long*
ago on one of my test machines, but did the editing on the file actually in
/etc/init.d, and once I got it right, forgot to copy it into my cvs repo and
check it in, hence why it was missing from the build done through the build
system :-(