Commands like vxlist and `vxdisk list` will cause a hang when VOM and VEA is used in conjunction with Solaris x86 + EFI Labeled LUN.

book

Article ID: 100010602

calendar_today

Updated On:

Description

Error Message

The following errors are flooded to "/etc/vx/dmpevents.log" immediately after admin executes command `vxlist` if VOM is configured or if admin executes command `vxdisk list` if VEA is configured. During the time of I/O errors there is no errors reported by the Operating System.

I/O error occurred on Path c2t500A09849F534227d120s2 belonging to Dmpnode fas62400_10 
I/O error occurred on Path c3t500A09819F534227d120s2 belonging to Dmpnode fas62400_10
Unmarked as ioerr Path c3t500A09819F534227d120s2 belonging to Dmpnode fas62400_10
I/O analysis done as DMP_PATH_OKAY on Path c2t500A09849F534227d120s2 belonging to Dmpnode fas62400_10

The following backtrace was collected using dtrace while `vxdisk list` was hanging when VEA was configured.


              libc.so.1`_read+0x7
              vxvmprovider.so`is_asmdisk_efi+0x149
              vxvmprovider.so`is_asmdisk+0x19c
              vxvmprovider.so`is_foreign_disk+0xcc
              vxvmprovider.so`vol_is_foreign_disk+0xa9
              vxvmprovider.so`vs_disk_calc_state+0x158
              vxvmprovider.so`vs_disk_new+0x14a
              vxvmprovider.so`vs_calc_disk_updates+0x1ec

  The following was backtrace was collected when `vxlist` command was hung when VOM was configured. 

              libc.so.1`_read+0x7
              libvxlistsf_s.so`is_asmdisk_efi+0x149
              libvxlistsf_s.so`is_asmdisk+0x19c
              libvxlistsf_s.so`is_foreign_disk+0xcc
              libvxlistsf_s.so`vol_is_foreign_disk+0xa9
              libvxlistsf_s.so`isForeignDisk+0x3a
              libvxlistsf_s.so`getDaState+0x2a7
              libvxlistsf_s.so`buildMapsForDeportedDgs+0x190

Cause

 

Within  is_asmdisk_efi function, we get the starting partition offset from each partition entry. We multiply this offset with sector size (512) and then do an lseek function call so we can check if “ASM” signature exists.  It seems the starting block number is incorrect; hence we seek to a very large number, which is out of bounds. This results in B_ERROR having b_flag set and we interpret that as an I/O error.
 
There are 2 areas where is_asmdisk_efi funtion is being called.
1. VOM’s vxlist command is one command that calls is_asmdisk_efi().
2. VEA’s vxvmprovider is another utility that calls is_asmdisk_efi ().

Resolution

There are several solutions and workarounds.

Veritas has released 6.0.3P1 to address this issue.

Workarounds:

1. Disable VOM if configured until patch can be applied.

/usr/sbin/svcadm disable svc:/system/vxdcli:default

2. Disable VEA if configured until patch can be applied.

svcadm disable svc:/system/vxsvc:default

3. The following steps can be done to avoid the issue while VEA or VOM is configured.

                A. Allocate new LUN to host
                B. Using "Format" label the LUN with an EFI label (this is required as initial allocation does not put a label on the LUN).
                C. Run `vxdisk scandisks` so that VxVM can identify new EFI Labeled LUN and correctly build its DMP database.
                D. Now run "DD" ( dd if=/dev/zero of=/dev/rdsk/ bs=512 count=10 ) so that the existing EFI label is wiped out.
                E. Run `vxdisk scandisks` so that VxVM identifies label is gone .
                F. Now initialize the device.

Applies To

VxVM 6.0.1, 6.0.2, 6.0.3

Solaris x64

LUN Labeled with EFI label.

VOM or VEA is configured.that

Issue/Introduction

On Solaris x86 when a new LUN is introduced to the server, an administrator has the option
of labeling a LUN either with EFI (Extensible Firmware Interface) label or SMI (Sun Microsystems Inc) label.
For LUN(s) greater than 2TB EFI is the standard label. When a new LUN is labeled with EFI and if the customer
has configured VOM (VERITAS Operations Manager) or VEA (VERITAS Enterprise Administrator) after the new LUN
is discovered by VxVM (Veritas Volume Manager) running command vxlist and `vxdisk list` will hang, In addition all
other vx commands will also hang.
 

Additional Information

ETrack: 3133012