From owner-freebsd-bugs@FreeBSD.ORG Sun Sep 19 15:20:01 2010 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 702E4106566B for ; Sun, 19 Sep 2010 15:20:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 2EB5F8FC16 for ; Sun, 19 Sep 2010 15:20:01 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id o8JFK0s7052107 for ; Sun, 19 Sep 2010 15:20:00 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id o8JFK0oM052106; Sun, 19 Sep 2010 15:20:00 GMT (envelope-from gnats) Resent-Date: Sun, 19 Sep 2010 15:20:00 GMT Resent-Message-Id: <201009191520.o8JFK0oM052106@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Jeremy Chadwick Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 738F8106566C for ; Sun, 19 Sep 2010 15:18:45 +0000 (UTC) (envelope-from jdc@koitsu.dyndns.org) Received: from qmta14.emeryville.ca.mail.comcast.net (qmta14.emeryville.ca.mail.comcast.net [76.96.27.212]) by mx1.freebsd.org (Postfix) with ESMTP id 5CED58FC1B for ; Sun, 19 Sep 2010 15:18:45 +0000 (UTC) Received: from omta14.emeryville.ca.mail.comcast.net ([76.96.30.60]) by qmta14.emeryville.ca.mail.comcast.net with comcast id 8edX1f0021HpZEsAEf5bcM; Sun, 19 Sep 2010 15:05:35 +0000 Received: from koitsu.dyndns.org ([98.248.41.155]) by omta14.emeryville.ca.mail.comcast.net with comcast id 8f5Z1f0093LrwQ28af5ZbG; Sun, 19 Sep 2010 15:05:34 +0000 Received: by icarus.home.lan (Postfix, from userid 1000) id 873439B427; Sun, 19 Sep 2010 08:05:33 -0700 (PDT) Message-Id: <20100919150533.873439B427@icarus.home.lan> Date: Sun, 19 Sep 2010 08:05:33 -0700 (PDT) From: Jeremy Chadwick To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: mav@FreeBSD.org, philip@paeps.cx, harti@FreeBSD.org Subject: bin/150723: bsnmpd(1): add knowledge of "ada" disks (ATA via SCSI CAM) X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Jeremy Chadwick List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 19 Sep 2010 15:20:01 -0000 >Number: 150723 >Category: bin >Synopsis: bsnmpd(1): add knowledge of "ada" disks (ATA via SCSI CAM) >Confidential: no >Severity: non-critical >Priority: high >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun Sep 19 15:20:00 UTC 2010 >Closed-Date: >Last-Modified: >Originator: Jeremy Chadwick >Release: FreeBSD 8.1-STABLE amd64 >Organization: >Environment: System: FreeBSD icarus.home.lan 8.1-STABLE FreeBSD 8.1-STABLE #0: Wed Sep 15 14:59:46 PDT 2010 root@icarus.home.lan:/usr/obj/usr/src/sys/X7SBA_RELENG_8_amd64 amd64 >Description: bsnmpd(1) does not properly handle disks attached to the ada(4) subsystem. The daemon outputs the following syslog errors when starting: snmpd[2964]: disk_OS_get_disks: device 'ada3' not in device list snmpd[2964]: disk_OS_get_disks: device 'ada2' not in device list snmpd[2964]: disk_OS_get_disks: device 'ada1' not in device list snmpd[2964]: disk_OS_get_disks: device 'ada0' not in device list This is for a system with the following in sysctl kern.disks: kern.disks: ada3 ada2 ada1 ada0 These disks are: ada0 at ahcich0 bus 0 scbus0 target 0 lun 0 ada0: ATA-8 SATA 2.x device ada0: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes) ada0: Command Queueing enabled ada0: 286168MB (586072368 512 byte sectors: 16H 63S/T 16383C) ada1 at ahcich1 bus 0 scbus1 target 0 lun 0 ada1: ATA-8 SATA 2.x device ada1: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes) ada1: Command Queueing enabled ada1: 953869MB (1953525168 512 byte sectors: 16H 63S/T 16383C) ada2 at ahcich2 bus 0 scbus2 target 0 lun 0 ada2: ATA-8 SATA 2.x device ada2: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes) ada2: Command Queueing enabled ada2: 953869MB (1953525168 512 byte sectors: 16H 63S/T 16383C) ada3 at ahcich3 bus 0 scbus3 target 0 lun 0 ada3: ATA-8 SATA 2.x device ada3: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes) ada3: Command Queueing enabled ada3: 953869MB (1953525168 512 byte sectors: 16H 63S/T 16383C) Walking the appropriate OID branches is interesting: - hrDeviceType is correct - hrDeviceDescr doesn't show the hard disk model/firmware version - hrDeviceStatus is incorrect - hrDiskStorageMedia is incorrect - hrDiskStorageCapacity is correct - (Unrelated) hrDiskStorageRemoveble appears to have a typo in its MIB name (should be hrDiskStorageRemovable -- "a", not "e"!) hrDeviceTable = HOST-RESOURCES-MIB::hrDeviceIndex.158 = INTEGER: 158 HOST-RESOURCES-MIB::hrDeviceIndex.159 = INTEGER: 159 HOST-RESOURCES-MIB::hrDeviceIndex.160 = INTEGER: 160 HOST-RESOURCES-MIB::hrDeviceIndex.161 = INTEGER: 161 HOST-RESOURCES-MIB::hrDeviceType.158 = OID: HOST-RESOURCES-TYPES::hrDeviceDiskStorage HOST-RESOURCES-MIB::hrDeviceType.159 = OID: HOST-RESOURCES-TYPES::hrDeviceDiskStorage HOST-RESOURCES-MIB::hrDeviceType.160 = OID: HOST-RESOURCES-TYPES::hrDeviceDiskStorage HOST-RESOURCES-MIB::hrDeviceType.161 = OID: HOST-RESOURCES-TYPES::hrDeviceDiskStorage HOST-RESOURCES-MIB::hrDeviceDescr.158 = STRING: ada3: HOST-RESOURCES-MIB::hrDeviceDescr.159 = STRING: ada2: HOST-RESOURCES-MIB::hrDeviceDescr.160 = STRING: ada1: HOST-RESOURCES-MIB::hrDeviceDescr.161 = STRING: ada0: HOST-RESOURCES-MIB::hrDeviceID.158 = OID: SNMPv2-SMI::zeroDotZero HOST-RESOURCES-MIB::hrDeviceID.159 = OID: SNMPv2-SMI::zeroDotZero HOST-RESOURCES-MIB::hrDeviceID.160 = OID: SNMPv2-SMI::zeroDotZero HOST-RESOURCES-MIB::hrDeviceID.161 = OID: SNMPv2-SMI::zeroDotZero HOST-RESOURCES-MIB::hrDeviceStatus.158 = INTEGER: unknown(1) HOST-RESOURCES-MIB::hrDeviceStatus.159 = INTEGER: unknown(1) HOST-RESOURCES-MIB::hrDeviceStatus.160 = INTEGER: unknown(1) HOST-RESOURCES-MIB::hrDeviceStatus.161 = INTEGER: unknown(1) HOST-RESOURCES-MIB::hrDeviceErrors.158 = Counter32: 0 HOST-RESOURCES-MIB::hrDeviceErrors.159 = Counter32: 0 HOST-RESOURCES-MIB::hrDeviceErrors.160 = Counter32: 0 HOST-RESOURCES-MIB::hrDeviceErrors.161 = Counter32: 0 hrDiskStorageTable = HOST-RESOURCES-MIB::hrDiskStorageAccess.158 = INTEGER: readWrite(1) HOST-RESOURCES-MIB::hrDiskStorageAccess.159 = INTEGER: readWrite(1) HOST-RESOURCES-MIB::hrDiskStorageAccess.160 = INTEGER: readWrite(1) HOST-RESOURCES-MIB::hrDiskStorageAccess.161 = INTEGER: readWrite(1) HOST-RESOURCES-MIB::hrDiskStorageMedia.158 = INTEGER: unknown(2) HOST-RESOURCES-MIB::hrDiskStorageMedia.159 = INTEGER: unknown(2) HOST-RESOURCES-MIB::hrDiskStorageMedia.160 = INTEGER: unknown(2) HOST-RESOURCES-MIB::hrDiskStorageMedia.161 = INTEGER: unknown(2) HOST-RESOURCES-MIB::hrDiskStorageRemoveble.158 = INTEGER: false(2) HOST-RESOURCES-MIB::hrDiskStorageRemoveble.159 = INTEGER: false(2) HOST-RESOURCES-MIB::hrDiskStorageRemoveble.160 = INTEGER: false(2) HOST-RESOURCES-MIB::hrDiskStorageRemoveble.161 = INTEGER: false(2) HOST-RESOURCES-MIB::hrDiskStorageCapacity.158 = INTEGER: 976762584 KBytes HOST-RESOURCES-MIB::hrDiskStorageCapacity.159 = INTEGER: 976762584 KBytes HOST-RESOURCES-MIB::hrDiskStorageCapacity.160 = INTEGER: 976762584 KBytes HOST-RESOURCES-MIB::hrDiskStorageCapacity.161 = INTEGER: 293036184 KBytes >How-To-Repeat: Run bsnmpd on a machine with ada(4) disks. >Fix: Things I've tried: - Modifying modules/snmp_hostres/hostres_diskstorage_tbl.c, around line 476, to include a strncmp() for "ada". This does improve things slightly, but not enough to get disk_OS_get_disks() to stop complaining - Modifying modules/snmp_hostres/hostres_diskstorage_tbl.c, around line 260, adding "ada" to the lookup[] structure. This may have had an effect, but again, not enough to get disk_OS_get_disks() to stop complaining I'm marking this as high priority because lots of server admins at this point are using ada(4) instead of ad(4). I can provide patches for the hrDiskStorageRemoveble typo if need be, but the other stuff will need some who's a bit more familiar with the device_find_by_name() framework and why it's returning NULL for ada(4) devices. >Release-Note: >Audit-Trail: >Unformatted: