From: Greg KH <gregkh@linuxfoundation.org>
To: "Williams, Dan J" <dan.j.williams@intel.com>
Cc: James Bottomley <JBottomley@parallels.com>,
linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org
Subject: Re: [PATCH v2 1/2] sysfs: handle 'parent deleted before child added'
Date: Fri, 6 Apr 2012 15:11:39 -0700 [thread overview]
Message-ID: <20120406221139.GA22854@kroah.com> (raw)
In-Reply-To: <CABE8wwv9NUGz56M+GANzG2zDkANm4vAMT_vde0FpamhvC7B8pg@mail.gmail.com>
On Fri, Apr 06, 2012 at 02:44:37PM -0700, Williams, Dan J wrote:
> On Fri, Apr 6, 2012 at 2:17 PM, Greg KH <gregkh@linuxfoundation.org> wrote:
> > On Fri, Apr 06, 2012 at 02:06:50PM -0700, Williams, Dan J wrote:
> >> On Fri, Apr 6, 2012 at 1:45 PM, Greg KH <gregkh@linuxfoundation.org> wrote:
> >> > On Fri, Apr 06, 2012 at 01:41:06PM -0700, Dan Williams wrote:
> >> >> In scsi at least two cases of the parent device being deleted before the
> >> >> child is added have been observed.
> >> >>
> >> >> 1/ scsi is performing async scans and the device is removed prior to the
> >> >> async can thread running (can happen with an in-opportune / unlikely
> >> >> unplug during initial scan).
> >> >
> >> > That sounds like a bug in the scsi code, doesn't it?
> >> >
> >> >> 2/ libsas discovery event running after the parent port has been torn
> >> >> down (this is a bug in libsas).
> >> >
> >> > Is this fixed somewhere?
> >>
> >> Yes, these two issues have pending fixes that are posted to linux-scsi:
> >>
> >> http://marc.info/?l=linux-scsi&m=133239707903443&w=2
> >> http://marc.info/?l=linux-scsi&m=133239709603452&w=2
> >>
> >> > I don't want to paper over bugs like this by changing the sysfs core.
> >> > We went through this a lot years ago when scsi changed to use the driver
> >> > core, and I thought we had fixed all of these types of errors properly.
> >>
> >> Hotplug lifetime rules are still transport specific. So in this case
> >> scsi-core is innocent these are bugs from libsas and
> >> scsi_transport_sas.
> >
> > Ok, thanks for the explaination.
> >
> >> > So, any chance to fix these properly as well?
> >>
> >> This patch doesn't really paper over anything. It turns a NULL
> >> pointer crash into an explicit warning from kobject_add_internal. For
> >> the libsas/scsi case this device_add() failure is still fatal.
> >> Regardless of whether sysfs changes the above two fixes are still
> >> required.
> >>
> >> Since the -EEXIST case is just a KERN_ERR and not a BUG_ON I figured
> >> it was worthwhile to post a patch to do the same for this 'parent
> >> deleted' case. But if crashing is the expectation then this patch can
> >> be dropped.
> >
> > No, crashing is not the expectation :)
>
> I thought not, but sometimes the kernel likes to teach people that
> bollix an api a hard lesson :).
>
> >
> > But, without that crash, would the above fixes ever have been noticed
> > and fixed? The device_add() most likely would have quietly failed and
> > no one would have been the wiser.
> >
> > Or would something else have caused this to be an obvious problem?
> >
>
> We still have the big red flag dump_stack() in kobject_add_internal()
> (which patch 2 turns into a real WARN()), and for scsi our hotplug
> tests still crash later on because libsas makes assumptions about the
> device path. I understand the paranoia here, "check for NULL" is
> usually a band-aid, but in this case this is just a softer
> introduction to a debug session. No less vocal than before as far as
> I can see.
Ok, that's reasonable, I'll queue this up for 3.5.
thanks,
greg k-h
prev parent reply other threads:[~2012-04-06 22:11 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-06 20:41 [PATCH v2 1/2] sysfs: handle 'parent deleted before child added' Dan Williams
2012-04-06 20:41 ` [PATCH v2 2/2] sysfs: provide more diagnostic info for kobject_add_internal() failures Dan Williams
2012-04-06 20:45 ` [PATCH v2 1/2] sysfs: handle 'parent deleted before child added' Greg KH
2012-04-06 21:06 ` Williams, Dan J
2012-04-06 21:17 ` Greg KH
2012-04-06 21:17 ` Greg KH
2012-04-06 21:44 ` Williams, Dan J
2012-04-06 22:11 ` Greg KH [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120406221139.GA22854@kroah.com \
--to=gregkh@linuxfoundation.org \
--cc=JBottomley@parallels.com \
--cc=dan.j.williams@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.