Patch Name: PHKL_29899 Patch Description: s700_800 11.11 SCSI Tape (stape) cumulative Creation Date: 04/04/02 Post Date: 04/04/19 Hardware Platforms - OS Releases: s700: 11.11 s800: 11.11 Products: N/A Filesets: OS-Core.CORE-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP ProgSupport.C-INC,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP OS-Core.KERN2-RUN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP OS-Core.KERN2-RUN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP Automatic Reboot?: Yes Status: General Release Critical: No (superseded patches were critical) PHKL_29248: PANIC The risk of panic is only of concern in the rare case of a defective tape drive returning invalid Log Sense command Tape Alert data. PHKL_26785: PANIC The risk of panic is only of concern in the rare case of a defective FC-SCSI bridge or tape device that returns an invalid SCSI status. PHKL_22857: PANIC The danger of panic is only valid when using Fujitsu tape drives. Category Tags: defect_repair hardware_enablement enhancement general_release critical panic manual_dependencies Path Name: /hp-ux_patches/s700_800/11.X/PHKL_29899 Symptoms: PHKL_29899: ( SR:8606350788 CR:JAGaf11600 ) Veritas Netbackup does not proactively clean dirty tape media when automatic tape cleaning is enabled. ( SR:8606350790 CR:JAGaf11602 ) Enables stape driver support for the HP DAT72X6 (Q1567A/Q1566A) autoloader. Without this change, a user will not be able to use fbackup(1M) with the HP DAT72X6 (Q1567A/Q1566A) autoloader. ( SR:8606348043 CR:JAGaf08865 ) Enables support for the HP SuperDLT 600 (AA984A/AA985A) tape drive. Without this change, the stape driver may not set the density and compression optimally for the HP SuperDLT 600 (AA984A/AA985A) tape drive. ( SR:8606355707 CR:JAGaf16421 ) Enables support for STK 9840C tape drives. Without this change, the stape driver may not set the density and compression optimally for the STK 9840C tape drive. PHKL_29248: ( SR:8606304125 CR:JAGae67473 ) When using a defective tape drive that returns Log Sense data reporting an invalid data length, the system may panic during a close() system call. The following stack trace is seen: panic+0x6c report_trap_or_int_and_panic+0x94 trap+0xef4 nokgdb+0x8 st_get_tape_alert_data+0x20c st_close+0x5c scsi_lun_open+0xbc8 stape_open+0x5c call_open_close+0x1c0 opend+0x124 spec_open+0xb4 vns_copen+0x4c vn_open+0xb4 copen+0xa8 open+0x38 syscall+0x204 $syscallrtn+0x0 ( SR:8606324609 CR:JAGae86915 ) Enables stape driver support for HP DAT72 (C7438A) tape drives. Without this change, a user will not be able to use fbackup(1m) with HP DAT72 (C7438A) drives. ( SR:8606279011 CR:JAGae43067 ) Enables support for STK 9840B, STK 9940B, and STK 9940A tape drives. Without this change, the stape driver may not set the density and compression optimally on these tape drives. ( SR:8606324617 CR:JAGae86923 ) Enables support for HP branded SuperDLT 320 (257319), VS80 Autoloader (C9264CB-VS80), and HP branded VS80 tape drives (C7503A/C7504A/C7507A). Without this change, the stape driver may not set the density and compression optimally for the tape drive. PHKL_28217: ( SR:8606287811 CR:JAGae51744 ) Enhancement request for HP Ultrium-2 and SDLT 320 tape drive support in the stape tape driver. PHKL_27304: ( SR:8606260843 CR:JAGae25165 ) When running the Tunables Configuration tool in SAM on a 32 bit machine with the patch PHKL_26785 installed, SAM will crash giving the following two errors: A SAM internal error has occurred. The error handler has gotten the error code 0 of type NOTE with the associated strings: st_ats_safe Internal error: Cannot find driver/module "" in the internal kernel configuration data structures. ( SR:8606267630 CR:JAGae31871 ) When doing I/O to Compaq branded DLT8000 and SuperDLT tape drives using device files with BEST density, compression is not enabled. PHKL_26785: ( SR:8606255183 CR:JAGae19510 ) When using an Exabyte 8505XL tape drive with the tape2 driver, the following command sequence results in the last command failing with an EIO error: tar cf /dev/rmt/0mn anyfile mt -t /dev/rmt/0mn rew mt -t /dev/rmt/0mn fsf 1 ( SR:8606246652 CR:JAGae13095 ) When using a FC-SCSI bridge, the system may panic during normal I/O. The following stack trace is seen: panic+0x14 scsi_action+0x3ec scsi_cbfn+0x268 fcpdev_scsi_comp+0x4c fcpbh_scsi_comp+0x8c8 fcpbh_fcp_cbfn+0x410 fcpbh_rcv_completer+0xbc4 fcT1_isr+0xc8c epic_isr+0x54 mp_ext_interrupt+0x14c ivti_patch_to_nop3+0x0 idle+0x2b8 swidle_exit+0x0 ( SR:8606255186 CR:JAGae19513 ) A tar command to a DDS4 tape drive using a DDS3 density device file (ie, /dev/rmt/c1t4d0DDS3b) fails with the error message "cannot open device"; yet, tar commands to device files configured with the BEST density setting succeed. ( SR:8606187817 CR:JAGad57026 ) When sharing a tape drive between two servers, running the command insf or mksf on one host (HOST A) to create special device files for the tape device will cause any command from the other server (Host B) to the tape drive to fail with an EBUSY error. ( SR:8606251513 CR:JAGae17578 ) An attempt to restore data from a tape backup created in a SAN backup configuration fails because the backup application does not recognize the data on the tape. ( SR:8606204371 CR:JAGad73553 ) Enhancement request to grant access to tape drive identification and tape alert information without sending I/O to the tape drive. PHKL_22857: ( SR:8606173156 CR:JAGad42416 ) When using a Fujitsu tape drive, the system may panic during open due to a data page fault. The following stack trace is seen: panic+0x14 report_trap_or_int_and_panic+0x4c trap+0xea8 $RDB_trap_patch+0x38 st_fuji_mode_enable+0xfc st_open+0x1434 scsi_lun_open+0x718 stape_open+0xc4 call_open_close+0x114 opend+0x108 spec_open+0x6c vns_copen+0x48 vn_open+0x88 copen+0xdc open+0x38 syscall+0x1c8 $syscallrtn+0x0 ( SR:8606173157 CR:JAGad42417 ) An open to a freshly reset or powered-on DLT tape drive loaded with media attached to a FC-SCSI Bridge will fail with errno EIO. ( SR:8606163819 CR:JAGad33123 ) An MTIOCGET ioctl sent to a tape drive without media loaded will fail with ENXIO. Also includes hardware enablement for Benchmark DLT1 tape drive. ( SR:8606173160 CR:JAGad42420) No symptoms. Enhancement request to add stape driver support for the SuperDLT 220 tape drive. PHKL_25770: ( SR:8606226105 CR:JAGad95176 ) Enhancement request to change the default value of the stape kernel tuneable "st_ats_enabled" to 0. Defect Description: PHKL_29899: ( SR:8606350788 CR:JAGaf11600 ) In patch PHKL_26785, the stape driver added functionality where it retrieves tape drive Tape Alert information as part of the stape driver's close() sequence. By SCSI-2 specification, Tape Alert data is cleared by the tape drive when the data is retrieved from the tape drive. Veritas Netbackup is unable to proactively detect dirty tape media when automatic tape cleaning is enabled because the stape driver is retrieving, and subsequently causing the tape drive to clear, the tape drive's Tape Alert information before Netbackup can access the data. Resolution: The stape driver will no longer retrieve Tape Alert information during the driver's close() sequence. ( SR:8606350790 CR:JAGaf11602 ) The stape driver does not support the HP DAT72X6 (Q1567A/Q1566A) autoloader. Resolution: New device support added. ( SR:8606348043 CR:JAGaf08865 ) The stape driver does not support the HP SuperDLT 600 (AA984A/AA985A) tape drive. Resolution: New device support added. ( SR:8606355707 CR:JAGaf16421 ) The stape driver does not support the STK 9840C tape drive. Resolution: New device support added. PHKL_29248: ( SR:8606304125 CR:JAGae67473 ) If a tape drive returns an invalid data length in Log Sense data, the stape driver does not validate the data length reported in the Log Sense data against the actual amount of data retrieved by the interface driver. Under conditons where the reported length is larger than the amount of data retrieved by the interface driver, the stape driver may access the data buffer beyond it's actual length causing a panic. Resolution: The stape driver now compares the data length reported in the Log Sense data wth the amount of data reported by the interface driver. If the two are not equal as they should be, the stape driver does not attempt to decode the data returned by the device. ( SR:8606324609 CR:JAGae86915 ) The stape driver does not support the DAT72 (C7438A) tape drive. Resolution: None Required - new device support added. ( SR:8606279011 CR:JAGae43067 ) The stape driver does not support the STK 9840B, STK 9940B, and STK 9940A tape drives. Resolution: None required - new device support added. ( SR:8606324617 CR:JAGae86923 ) The stape driver does not support the HP branded SuperDLT 320 (257319), VS80 Autoloader (C9264CB-VS80), and HP branded VS80 tape drives (C7503A/C7504A/C7507A). Resolution: None required - new device support added. PHKL_28217: ( SR:8606287811 CR:JAGae51744 ) Enhancement request for HP Ultrium-2 and SDLT 320 tape drive support in the stape tape driver. Resolution: None required - enhancement request. PHKL_27304: ( SR:8606260843 CR:JAGae25165 ) The parameter st_san_safe is mispelled as st_ats_safe in the file /usr/conf/master.d/stape causing SAM to crash because of the mismatch. Resolution: The line st_ats_safe has been corrected to be st_san_safe. ( SR:8606267630 CR:JAGae31871 ) Compaq branded DLT tape drives have a vendor ID of "COMPAQ" in the inquiry data. The stape driver only recognizes DLT drives with the vendor ID "QUANTUM". Resolution: The stape driver was modified to recognize DLT8000 and SuperDLT tape drives with the vendor ID "COMPAQ". PHKL_26785: ( SR:8606255183 CR:JAGae19510 ) Exabyte tape drives use byte 19 in the request sense data to indicate whether the tape head is at Beginning of Tape (BOT). The tape2 driver is not properly maintaining the Exabyte tape drive's head position by not resetting an internal BOT flag. After writing data, the tape2 driver mistakenly thinks the head position is at BOT so it doesn't write a filemark. The attempt to space forward one filemark thus fails as no filemark exists. Resolution: The tape2 driver now properly maintains the Exabyte tape drive's head position by resetting the internal BOT flag when byte 19 of the request sense data indicates we are not at BOT. ( SR:8606246652 CR:JAGae13095 ) A defective FC-SCSI bridge or tape device could return an invalid SCSI status. The stape driver handles any unrecognizable SCSI status by panicing the system. Resolution: The stape driver will now fail any unrecognizable SCSI status from a device with EIO. ( SR:8606255186 CR:JAGae19513 ) When support for the DDS4 tape device was added to the stape driver, DDS3 and DDS4 densities were not added as valid device file densities for DDS4 tape devices. Resolution: The DDS3 and DDS4 densities were added to the stape driver as valid device file densities for DDS4 tape drives. ( SR:8606187817 CR:JAGad57026 ) The routine in the stape driver that provides insf and mksf with tape drive information is issuing a reserve scsi command without sending a release scsi command when complete. The tape device is then stuck in a reserved state which causes all access from another host to fail with EBUSY. Resolution: A reserve scsi command is no longer sent to the tape device before retrieving tape drive information. The reserve is not needed for data integrity protection as the driver does not access the media or do tape motion when retrieving tape drive information for insf and mksf. ( SR:8606251513 CR:JAGae17578 ) When a host application is writing data to a tape, another tape command like mt(1) could be issued from a different host to the same device using a device file without the no-rewind-on-close option (i.e rewind-on-close). This second command would issue a rewind-on-close to the drive between writes (of the first host) causing the tape to reposition to beginning of tape (BOT). The first host that is writing to the drive would have no knowledge that the tape was repositioned and it would then continue writing from the BOT, effectively overwriting the previously written data. Resolution: This patch introduces a kernel tuneable called "st_san_safe" which has a default state of DISABLED when this patch is installed. When st_san_safe is enabled by setting "st_san_safe=1", this forces the stape driver to fail all opens to device files which do not have the no-rewind-on-close option with the errno "EINVAL". The stape driver will also log an entry into the syslog like the following: vmunix: SCSI TAPE: dev = 0xcd002000 Failed open - st_san_safe enabled When st_san_safe is enabled, mksf(1M) will only create new device files with a no-rewind-on-close option. The mksf(1M) command will fail with an error indicating an invalid option was provided in the command line arguments. With st_san_safe enabled, lssf(1M) will not fully decode the density attribute of a tape special device file. ( SR:8606204371 CR:JAGad73553 ) The stape driver now supports the ioctl command MT_EVENT_LOG which is accessed through the device file /dev/rmt/stape_config. The command returns identification and tape alert data for a device by utilizing data cached by the stape driver. The necessary data structures and command definition are defined in the file sys/mtio.h. Resolution: Enhancement request - none required. PHKL_22857: ( SR:8606173156 CR:JAGad42416 ) A statement in a Fujitsu tape drive specific open routine that checks for a null pointer has incorrect syntax. The statement does not properly check for the null pointer causing a data page fault and subsequent panic of the system. Resolution: The syntax of the routine has been changed to properly check for a null pointer. ( SR:8606173157 CR:JAGad42417 ) A DLT tape drive loaded with media will queue two Unit Attentions after reset or power up. The driver will retry a reserve command to flush the Unit Attentions, but the FC-SCSI bridge intercepts the reserves as expected not allowing them to flush the drives Unit Attentions. The next command after the reserve command is sent down and fails due to the pending Unit Attentions causing the open to fail with EIO. Resolution: The tape driver will now retry test unit ready commands before the reserve command to flush any pending Unit Attentions. ( SR:8606163819 CR:JAGad33123 ) The MTIOCGET was previously setup to return ENXIO if the tape drive was offline to prevent a situation when a tape drive not selecting on the bus may return invalid data. Resolution: MTIOCGET no longer returns ENXIO when media is not present. Added support to stape driver for Benchmark DLT1 tape drive. ( SR:8606173160 CR:JAGad42420) Enhancement request to add stape driver support for the SuperDLT 220 tape drive. Resolution: None required - enhancement request. PHKL_25770: ( SR:8606226105 CR:JAGad95176 ) Enhancement request to change the default value of the stape kernel tuneable "st_ats_enabled" to 0. Resolution: Enhancement Request - none required. Enhancement: No (superseded patches contained enhancements) PHKL_28217: Enhancements were delivered in a patch this one has superseded. Please review the Defect Description text for more information. SR: 8606163819 8606173156 8606173157 8606173160 8606187817 8606204371 8606226105 8606246652 8606251513 8606255183 8606255186 8606260843 8606267630 8606279011 8606287811 8606304125 8606324609 8606324617 8606348043 8606350788 8606350790 8606355707 Patch Files: OS-Core.CORE-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP: /usr/conf/sys/mtio.h ProgSupport.C-INC,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP: /usr/include/sys/mtio.h OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: /usr/conf/lib/libio.a(mt_prop.o) /usr/conf/lib/libsio.a(tape14.o) /usr/conf/lib/libwsio.a(scsi_tape.o) OS-Core.KERN2-RUN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: /usr/conf/master.d/stape /usr/conf/space.h.d/scsi_tape_space.h OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: /usr/conf/lib/libio.a(mt_prop.o) /usr/conf/lib/libsio.a(tape14.o) /usr/conf/lib/libwsio.a(scsi_tape.o) OS-Core.KERN2-RUN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: /usr/conf/master.d/stape /usr/conf/space.h.d/scsi_tape_space.h what(1) Output: OS-Core.CORE-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP: /usr/conf/sys/mtio.h: mtio.h $Date: 2004/03/26 11:36:21 $Revision: r11.11/ 5 PATCH_11.11 (PHKL_29899) ProgSupport.C-INC,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP: /usr/include/sys/mtio.h: mtio.h $Date: 2004/03/26 11:36:21 $Revision: r11.11/ 5 PATCH_11.11 (PHKL_29899) OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: /usr/conf/lib/libio.a(mt_prop.o): mt_prop.c $Date: 2002/04/08 15:53:15 $Revision: r11. 11/2 PATCH_11.11 (PHKL_26785) /usr/conf/lib/libsio.a(tape14.o): tape14.c $Date: 2002/04/08 15:53:15 $Revision: r11.1 1/1 PATCH_11.11 (PHKL_26785) /usr/conf/lib/libwsio.a(scsi_tape.o): scsi_tape.c $Date: 2004/03/11 23:06:59 $Revision: r1 1.11/6 PATCH_11.11 (PHKL_29899) OS-Core.KERN2-RUN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: /usr/conf/master.d/stape: stape $Date: 2002/07/08 11:50:43 $Revision: r11.11/3 PATCH_11.11 (PHKL_27304) /usr/conf/space.h.d/scsi_tape_space.h: scsi_tape_space.h $Date: 2002/04/08 15:53:15 $Revisi on: r11.11/2 PATCH_11.11 (PHKL_26785) OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: /usr/conf/lib/libio.a(mt_prop.o): mt_prop.c $Date: 2002/04/08 15:53:15 $Revision: r11. 11/2 PATCH_11.11 (PHKL_26785) /usr/conf/lib/libsio.a(tape14.o): tape14.c $Date: 2002/04/08 15:53:15 $Revision: r11.1 1/1 PATCH_11.11 (PHKL_26785) /usr/conf/lib/libwsio.a(scsi_tape.o): scsi_tape.c $Date: 2004/03/11 23:06:59 $Revision: r1 1.11/6 PATCH_11.11 (PHKL_29899) OS-Core.KERN2-RUN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: /usr/conf/master.d/stape: stape $Date: 2002/04/08 15:53:15 $Revision: r11.11/2 PATCH_11.11 (PHKL_26785) /usr/conf/space.h.d/scsi_tape_space.h: scsi_tape_space.h $Date: 2002/04/08 15:53:15 $Revisi on: r11.11/2 PATCH_11.11 (PHKL_26785) cksum(1) Output: OS-Core.CORE-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP: 674731118 33587 /usr/conf/sys/mtio.h ProgSupport.C-INC,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP: 674731118 33587 /usr/include/sys/mtio.h OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: 1404827099 19340 /usr/conf/lib/libio.a(mt_prop.o) 4189570290 44928 /usr/conf/lib/libsio.a(tape14.o) 2219939602 79000 /usr/conf/lib/libwsio.a(scsi_tape.o) OS-Core.KERN2-RUN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: 2271150820 1530 /usr/conf/master.d/stape 2688356446 3115 /usr/conf/space.h.d/scsi_tape_space.h OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: 354292929 51168 /usr/conf/lib/libio.a(mt_prop.o) 741377585 87320 /usr/conf/lib/libsio.a(tape14.o) 577788232 161504 /usr/conf/lib/libwsio.a(scsi_tape.o) OS-Core.KERN2-RUN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: 3847327809 1526 /usr/conf/master.d/stape 81663546 3119 /usr/conf/space.h.d/scsi_tape_space.h Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: If the st_san_safe kernel tunable is enabled on systems running OmniBackII A.04.00 or A.04.10, the following patches must also be installed: OmniBackII A.04.00: PHSS_27586 and PHSS_27601 OmniBackII A.04.10: PHSS_27459 and PHSS_27588 Supersedes: PHKL_25770 PHKL_29248 PHKL_28217 PHKL_27304 PHKL_26785 PHKL_22857 Equivalent Patches: PHKL_29898: s700: 11.00 s800: 11.00 Patch Package Size: 240 KBytes Installation Instructions: Please review all instructions and the Hewlett-Packard SupportLine User Guide or your Hewlett-Packard support terms and conditions for precautions, scope of license, restrictions, and, limitation of liability and warranties, before installing this patch. ------------------------------------------------------------ 1. Back up your system before installing a patch. 2. Login as root. 3. Copy the patch to the /tmp directory. 4. Move to the /tmp directory and unshar the patch: cd /tmp sh PHKL_29899 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHKL_29899.depot By default swinstall will archive the original software in /var/adm/sw/save/PHKL_29899. If you do not wish to retain a copy of the original software, include the patch_save_files option in the swinstall command above: -x patch_save_files=false WARNING: If patch_save_files is false when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. For future reference, the contents of the PHKL_29899.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHKL_29899.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHKL_29899.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: The new tunable st_san_safe should be enabled (set to 1) if the system being patched is part of a SAN tape backup solution where multiple HP-UX hosts can access the same tape device. This will prevent the situation detailed above where a tape unintentionally rewinds in the middle of a backup. The fbackup/frecover utilities require device files which have rewind-on-close set on them. The device files available when st_san_safe=1 (no-rewind-on-close) can not be used by fbackup/frecover. See the manpage for fbackup(1M). If this patch is installed on a system using the MC/ServiceGuard ATS tape sharing service, the tuneable "st_ats_enabled" must be set back to 1 after the patch is installed for ATS to work. Please note setting the tuneable back to 1 will require an additional reboot.