]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
todo
authorSage Weil <sage@newdream.net>
Thu, 12 Nov 2009 23:12:18 +0000 (15:12 -0800)
committerSage Weil <sage@newdream.net>
Thu, 12 Nov 2009 23:12:18 +0000 (15:12 -0800)
src/TODO
src/include/Context.h

index cf586df8cd199b61b02c8b73841ff7f73cc7d294..d00674663addf08fd3cb0ce5eea948df75d64449 100644 (file)
--- a/src/TODO
+++ b/src/TODO
@@ -50,7 +50,9 @@ v0.18
 - selectable crush hash function(s)
 - mds restart bug fixes
 - kclient mds reconnect bug fixes
-
+- fixed mds log trimming bug
+- fixed mds cap vs snap deadlock
+- filestore faster flushing
 
 - mount btrfs by UUID?
 
@@ -67,10 +69,9 @@ v0.18
 pending wire, disk format changes
 
 bugs
-- rados needs to check for -p for lots of arguments (currently seg faults on say ./rados mksnap foo)
-- rados: fix usage, it's -p, not -P
-- kclient cap reconnect on mds restart
-- zeros in pg log, followed by valid data.
+- mds rstat bug (on 2* cp -av usr + 11_kernel_untar_build)
+mds/CInode.cc: In function 'virtual void CInode::finish_scatter_gather_update(int)':
+mds/CInode.cc:1233: FAILED assert(pi->rstat.rfiles >= 0)
 - mislinked directory?
 - premature filejournal trimming?
 - weird osd_lock contention during osd restart?
index bb2eec13449047725be745f033188fb5292bb887..f3024f87711c5e0d671497039c9e31b17ce24d0c 100644 (file)
@@ -122,11 +122,12 @@ private:
   int num;
   bool any;  /* if true, OR, otherwise, AND */
 
-  bool sub_finish(int num, int r) {
-    //cout << "C_Gather sub_finish " << this << " got " << r << " of " << waitfor << endl;
+  bool sub_finish(void *sub, int num, int r) {
     assert(waitfor.count(num));
     waitfor.erase(num);
 
+    //generic_dout(0) << this << ".sub_finish(r=" << r << ") " << sub << " " << num << " of " << waitfor << dendl;
+
     if (r < 0 && result == 0)
       result = r;
 
@@ -154,7 +155,7 @@ private:
   public:
     C_GatherSub(C_Gather *g, int n) : gather(g), num(n) {}
     void finish(int r) {
-      if (gather->sub_finish(num, r)) {
+      if (gather->sub_finish((void *)this, num, r)) {
        delete gather;   // last one!
        gather = 0;
       }
@@ -181,7 +182,9 @@ public:
   Context *new_sub() {
     num++;
     waitfor.insert(num);
-    return new C_GatherSub(this, num);
+    Context *s = new C_GatherSub(this, num);
+    //generic_dout(0) << this << ".new_sub " << num << " " << s << dendl;
+    return s;
   }
   void rm_sub(int n) {
     num--;