Uas_eh_abort_handler error

Hi,

After upgrade from v24 to v25 on my RPI4, the USB3 HDD attached to PI4 gets frequently error message:

kern.info: [336062.410495] sd 0:0:0:0: [sda] tag#16 uas_eh_abort_handler 0 uas-tag 6 inflight: CMD
kern.info: [336062.418370] sd 0:0:0:0: [sda] tag#16 CDB: opcode=0x35 35 00 00 00 00 00 00 00 00 00
kern.info: [336062.470515] scsi host0: uas_eh_device_reset_handler start
kern.info: [336062.611211] usb 2-2: reset SuperSpeed USB device number 3 using xhci_hcd
kern.info: [336062.636407] scsi host0: uas_eh_device_reset_handler success
kern.info: [336062.642449] scsi host0: uas_eh_device_reset_handler start
kern.info: [336062.781312] usb 2-2: reset SuperSpeed USB device number 3 using xhci_hcd
kern.info: [336062.806667] scsi host0: uas_eh_device_reset_handler success

Sometimes it could not reset successfully and ended with I/O write error, it then also killed usb-to-ethernet adapter for wan access. I have to reboot the router to get everything back to normal.

I did chkdsk but the disk is healthy.

lsusb shows:

root@pi4:~# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 003: ID 0463:ffff MGE UPS Systems UPS
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 002: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
Bus 002 Device 003: ID 174c:55aa ASMedia Technology Inc. ASM1051E SATA 6Gb/s bridge, ASM1053E SATA 6Gb/s bridge, ASM1153
root@pi4:~# lsusb -t
/: Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/1p, 480M
|__ Port 001: Dev 002, If 0, Class=[unknown], Driver=hub/4p, 480M
|__ Port 004: Dev 003, If 0, Class=[unknown], Driver=usbfs, 1.5M
/: Bus 002.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/4p, 5000M
|__ Port 001: Dev 002, If 0, Class=[unknown], Driver=ax88179_178a, 5000M
|__ Port 002: Dev 003, If 0, Class=[unknown], Driver=uas, 5000M
root@pi4:~# rmmod usb-storage
module is builtin

Searching the internet, there is post suggesting disabling UAS could fix the issue, however, when I try rmmod usb-storage, it says "module is builtin".

Any suggestions?

1st:

By removing usb-storage you would lose access to the drive. I guess that's not what you want.

2nd:

Two options:

Option 1: with a canon, disable UAS entirely:

lsmod | grep '^uas'
--> a list with "drivers"
then:
echo "blacklist *" >> /etc/modprobe.d/blacklist.conf

while * is the driver's name. You can add multiple lines. I don't know what drivers are there. I have no access to routers with usb in use on my current location.

Option 2: with a pistol:

you have:

cat > /etc/init.d/usb-uas-disable <<'EOF'
#!/bin/sh /etc/rc.common
START=99

boot() {
    echo '174c:55aa:u' > /sys/module/usb_storage/parameters/quirks
}
EOF

chmod +x /etc/init.d/usb-uas-disable
/etc/init.d/usb-uas-disable enable

If it would not be OpenWrt you would just add sth. like to kernel command line: usb-storage.quirks=174c:55aa:u

Make sure everything is set after boot:

cat /sys/module/usb_storage/parameters/quirks
lsusb -t

Make sure the drive is mounted after the script was executed. So aglin the START=99 line also.