(Hi Bill) So we have a SunFire X4200 running RHEL4U4 x86_64 with an HBA card connected to an external StorEdge with 31+ disks. When running 'kudzu -p -c HD', kudzu can only probe 25 disks, instead of the 38 available (31 external, 4 internal, cdrom, virtual cdrom, virtual floppy). Turns out the bug is this: kudzu reads from /proc/scsi/scsi with a read() command, but does not check the actual value returned by read() (the actual number of bytes read). read buffer is 16k, so for a regular file this shouldn't be a problem. In our case, with so many scsi devices, /proc/scsi/scsi has about 6k characters, so no prob for a 16k buffer. But /proc/scsi/scsi is no regular file, and the first call to read() returns only about 3800 bytes, which breaks the realloc loop. You'll understand easily when you look at the code. Please find attached patch. Note this affects kudzu 1.1.95.15. I think kudzu 1.2.x uses sysfs and therefore should be ok (didn't verify though). Corresponding Issue Tracker: 97738. Thanks, Denis Leroy Sun Microsystems, Inc.
Created attachment 136356 [details] Patch for scsi.c, fixes /proc/scsi/scsi read loop
This request was evaluated by Red Hat Product Management for inclusion in a Red Hat Enterprise Linux maintenance release. Product Management has requested further review of this request by Red Hat Engineering, for potential inclusion in a Red Hat Enterprise Linux Update release for currently deployed products. This request is not yet committed for inclusion in an Update release.
*** Bug 203811 has been marked as a duplicate of this bug. ***
Added, will be in 1.1.95.18-1 or later.
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHBA-2007-0292.html