Whamcloud - gitweb
fix deadlock with llog cleanup.
authorshadow <shadow>
Mon, 21 Jan 2008 13:55:11 +0000 (13:55 +0000)
committershadow <shadow>
Mon, 21 Jan 2008 13:55:11 +0000 (13:55 +0000)
b=14608
i=johann
i=wangdi

lustre/ChangeLog
lustre/obdfilter/filter.c

index 15023cf..88cd228 100644 (file)
@@ -13,6 +13,16 @@ tbd  Sun Microsystems, Inc.
         removed cwd "./" (refer to Bugzilla 14399).
 
 Severity   : normal
+Frequency  : rare on shutdown ost
+Bugzilla   : 14608
+Description: If llog cancel was not send before clean_exports phase, this can
+             produce deadlock in llog code.
+Details    : If llog thread has last reference to obd and call class_import_put
+             this produce deadlock because llog_cleanup_commit_master wait when
+            last llog_commit_thread exited, but this never success because was 
+            called from llog_commit_thread.
+
+Severity   : normal
 Bugzilla   : 9977
 Description: allow userland application know is lost one of stripes.
 Details    : fill lvb_blocks with error code on ost and return it to
index 84947d6..a99a422 100644 (file)
@@ -2297,9 +2297,9 @@ static int filter_precleanup(struct obd_device *obd,
                 break;
         case OBD_CLEANUP_EXPORTS:
                 target_cleanup_recovery(obd);
+                rc = filter_llog_preclean(obd);
                 break;
         case OBD_CLEANUP_SELF_EXP:
-                rc = filter_llog_preclean(obd);
                 break;
         case OBD_CLEANUP_OBD:
                 break;