瀏覽代碼

[Tests, LibOS] Add Apache test in Jenkins-Debug

Previously, there was a bug of a stale debugging memory region copied to
child as part of parent's checkpoint. This bug manifested in Apache test
segfaulting in debug build. This commit fixes the bug and adds Apache to
the Jenkins-Debug job.
Don Porter 6 年之前
父節點
當前提交
abfd613f60
共有 3 個文件被更改,包括 11 次插入0 次删除
  1. 7 0
      Jenkinsfiles/Linux-Debug
  2. 3 0
      LibOS/shim/src/bookkeep/shim_vma.c
  3. 1 0
      LibOS/shim/src/shim_debug.c

+ 7 - 0
Jenkinsfiles/Linux-Debug

@@ -54,6 +54,13 @@ pipeline {
                             sleep 1
                             ./benchmark-http.sh `hostname -I|tr -d '[:space:]'`:8000
                             '''
+                        sh '''
+                            cd LibOS/shim/test/apps/apache
+                            make
+                            make start-graphene-server &
+                            sleep 1
+                            ./benchmark-http.sh `hostname -I|tr -d '[:space:]'`:8001
+                            '''
                     }
                 }
                 stage('Deploy') {

+ 3 - 0
LibOS/shim/src/bookkeep/shim_vma.c

@@ -675,6 +675,9 @@ int bkeep_munmap (void * addr, size_t length, int flags)
     int ret = __bkeep_munmap(&prev, addr, addr + length, flags);
     assert_vma_list();
     __restore_reserved_vmas();
+    /* DEP 5/20/19: If this is a debugging region we are removing, take it out
+     * of the checkpoint.  Otherwise, it will be restored erroneously after a fork. */
+    remove_r_debug(addr);
     unlock(&vma_list_lock);
     return ret;
 }

+ 1 - 0
LibOS/shim/src/shim_debug.c

@@ -58,6 +58,7 @@ struct gdb_link_map
     struct gdb_link_map *l_next, *l_prev;
 };
 
+/* XXX: What lock protects this?  vma_list_lock? */
 static struct gdb_link_map * link_map_list = NULL;
 
 void clean_link_map_list (void)