Explorar el Código

[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 hace 6 años
padre
commit
abfd613f60
Se han modificado 3 ficheros con 11 adiciones y 0 borrados
  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)