Red Hat Bugzilla – Bug 463715
lockdep backtrace when logging out of an iscsi target
Last modified: 2009-12-18 01:25:44 EST
Logging out of an iscsi target with the rawhide kernel gives the attached lockdep backtrace.
I think you forgot to attach the backtrace.
Created attachment 317606 [details]
dmesg output with backtrace at the end
Erm, looks like bugzilla ate it, as I'm sure I attached it, trying again.
I do not think we will hit this problem. iscsi will remove all the sessions and their targets/scsi_devices before calling the destroy_workqueue function from the iscsi_remove_host function, so the work queue would never grab the attribute_container_mutex for that type of event.
When iscsi_remove_host is called we will also prevent users from creating new objects would could queue work on workqueue and grab the attribute_container_mutex.
But there is no way for the lock dep code to know this and if it there was not internal code in scsi_transport_iscsi.c to sync those events lock dep is right and we would have locking problem.
What do you think? Is there a way to tell lock dep this, or should I just move destroy_workqueue from iscsi_remove_host to some new function that iscsi drivers call before scsi_remove_host (The reason for the lock dep error is that scsi_remove_host can grab the attribute_container_mutex which then call iscsi_remove_host which calls destroy_workqueue and if the workqueue is running and trying to add or delete objects it could be trying to grab the same attribute_container_mutex, but like I said when we are shutting down the host we prevent it from adding/deleting session/target/scsi_devices and make sure they are already destroyed (we have to make sure they are desotryed before calling scsi_remove_host because of the normal ordering of how the objects are related)).
(In reply to comment #3)
> I do not think we will hit this problem. iscsi will remove all the sessions and
> their targets/scsi_devices before calling the destroy_workqueue function from
> the iscsi_remove_host function, so the work queue would never grab the
> attribute_container_mutex for that type of event.
> When iscsi_remove_host is called we will also prevent users from creating new
I mean before iscsi_remove_host is called.
> objects would could queue work on workqueue and grab the
Mike I've done some kernel programming, but I'm not all that much into the iscsi code so most of what you're saying goes over my head.
I don't think there is anyway to tell lockdep about how this situation is special, so I think you're proposed shuffle changes to avoid the lockdep warning are the best solution.
This bug appears to have been reported against 'rawhide' during the Fedora 10 development cycle.
Changing version to '10'.
More information and reason for this action is here:
This message is a reminder that Fedora 10 is nearing its end of life.
Approximately 30 (thirty) days from now Fedora will stop maintaining
and issuing updates for Fedora 10. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as WONTFIX if it remains open with a Fedora
'version' of '10'.
Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version'
to a later Fedora version prior to Fedora 10's end of life.
Bug Reporter: Thank you for reporting this issue and we are sorry that
we may not be able to fix it before Fedora 10 is end of life. If you
would still like to see this bug fixed and are able to reproduce it
against a later version of Fedora please change the 'version' of this
bug to the applicable version. If you are unable to change the version,
please add a comment here and someone will do it for you.
Although we aim to fix as many bugs as possible during every release's
lifetime, sometimes those efforts are overtaken by events. Often a
more recent Fedora release includes newer upstream software that fixes
bugs or makes them obsolete.
The process we are following is described here:
Fedora 10 changed to end-of-life (EOL) status on 2009-12-17. Fedora 10 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.
If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version.
Thank you for reporting this bug and we are sorry it could not be fixed.