* VM I/O related things:
- Ignored parameter of vm_create: core_nb, disk_path and disk_size.
- Unimplemented save/restore methods
- * MSG_as_router_get_property_value() was redundent with
+ * MSG_as_router_get_property_value() was redundant with
MSG_environment_as_get_property_value().
- Removed MSG_as_router_*propert*() functions
- Added MSG_environment_as_set_property_value() for consistency
flops that a <host>, <peer>, <cluster> or <cabinet> can deliver per second.
- In <trace_connect>, attribute kind="POWER" is now kind="SPEED".
- In <host> and <link>, attributes availability and state are gone.
- It was redundent with state and availability traces, and with peak values.
+ It was redundant with state and availability traces, and with peak values.
- In <cluster>, attributes availability_file and state_file are gone.
It was too complex and unused.
- Kill <gpu>. Was not doing anything.
${CMAKE_HOME_DIRECTORY}/examples/deprecated/msg/${x}/${x}.tesh)
endforeach()
-set_tesh_properties(msg-platform-failures "raw;boost" WILL_FAIL TRUE) # FIXME
-
foreach (x trace-categories trace-route-user-variables trace-link-user-variables trace-masterworker trace-process-migration trace-host-user-variables)
ADD_TESH(msg-${x} --setenv bindir=${CMAKE_BINARY_DIR}/examples/deprecated/msg/${x}
--setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/deprecated/msg/${x}
${CMAKE_HOME_DIRECTORY}/examples/s4u/${example}/s4u-${example}.tesh)
endforeach()
-set_tesh_properties(s4u-platform-failures "raw;boost" WILL_FAIL TRUE) # FIXME
-
# Multi-files examples
######################
${CMAKE_CURRENT_SOURCE_DIR}/energy-boot/platform_boot.xml
${CMAKE_CURRENT_SOURCE_DIR}/io-file-remote/s4u-io-file-remote_d.xml
${CMAKE_CURRENT_SOURCE_DIR}/platform-properties/s4u-platform-properties_d.xml
- ${CMAKE_CURRENT_SOURCE_DIR}/platform-failures/s4u-masterworker-failures_d.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/platform-failures/s4u-platform-failures_d.xml
${CMAKE_CURRENT_SOURCE_DIR}/replay-comm/s4u-replay-comm-split_d.xml
${CMAKE_CURRENT_SOURCE_DIR}/replay-comm/s4u-replay-comm_d.xml
${CMAKE_CURRENT_SOURCE_DIR}/replay-storage/s4u-replay-storage_d.xml
p Testing a simple master/worker example application handling failures TCP crosstraffic DISABLED
! output sort 19
-$ $SG_TEST_EXENV ${bindir:=.}/s4u-platform-failures$EXEEXT --log=xbt_cfg.thres:critical --log=no_loc ${platfdir}/small_platform_failures.xml ${srcdir:=.}/s4u-masterworker-failures_d.xml --cfg=path:${srcdir} --cfg=network/crosstraffic:0 "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" --log=surf_cpu.t:verbose
+$ $SG_TEST_EXENV ${bindir:=.}/s4u-platform-failures$EXEEXT --log=xbt_cfg.thres:critical --log=no_loc ${platfdir}/small_platform_failures.xml ${srcdir:=.}/s4u-platform-failures_d.xml --cfg=path:${srcdir} --cfg=network/crosstraffic:0 "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" --log=surf_cpu.t:verbose
> [ 0.000000] (0:maestro@) Cannot launch actor 'worker' on failed host 'Fafard'
> [ 0.000000] (1:master@Tremblay) Got 5 workers and 20 tasks to process
> [ 0.000000] (1:master@Tremblay) Send a message to worker-0
p Testing a simple master/worker example application handling failures. TCP crosstraffic ENABLED
! output sort 19
-$ $SG_TEST_EXENV ${bindir:=.}/s4u-platform-failures$EXEEXT --log=xbt_cfg.thres:critical --log=no_loc ${platfdir}/small_platform_failures.xml ${srcdir:=.}/s4u-masterworker-failures_d.xml --cfg=path:${srcdir} "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" --log=surf_cpu.t:verbose
+$ $SG_TEST_EXENV ${bindir:=.}/s4u-platform-failures$EXEEXT --log=xbt_cfg.thres:critical --log=no_loc ${platfdir}/small_platform_failures.xml ${srcdir:=.}/s4u-platform-failures_d.xml --cfg=path:${srcdir} "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" --log=surf_cpu.t:verbose
> [ 0.000000] (0:maestro@) Cannot launch actor 'worker' on failed host 'Fafard'
> [ 0.000000] (1:master@Tremblay) Got 5 workers and 20 tasks to process
> [ 0.000000] (1:master@Tremblay) Send a message to worker-0
return result.get();
}
-XBT_PUBLIC const std::vector<smx_actor_t>& process_get_runnable();
+XBT_ATTRIB_DEPRECATED_v325("Please manifest if you actually need this function.")
+ XBT_PUBLIC const std::vector<smx_actor_t>& process_get_runnable();
// What's executed as SIMIX actor code:
typedef std::function<void()> ActorCode;
watched_hosts.insert(actor_->host_->get_cname());
}
- actor_->finished_ = true;
-
// Execute the termination callbacks
smx_process_exit_status_t exit_status = (actor_->context_->iwannadie) ? SMX_EXIT_FAILURE : SMX_EXIT_SUCCESS;
while (not actor_->on_exit.empty()) {
if (std::find(begin(simix_global->process_to_run), end(simix_global->process_to_run), this) ==
end(simix_global->process_to_run) &&
this != SIMIX_process_self()) {
- XBT_DEBUG("Inserting %s in the to_run list", get_cname());
+ XBT_DEBUG("Inserting [%p] %s in the to_run list", this, get_cname());
simix_global->process_to_run.push_back(this);
}
}
/* Now insert it in the global process list and in the process to run list */
simix_global->process_list[actor->pid_] = actor;
- XBT_DEBUG("Inserting %s(%s) in the to_run list", actor->get_cname(), host->get_cname());
+ XBT_DEBUG("Inserting [%p] %s(%s) in the to_run list", actor, actor->get_cname(), host->get_cname());
simix_global->process_to_run.push_back(actor);
intrusive_ptr_add_ref(actor);
/* Now insert it in the global process list and in the process to run list */
simix_global->process_list[actor->pid_] = actor;
- XBT_DEBUG("Inserting %s(%s) in the to_run list", actor->get_cname(), host->get_cname());
+ XBT_DEBUG("Inserting [%p] %s(%s) in the to_run list", actor, actor->get_cname(), host->get_cname());
simix_global->process_to_run.push_back(actor);
intrusive_ptr_add_ref(actor);
if (std::find(begin(simix_global->process_to_run), end(simix_global->process_to_run), actor) ==
end(simix_global->process_to_run) &&
actor != SIMIX_process_self()) {
- XBT_DEBUG("Inserting %s in the to_run list", actor->get_cname());
+ XBT_DEBUG("Inserting [%p] %s in the to_run list", actor, actor->get_cname());
simix_global->process_to_run.push_back(actor);
}
}
}
}
-/** @brief Returns the list of processes to run. */
+/** @brief Returns the list of processes to run.
+ * @deprecated
+ */
const std::vector<smx_actor_t>& simgrid::simix::process_get_runnable()
{
return simix_global->process_to_run;
default:
xbt_die("Internal error in SIMIX_execution_finish: unexpected synchro state %d", (int)exec->state_);
}
- /* Fail the process if the host is down */
- if (simcall->issuer->host_->is_off())
- simcall->issuer->context_->iwannadie = true;
simcall->issuer->waiting_synchro = nullptr;
simcall_execution_wait__set__result(simcall, exec->state_);
- SIMIX_simcall_answer(simcall);
+
+ /* Fail the process if the host is down */
+ if (simcall->issuer->host_->is_off())
+ simcall->issuer->context_->iwannadie = true;
+ else
+ SIMIX_simcall_answer(simcall);
}
}
xbt_die("Internal error in SIMIX_io_finish: unexpected synchro state %d", static_cast<int>(synchro->state_));
}
- if (simcall->issuer->host_->is_off()) {
- simcall->issuer->context_->iwannadie = true;
- }
-
simcall->issuer->waiting_synchro = nullptr;
- SIMIX_simcall_answer(simcall);
+ if (simcall->issuer->host_->is_off())
+ simcall->issuer->context_->iwannadie = true;
+ else
+ SIMIX_simcall_answer(simcall);
}
}
}
}
- if (simcall->issuer->host_->is_off())
- simcall->issuer->context_->iwannadie = true;
-
simcall->issuer->waiting_synchro = nullptr;
simcall->issuer->comms.remove(synchro);
if(comm->detached){
}
}
- SIMIX_simcall_answer(simcall);
+ if (simcall->issuer->host_->is_off())
+ simcall->issuer->context_->iwannadie = true;
+ else
+ SIMIX_simcall_answer(simcall);
}
}
smx_simcall_t simcall = synchro->simcalls_.front();
synchro->simcalls_.pop_front();
- if (synchro->state_ != SIMIX_SRC_TIMEOUT) {
- if (synchro->state_ == SIMIX_FAILED)
- simcall->issuer->context_->iwannadie = true;
- else
- THROW_IMPOSSIBLE;
- }
-
SIMIX_synchro_stop_waiting(simcall->issuer, simcall);
simcall->issuer->waiting_synchro = nullptr;
- SIMIX_simcall_answer(simcall);
+
+ if (synchro->state_ != SIMIX_SRC_TIMEOUT) {
+ xbt_assert(synchro->state_ == SIMIX_FAILED);
+ simcall->issuer->context_->iwannadie = true;
+ } else {
+ SIMIX_simcall_answer(simcall);
+ }
XBT_OUT();
}
- In <trace_connect>, attribute kind="POWER" is now kind="SPEED".
- In <host> and <link>, attributes availability and state are gone.
- It was redundent with state and availability profiles, and with peak values.
+ It was redundant with state and availability profiles, and with peak values.
- In <cluster>, cannot set the availability nor state profiles.
This was too complex and unused.
* that a <host>, <peer>, <cluster> or <cabinet> can deliver per second.
* - In <trace_connect>, attribute kind="POWER" is now kind="SPEED".
* - In <host> and <link>, attributes availability and state are gone.
- * It was redundent with state and availability traces, and with peak values.
+ * It was redundant with state and availability traces, and with peak values.
* - In <cluster>, cannot set the availability nor state profiles.
* This was too complex and unused.
* - The DOCTYPE points to the right URL (this file).
${CMAKE_CURRENT_SOURCE_DIR}/MSG_visualization/trace2fig.pl PARENT_SCOPE)
set(txt_files ${txt_files} ${CMAKE_CURRENT_SOURCE_DIR}/pkg-config/simgrid.pc.in
+ ${CMAKE_CURRENT_SOURCE_DIR}/sanitizers.supp
${CMAKE_CURRENT_SOURCE_DIR}/simgrid.supp
${CMAKE_CURRENT_SOURCE_DIR}/simgrid2vite.sed PARENT_SCOPE)
if [ "${SANITIZER}" = "address" ]
then
+ export ASAN_OPTIONS="suppressions=$WORKSPACE/tools/sanitizers.supp"
SANITIZER_OPTIONS="-Denable_address_sanitizer=ON -Denable_undefined_sanitizer=OFF -Denable_thread_sanitizer=OFF"
elif [ "${SANITIZER}" = "thread" ]
then
--- /dev/null
+# Address sanitizer suppressions for stuff that we cannot control
+
+# ignore libunwind cruft
+interceptor_via_lib:libunwind.so