X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/b4b1b2e016adf9c6145c19a8571c9994d7d627cf..3922ecf35babad02cc4ad9d5ad3a7fcb4e7eeabd:/teshsuite/msg/host_on_off_processes/host_on_off_processes.tesh diff --git a/teshsuite/msg/host_on_off_processes/host_on_off_processes.tesh b/teshsuite/msg/host_on_off_processes/host_on_off_processes.tesh index c448cf441b..5d5d220c5a 100644 --- a/teshsuite/msg/host_on_off_processes/host_on_off_processes.tesh +++ b/teshsuite/msg/host_on_off_processes/host_on_off_processes.tesh @@ -1,30 +1,98 @@ -$ ./host_on_off_processes ${srcdir:=.}/../../../examples/platforms/small_platform.xml ${srcdir:=.}/host_on_off_processes_d.xml 1 --log=no_loc --log=msg.thresh:error --log=surf_maxmin.thresh:error -> [Tremblay:test:(1) 0.000000] [msg_test/INFO] Test 1: -> [Tremblay:test:(1) 0.000000] [msg_test/INFO] Create a process on Jupiter -> [Jupiter:daemon:(2) 0.000000] [msg_test/INFO] Execute deamon -> [Tremblay:test:(1) 0.000000] [msg_test/INFO] Turn off Jupiter -> [Tremblay:test:(1) 10.000000] [msg_test/INFO] Test 1 seems ok, cool !(number of Process : 1, it should be 1 (i.e. the Test one)) -> [10.000000] [msg_test/INFO] Simulation time 10 +$ ./host_on_off_processes ${srcdir:=.}/../../../examples/platforms/small_platform.xml 1 --log=no_loc +> [Tremblay:test_launcher:(1) 0.000000] [msg_test/INFO] Test 1: +> [Tremblay:test_launcher:(1) 0.000000] [msg_test/INFO] Create a process on Jupiter +> [Jupiter:process_daemon:(2) 0.000000] [msg_test/INFO] Start daemon on Jupiter (76296000.000000) +> [Jupiter:process_daemon:(2) 0.000000] [msg_test/INFO] Execute daemon +> [Jupiter:process_daemon:(2) 1.000000] [msg_test/INFO] Execute daemon +> [Jupiter:process_daemon:(2) 2.000000] [msg_test/INFO] Execute daemon +> [Tremblay:test_launcher:(1) 3.000000] [msg_test/INFO] Turn off Jupiter +> [Jupiter:process_daemon:(2) 3.000000] [msg_test/INFO] Execute daemon +> [Tremblay:test_launcher:(1) 13.000000] [msg_test/INFO] Test 1 seems ok, cool !(#Processes: 1, it should be 1; #tasks: 3) +> [Tremblay:test_launcher:(1) 13.000000] [msg_test/INFO] Test done. See you! +> [13.000000] [msg_test/INFO] Simulation time 13 -$ ./host_on_off_processes ${srcdir:=.}/../../../examples/platforms/small_platform.xml ${srcdir:=.}/host_on_off_processes_d.xml 2 --log=no_loc --log=msg.thresh:error --log=surf_maxmin.thresh:error -> [Tremblay:test:(1) 0.000000] [msg_test/INFO] Test 2: -> [Tremblay:test:(1) 0.000000] [msg_test/INFO] Turn off Jupiter -> [0.000000] [simix_process/WARNING] Cannot launch process 'daemon' on failed host 'Jupiter' -> [Tremblay:test:(1) 10.000000] [msg_test/INFO] Test 2 does not crash, WTF ?!(number of Process : 1, it should be 1) -> [Tremblay:test:(1) 10.000000] [msg_test/INFO] Ok so let's turn on/off the node to see whether the process is correctly bound to Jupiter -> [Tremblay:test:(1) 10.000000] [msg_test/INFO] Turn off -> [Tremblay:test:(1) 10.000000] [msg_test/INFO] sleep -> [Tremblay:test:(1) 20.000000] [msg_test/INFO] number of Process : 1 it should be 1. The daemon that has been created for test2 has been correctly destroyed....ok at least it looks rigorous, cool ! You just have to disallow the possibility to create a new process on a node when the node is off.) +$ ./host_on_off_processes ${srcdir:=.}/../../../examples/platforms/small_platform.xml 2 --log=no_loc +> [Tremblay:test_launcher:(1) 0.000000] [msg_test/INFO] Test 2: +> [Tremblay:test_launcher:(1) 0.000000] [msg_test/INFO] Turn off Jupiter +> [0.000000] [simix_process/WARNING] Cannot launch process 'process_daemon' on failed host 'Jupiter' +> [Tremblay:test_launcher:(1) 10.000000] [msg_test/INFO] Test 2 does not crash as it should (number of Process : 1, it should be 1) +> [Tremblay:test_launcher:(1) 10.000000] [msg_test/INFO] Ok so let's turn on/off the node to see whether the process is correctly bound to Jupiter +> [Tremblay:test_launcher:(1) 10.000000] [msg_test/INFO] Turn off +> [Tremblay:test_launcher:(1) 10.000000] [msg_test/INFO] sleep +> [Tremblay:test_launcher:(1) 20.000000] [msg_test/INFO] number of Process : 1 it should be 1. The daemon that has been created for test2 has been correctly destroyed....ok at least it looks rigorous, cool ! You just have to disallow the possibility to create a new process on a node when the node is off.) +> [Tremblay:test_launcher:(1) 20.000000] [msg_test/INFO] Test done. See you! > [20.000000] [msg_test/INFO] Simulation time 20 -$ ./host_on_off_processes ${srcdir:=.}/../../../examples/platforms/small_platform.xml ${srcdir:=.}/host_on_off_processes_d.xml 3 --log=no_loc --log=msg.thresh:error --log=surf_maxmin.thresh:error -> [Tremblay:test:(1) 0.000000] [msg_test/INFO] Test 3 (turn off src during a communication) : Create a Process/task to make a communication between Jupiter and Tremblay and turn off Jupiter during the communication +$ ./host_on_off_processes ${srcdir:=.}/../../../examples/platforms/small_platform.xml 3 --log=no_loc +> [Tremblay:test_launcher:(1) 0.000000] [msg_test/INFO] Test 3: +> [Jupiter:process_sleep:(2) 0.000000] [msg_test/INFO] I'm alive but I should sleep +> [Jupiter:process_sleep:(2) 10.000000] [msg_test/INFO] I'm alive but I should sleep +> [Jupiter:process_sleep:(2) 20.000000] [msg_test/INFO] I'm alive but I should sleep +> [Jupiter:process_sleep:(2) 30.000000] [msg_test/INFO] I'm alive but I should sleep +> [Jupiter:process_sleep:(2) 40.000000] [msg_test/INFO] I'm alive but I should sleep +> [Jupiter:process_sleep:(2) 50.000000] [msg_test/INFO] I'm alive but I should sleep +> [Jupiter:process_sleep:(2) 60.000000] [msg_test/INFO] I'm alive but I should sleep +> [Jupiter:process_sleep:(2) 70.000000] [msg_test/INFO] I'm alive but I should sleep +> [Jupiter:process_sleep:(2) 80.000000] [msg_test/INFO] I'm alive but I should sleep +> [Jupiter:process_sleep:(2) 90.000000] [msg_test/INFO] I'm alive but I should sleep +> [Tremblay:test_launcher:(1) 100.000000] [msg_test/INFO] Turn off +> [Jupiter:process_sleep:(2) 100.000000] [msg_test/INFO] I'm alive but I should sleep +> [Tremblay:test_launcher:(1) 100.000000] [msg_test/INFO] sleep for 10 seconds +> [Tremblay:test_launcher:(1) 10100.000000] [msg_test/INFO] number of Process : 1 it should be 1 (i.e. the Test one)) +> [Tremblay:test_launcher:(1) 10100.000000] [msg_test/INFO] Test done. See you! +> [10100.000000] [msg_test/INFO] Simulation time 10100 + +$ ./host_on_off_processes ${srcdir:=.}/../../../examples/platforms/small_platform.xml 4 --log=no_loc +> [Tremblay:test_launcher:(1) 0.000000] [msg_test/INFO] Test 4 (turn off src during a communication) : Create a Process/task to make a communication between Jupiter and Tremblay and turn off Jupiter during the communication > [Tremblay:commRX:(2) 10.000000] [msg_test/INFO] Start RX > [Jupiter:commTX:(3) 10.000000] [msg_test/INFO] Start TX -> [Tremblay:test:(1) 10.000000] [msg_test/INFO] number of processes: 3 -> [Tremblay:test:(1) 20.000000] [msg_test/INFO] Turn Jupiter off -> [Tremblay:test:(1) 20.000000] [msg_test/INFO] Test 3 seems ok (number of Process : 2, it should be 1 or 2 if RX has not been satisfied) cool, you can now turn off a node that has a process paused by a sleep call +> [Tremblay:test_launcher:(1) 10.000000] [msg_test/INFO] number of processes: 3 +> [Tremblay:test_launcher:(1) 20.000000] [msg_test/INFO] Turn Jupiter off +> [Tremblay:test_launcher:(1) 20.000000] [msg_test/INFO] Test 4 seems ok (number of Process : 2, it should be 1 or 2 if RX has not been satisfied) cool, you can now turn off a node that has a process paused by a sleep call +> [Tremblay:test_launcher:(1) 20.000000] [msg_test/INFO] Test done. See you! > [Tremblay:commRX:(2) 20.000000] [msg_test/INFO] Receive message: TRANSFERT_FAILURE > [Tremblay:commRX:(2) 20.000000] [msg_test/INFO] RX Done > [20.000000] [msg_test/INFO] Simulation time 20 + +$ ./host_on_off_processes ${srcdir:=.}/../../../examples/platforms/small_platform.xml 5 --log=no_loc +> [Tremblay:test_launcher:(1) 0.000000] [msg_test/INFO] Test 5 (turn off dest during a communication : Create a Process/task to make a communication between Tremblay and Jupiter and turn off Jupiter during the communication +> [Jupiter:commRX:(2) 10.000000] [msg_test/INFO] Start RX +> [Tremblay:commTX:(3) 10.000000] [msg_test/INFO] Start TX +> [Tremblay:test_launcher:(1) 10.000000] [msg_test/INFO] number of processes: 3 +> [Tremblay:test_launcher:(1) 20.000000] [msg_test/INFO] Turn Jupiter off +> [Tremblay:test_launcher:(1) 20.000000] [msg_test/INFO] Test 5 seems ok (number of Process: 2, it should be 2) +> [Tremblay:test_launcher:(1) 20.000000] [msg_test/INFO] Test done. See you! +> [Tremblay:commTX:(3) 40.000000] [msg_test/INFO] TX done +> [40.000000] [msg_test/INFO] Simulation time 40 + +$ ./host_on_off_processes ${srcdir:=.}/../../../examples/platforms/small_platform.xml 6 --log=no_loc +> [Tremblay:test_launcher:(1) 0.000000] [msg_test/INFO] Test 6: Turn on Jupiter, assign a VM on Jupiter, launch a process inside the VM, and turn off the node +> [vm0:process_daemon:(2) 0.000000] [msg_test/INFO] Start daemon on vm0 (76296000.000000) +> [vm0:process_daemon:(2) 0.000000] [msg_test/INFO] Execute daemon +> [Jupiter:process_daemonJUPI:(3) 0.000000] [msg_test/INFO] Start daemon on Jupiter (76296000.000000) +> [Jupiter:process_daemonJUPI:(3) 0.000000] [msg_test/INFO] Execute daemon +> [Jupiter:process_daemonJUPI:(3) 1.000001] [msg_test/INFO] Execute daemon +> [Jupiter:process_daemonJUPI:(3) 2.000002] [msg_test/INFO] Execute daemon +> [Jupiter:process_daemonJUPI:(3) 3.000004] [msg_test/INFO] Execute daemon +> [Jupiter:process_daemonJUPI:(3) 4.000005] [msg_test/INFO] Execute daemon +> [Jupiter:process_daemonJUPI:(3) 5.000006] [msg_test/INFO] Execute daemon +> [Jupiter:process_daemonJUPI:(3) 6.000007] [msg_test/INFO] Execute daemon +> [Jupiter:process_daemonJUPI:(3) 7.000008] [msg_test/INFO] Execute daemon +> [Jupiter:process_daemonJUPI:(3) 8.000009] [msg_test/INFO] Execute daemon +> [Jupiter:process_daemonJUPI:(3) 9.000011] [msg_test/INFO] Execute daemon +> [Tremblay:test_launcher:(1) 10.000000] [msg_test/INFO] Turn Jupiter off +> [Tremblay:test_launcher:(1) 10.000000] [msg_test/INFO] Shutdown vm0 +> [Tremblay:test_launcher:(1) 10.000000] [msg_test/INFO] Destroy vm0 +> [10.000000] [surf_vm/WARNING] Dirty page tracking: 1 pending task(s) on a destroyed VM (first one is (name hidden)). +> If you don't understand why your task was not properly removed, please report that bug. +> This is a known bug if you turned the host off during the VM execution. +> Please remind us of that problem at some point: our code base is not ready to fix this harmless issue in 2016, sorry. +> [Tremblay:test_launcher:(1) 10.000000] [msg_test/INFO] Test 6 is also weird: when the node Jupiter is turned off once again, the VM and its daemon are not killed. However, the issue regarding the shutdown of hosted VMs can be seen a feature not a bug ;) +> [Tremblay:test_launcher:(1) 10.000000] [msg_test/INFO] Test done. See you! +> [10.000000] [msg_test/INFO] Simulation time 10 +> [10.000000] [surf_maxmin/WARNING] Probable bug: a simgrid::surf::CpuCas01Action variable (#13) not removed before the LMM system destruction. +> [10.000000] [surf_maxmin/WARNING] Probable bug: a simgrid::surf::CpuCas01Action variable (#2) not removed before the LMM system destruction. + +p The previous test suffers of bug https://github.com/simgrid/simgrid/issues/120 +p but the code is still not clean enough to really solve it.