kern/167685: [zfs] ZFS on USB drive prevents shutdown / reboot

Jeff Kletsky freebsd at wagsky.com
Fri May 11 21:50:17 UTC 2012


The following reply was made to PR kern/167685; it has been noted by GNATS.

From: Jeff Kletsky <freebsd at wagsky.com>
To: bug-followup at FreeBSD.org
Cc:  
Subject: Re: kern/167685: [zfs] ZFS on USB drive prevents shutdown / reboot
Date: Fri, 11 May 2012 14:41:03 -0700

 This is a multi-part message in MIME format.
 --------------020209050805030409070009
 Content-Type: text/plain; charset=ISO-8859-1; format=flowed
 Content-Transfer-Encoding: 7bit
 
 Problem can be replicated by booting of a "memstick" (with a "spare" USB 
 stick as /dev/da1) and then executing
 
 # dd if=/dev/zer of=/dev/da1 bs=64k
 # zpool create stick /dev/da1
 # reboot
 
 Problem has been reliably reproduced on the Atom 330 previously 
 mentioned, as well as on an AMD A8-3870 with A75 chipset. It also can be 
 replicated using VirtualBox running under Ubuntu on the AMD A8-3870 
 system. It does not seem specific to one "flavor" of USB controller or 
 driver.
 
 Using /usr/src/release/generate_release.sh and bisection, I have 
 confirmed that
 
 * r227445 does not exhibit the behavior ("Copy stable/9 to releng/9.0 as 
 part of the FreeBSD 9.0-RELEASE release cycle)
 * r229097 does not exhibit the behavior
 * r229281 -- FAIL by not rebooting under the conditions described above.
 
 Based on these results, I am suspicious of
 
 r229100 | hselasky | 2011-12-31 06:33:15 -0800 (Sat, 31 Dec 2011) | 6 lines
 
 MFC r228709, r228711 and r228723:
 - Add missing unlock of USB controller's lock, when
 doing shutdown, suspend and resume.
 - Add code to wait for USB shutdown to be executed at system shutdown.
 - Add sysctl which can be used to skip this waiting.
 
 
 as being what brought the issue to the forefront.
 
 I am presently building r229099 and r229100 to confirm this suspicion.
 
 A potential, though untested workaround would be
 # sysctl hw.usb.no_shutdown_wait=1
 
 
 
 --------------020209050805030409070009
 Content-Type: text/html; charset=ISO-8859-1
 Content-Transfer-Encoding: 7bit
 
 <html>
   <head>
 
     <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
   </head>
   <body bgcolor="#FFFFFF" text="#000000">
     Problem can be replicated by booting of a "memstick" (with a "spare"
     USB stick as /dev/da1) and then executing<br>
     <br>
     # dd if=/dev/zer of=/dev/da1 bs=64k<br>
     # zpool create stick /dev/da1<br>
     # reboot<br>
     <br>
     Problem has been reliably reproduced on the Atom 330 previously
     mentioned, as well as on an AMD A8-3870 with A75 chipset. It also
     can be replicated using VirtualBox running under Ubuntu on the AMD
     A8-3870 system. It does not seem specific to one "flavor" of USB
     controller or driver.<br>
     <br>
     Using /usr/src/release/generate_release.sh and bisection, I have
     confirmed that<br>
     <br>
     * r227445 does not exhibit the behavior ("Copy stable/9 to releng/9.0
     as part of the FreeBSD 9.0-RELEASE release cycle)<br>
     * r229097 does not exhibit the behavior<br>
     * r229281 -- FAIL by not rebooting under the conditions described
     above.<br>
     <br>
     Based on these results, I am suspicious of <br>
     <br>
     <meta http-equiv="content-type" content="text/html;
       charset=ISO-8859-1">
     <pre class="alt2" dir="ltr" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(249, 249, 249); color: rgb(0, 0, 0); font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; margin-top: 0px; margin-right : 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 6px; padding-bottom: 6px; padding-left: 6px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: inset; border-right-style: inset; border-bottom-style: inset; border-left-style: inset; border-color: initial; border-image: initial; width: auto; height: 130px; text-align: left; overflow-x: auto; overflow-y: auto; background-position: initial i
 ni
  t
 ial; background-repeat: initial initial; ">r229100 | hselasky | 2011-12-31 06:33:15 -0800 (Sat, 31 Dec 2011) | 6 lines
 
 MFC r228709, r228711 and r228723:
 - Add missing unlock of USB controller's lock, when
 doing shutdown, suspend and resume.
 - Add code to wait for USB shutdown to be executed at system shutdown.
 - Add sysctl which can be used to skip this waiting.</pre>
     <br>
     as being what brought the issue to the forefront.<br>
     <br>
     I am presently building r229099 and r229100 to confirm this
     suspicion.<br>
     <br>
     A potential, though untested workaround would be<br>
     # sysctl hw.usb.no_shutdown_wait=1<br>
     <br>
     <br>
   </body>
 </html>
 
 --------------020209050805030409070009--


More information about the freebsd-fs mailing list