Whamcloud - gitweb
add some error message, try to catch the occasional lsd upcall failure.
authorericm <ericm>
Thu, 11 Aug 2005 23:47:58 +0000 (23:47 +0000)
committerericm <ericm>
Thu, 11 Aug 2005 23:47:58 +0000 (23:47 +0000)
lustre/mds/mds_lsd.c
lustre/utils/lsd_upcall.c

index 3e7bd12..13451d3 100644 (file)
@@ -63,8 +63,8 @@ static struct upcall_cache _lsd_cache;
 static struct list_head _lsd_hashtable[MDS_LSD_HASHSIZE];
 
 #define MDS_LSD_UPCALL_PATH             "/usr/sbin/lsd_upcall"
-#define MDS_LSD_ACQUIRE_EXPIRE          (5)
-#define MDS_LSD_ENTRY_EXPIRE            (5 * 60)
+#define MDS_LSD_ACQUIRE_EXPIRE          (10)
+#define MDS_LSD_ENTRY_EXPIRE            (10 * 60)
 #define MDS_LSD_ERR_ENTRY_EXPIRE        (30)
 
 struct upcall_cache *__mds_get_global_lsd_cache()
@@ -136,7 +136,8 @@ static int lsd_make_upcall(struct upcall_cache *cache,
                        "/proc/fs/lustre/mds/lsd_upcall\n",
                        argv[0], argv[1], rc);
         } else {
-                CDEBUG(D_SEC, "Invoked upcall %s %s\n", argv[0], argv[1]);
+                CWARN("%lu: lsd %p Invoked upcall %s %s\n",
+                      get_seconds(), entry, argv[0], argv[1]);
         }
         RETURN(rc);
 }
@@ -189,7 +190,8 @@ static int lsd_parse_downcall(struct upcall_cache *cache,
         lsd->lsd_ginfo = ginfo;
         lsd->lsd_nperms = lsd_args->nperms;
 
-        CWARN("LSD: %d:%d, ngrps %u, nperms %u\n", lsd->lsd_uid, lsd->lsd_gid,
+        CWARN("LSD (%p): %d:%d, ngrps %u, nperms %u\n",
+              lentry, lsd->lsd_uid, lsd->lsd_gid,
               lsd->lsd_ginfo ? lsd->lsd_ginfo->ngroups : 0, lsd->lsd_nperms);
 
         RETURN(0);
index 9e1f640..1fbd45a 100644 (file)
@@ -29,6 +29,7 @@
 #include <fcntl.h>
 #include <pwd.h>
 #include <grp.h>
+#include <syslog.h>
 
 #include <liblustre.h>
 #include <linux/lustre_idl.h>
@@ -353,6 +354,14 @@ void show_result(struct lsd_downcall_args *dc)
                         dc->perms[i].nid, dc->perms[i].perm);
 }
 
+#define log_msg(testing, fmt, args...)                  \
+        {                                               \
+                if (testing)                            \
+                        printf(fmt, ## args);           \
+                else                                    \
+                        syslog(LOG_ERR, fmt, ## args);  \
+        }
+
 void usage(char *prog)
 {
         printf("Usage: %s [-t] uid\n", prog);
@@ -409,11 +418,18 @@ do_downcall:
         } else {
                 dc_fd = open(dc_name, O_WRONLY);
                 if (dc_fd < 0) {
-                        printf("can't open device %s\n", dc_name);
+                        log_msg(testing, "can't open device %s: %s\n",
+                                dc_name, strerror(errno));
+
                         return -errno;
                 }
 
                 rc = write(dc_fd, &ioc_data, sizeof(ioc_data));
+                if (rc != sizeof(ioc_data)) {
+                        log_msg(testing, "partial write ret %d: %s\n",
+                                rc, strerror(errno));
+                }
+
                 return (rc != sizeof(ioc_data));
         }
 }