Date: Mon, 28 Oct 2013 15:42:55 GMT From: Michael Gmelin <freebsd@grem.de> To: freebsd-gnats-submit@FreeBSD.org Subject: kern/183406: gpart label not accessible after reseating disk Message-ID: <201310281542.r9SFgt4t066181@oldred.freebsd.org> Resent-Message-ID: <201310281550.r9SFo2nl019402@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 183406 >Category: kern >Synopsis: gpart label not accessible after reseating disk >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Mon Oct 28 15:50:02 UTC 2013 >Closed-Date: >Last-Modified: >Originator: Michael Gmelin >Release: 10.0-BETA2 >Organization: Grem Equity GmbH >Environment: FreeBSD 10.0-BETA2 FreeBSD 10.0-BETA2 #0 r257166: Sat Oct 26 19:23:22 UTC 2013 root@snap.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64 >Description: When pulling a drive and reseating it in another slot, gpart doesn't show the drive's partition table anymore. When returning the drive to its original slot, it shows up again just fine. Controller is LSI SAS 2008 based 9211i-IT (mps(4) driver), running all attached drives as JBODs. After reseating the drive to the correct slot, resilvering ZFS works fine as well. When it remains in the other slot, all kinds of terrible things start happening (including gpart segfaulting at some point). A reboot fixes all those issues. camcontrol rescan all etc. won't help. I'm not certain if this is due to the mps(4) driver (the drive always shows up as the same lun target, regardless of which slot) or an issue in gpart/geom, therefore I didn't specify in the synopsis. >How-To-Repeat: Hotswap a drive to a new bay. Example procedure: Show partition table (disk da1 is a spare): [root@ ~]# gpart show -l => 34 585937433 da0 GPT (279G) 34 128 1 (null) (64K) 162 67108864 2 swapbay0 (32G) 67109026 518828441 3 databay0 (247G) => 34 585937433 da1 GPT (279G) 34 128 1 (null) (64K) 162 67108864 2 swapbay2 (32G) 67109026 518828441 3 databay2 (247G) => 34 585937433 da2 GPT (279G) 34 128 1 (null) (64K) 162 67108864 2 swapbay1 (32G) 67109026 518828441 3 databay1 (247G) => 34 585937433 diskid/DISK-6SJ4HSQR0000N23132VX GPT (279G) 34 128 1 (null) (64K) 162 67108864 2 swapbay2 (32G) 67109026 518828441 3 databay2 (247G) Pull drive da2: Oct 28 15:11:34 kernel: da2 at mps0 bus 0 scbus7 target 0 lun 0 Oct 28 15:11:34 kernel: da2: <SEAGATE ST3300657SS 0008> s/n 6SJ2ZBP00000N2318ZSS detached Oct 28 15:11:34 kernel: (da2: Oct 28 15:11:34 kernel: mps0:0:0: Oct 28 15:11:34 kernel: 0): Periph destroyed Also disappeared from gpart (as expected): [root@ ~]# gpart show -l => 34 585937433 da0 GPT (279G) 34 128 1 (null) (64K) 162 67108864 2 swapbay0 (32G) 67109026 518828441 3 databay0 (247G) => 34 585937433 da1 GPT (279G) 34 128 1 (null) (64K) 162 67108864 2 swapbay2 (32G) 67109026 518828441 3 databay2 (247G) => 34 585937433 diskid/DISK-6SJ4HSQR0000N23132VX GPT (279G) 34 128 1 (null) (64K) 162 67108864 2 swapbay2 (32G) 67109026 518828441 3 databay2 (247G) Reseat drive in a different slot: Oct 28 15:12:08 kernel: da2 at mps0 bus 0 scbus7 target 0 lun 0 Oct 28 15:12:08 kernel: da2: <SEAGATE ST3300657SS 0008> Fixed Direct Access SCSI-5 device Oct 28 15:12:08 kernel: da2: Serial Number 6SJ2ZBP00000N2318ZSS Oct 28 15:12:08 kernel: da2: 600.000MB/s transfers Oct 28 15:12:08 kernel: da2: Command Queueing enabled Oct 28 15:12:08 kernel: da2: 286102MB (585937500 512 byte sectors: 255H 63S/T 36472C) And give it some time to spin up... still, it won't show up in gpart [root@ ~]# gpart show -l => 34 585937433 da0 GPT (279G) 34 128 1 (null) (64K) 162 67108864 2 swapbay0 (32G) 67109026 518828441 3 databay0 (247G) => 34 585937433 da1 GPT (279G) 34 128 1 (null) (64K) 162 67108864 2 swapbay2 (32G) 67109026 518828441 3 databay2 (247G) => 34 585937433 diskid/DISK-6SJ4HSQR0000N23132VX GPT (279G) 34 128 1 (null) (64K) 162 67108864 2 swapbay2 (32G) 67109026 518828441 3 databay2 (247G) [root@ ~]# gpart status Name Status Components da0p1 OK da0 da0p2 OK da0 da0p3 OK da0 da1p1 OK da1 da1p2 OK da1 da1p3 OK da1 diskid/DISK-6SJ4HSQR0000N23132VXp1 OK diskid/DISK-6SJ4HSQR0000N23132VX diskid/DISK-6SJ4HSQR0000N23132VXp2 OK diskid/DISK-6SJ4HSQR0000N23132VX diskid/DISK-6SJ4HSQR0000N23132VXp3 OK diskid/DISK-6SJ4HSQR0000N23132VX Remove the drive and reseat it in the original drive bay, wait a few seconds at it shows up in gpart just fine: [root@ ~]# gpart show -l => 34 585937433 da0 GPT (279G) 34 128 1 (null) (64K) 162 67108864 2 swapbay0 (32G) 67109026 518828441 3 databay0 (247G) => 34 585937433 da1 GPT (279G) 34 128 1 (null) (64K) 162 67108864 2 swapbay2 (32G) 67109026 518828441 3 databay2 (247G) => 34 585937433 diskid/DISK-6SJ4HSQR0000N23132VX GPT (279G) 34 128 1 (null) (64K) 162 67108864 2 swapbay2 (32G) 67109026 518828441 3 databay2 (247G) => 34 585937433 da2 GPT (279G) 34 128 1 (null) (64K) 162 67108864 2 swapbay1 (32G) 67109026 518828441 3 databay1 (247G) >Fix: na >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201310281542.r9SFgt4t066181>