Created attachment 148125 [details] Patch to init script to load with Pathscale InfiniBand cards. Patch to openibd that fixes the problem.
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.
Wow. That was super quick. Thanks!
[root@ibm-ridgeback ~]# /etc/init.d/openibd start Loading OpenIB kernel modules: execvp: No such file or directory [FAILED] [root@ibm-ridgeback ~]#
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.
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.
openib-1.1-6 has been built into the build system and is also available on my people page.
Patch fixes the problem.
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.
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 ?
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 :-(