# FreeBSD 9 locks up when using ZFS on eSATA



## clpollock (Feb 4, 2012)

I'm running a small home server, originally built with FreeBSD 8.2 but recently upgraded to 9.0.

I recently tried using a ZFS filesystem on an eSATA disk for backup. Everything worked perfectly for a while - the system recognized the disk when I plugged it in, I was able to create the ZFS filesystem, and my copy started fine.

However, a few minutes into the copy, the whole system locked up. My ssh connections went dead, and I was unable to open any new ones. My Samba and SVN servers also became unavailable. The machine responded to ping, but nothing else. I was forced to hit the reset button to get back in.

Everything worked fine when I connected the disk via USB (I copied over 1TB of data), but every subsequent attempt to use eSATA locked up the system a few minutes after I started a copy, using either cp or rsync. I updated the BIOS on the off chance that it would help, but it didn't.

My machine has an Asus M3A78-EM motherboard with an ATI SB700 chipset. I'm using an eSATA connector in the back of the motherboard, which apparently uses the SB700. The hard drive is a Seagate 1.5TB (ST31500341AS) in an Antec MX-1 enclosure. Here is an extract from /var/log/messages which shows the system recognizing the drive the last time I connected via eSATA:


```
Feb  3 21:38:25 Warspite kernel: ada8 at ahcich11 bus 0 scbus13 target 0 lun 0
Feb  3 21:38:25 Warspite kernel: ada8: <ST31500341AS CC1H> ATA-8 SATA 2.x device
Feb  3 21:38:25 Warspite kernel: ada8: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
Feb  3 21:38:25 Warspite kernel: ada8: Command Queueing enabled
Feb  3 21:38:25 Warspite kernel: ada8: 1430799MB (2930277168 512 byte sectors: 16H 63S/T 16383C)
Feb  3 21:38:25 Warspite kernel: ada8: Previously was known as ad30
```

I didn't see any messages pertaining to the system lockup.

Has anyone else had a problem like this? Has anyone managed to use eSATA with the ATI SB700? I'd appreciate any suggestions to get it working. Alternatively, if eSATA on the SB700 simply isn't supported, can anyone recommend a good eSATA card for FreeBSD?


----------



## clpollock (Feb 18, 2012)

If it's of any interest to anyone, I was able to get ZFS on eSATA working by using a different disk controller.

My machine has 2 PCI-Express SATA cards, one with a Silicon Image 3132 chip and the other with a Marvell 88SE912x. Since I had no luck searching for a way to get the built-in eSATA port working, I decided to try using the other controllers. I had a spare port on the Silicon Image card, so I attached an eSATA bracket to it and tried attaching the external disk. The card recognized the disk, but there was a problem:


```
Feb 17 23:54:45 Warspite kernel: ada8 at siisch0 bus 0 scbus8 target 0 lun 0
Feb 17 23:54:45 Warspite kernel: ada8: <ST31500341AS CC1H> ATA-8 SATA 2.x device
Feb 17 23:54:45 Warspite kernel: ada8: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
Feb 17 23:54:45 Warspite kernel: ada8: Command Queueing enabled
Feb 17 23:54:45 Warspite kernel: ada8: 1430799MB (2930277168 512 byte sectors: 16H 63S/T 16383C)
Feb 17 23:54:45 Warspite kernel: ada8: Previously was known as ad20
Feb 17 23:54:45 Warspite kernel: siisch0: port is not ready (timeout 1000ms) status = 001f0000
Feb 17 23:54:45 Warspite kernel: siisch0: port ready timeout
Feb 17 23:54:45 Warspite kernel: siisch0: trying full port reset ...
Feb 17 23:54:46 Warspite kernel: siisch0: port is not ready (timeout 1000ms) status = 001f0000
```
The errors continued until I disconnected the disk. I wasn't able to find a solution, so I switched one of my internal disks from the Marvell card to the Silicon Image card, and attached the eSATA bracket to Marvell card. This time everything worked fine:


```
Feb 18 00:13:24 Warspite kernel: ada8 at ahcich1 bus 0 scbus1 target 0 lun 0
Feb 18 00:13:24 Warspite kernel: ada8: <ST31500341AS CC1H> ATA-8 SATA 2.x device
Feb 18 00:13:24 Warspite kernel: ada8: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
Feb 18 00:13:24 Warspite kernel: ada8: Command Queueing enabled
Feb 18 00:13:24 Warspite kernel: ada8: 1430799MB (2930277168 512 byte sectors: 16H 63S/T 16383C)
Feb 18 00:13:24 Warspite kernel: ada8: Previously was known as ad6
```

*zpool import* worked with no problems. I did a lengthy *rsync* to the disk, then left it to do a scrub overnight. When I came back in the morning, the scrub had completed with no errors. I now appear to have a working eSATA port, so I'm happy.

I'd still be interested to know why the ATI and Silicon Image controllers didn't work, or if there's any way to get them working.


----------

