Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
simgrid.git
17 months agohelp scan-build understanding that status is not used unintialized
Martin Quinson [Sat, 26 Jan 2019 20:49:27 +0000 (21:49 +0100)]
help scan-build understanding that status is not used unintialized

17 months agoProperly call Actor::on_destruction() in maestro context
Martin Quinson [Sat, 26 Jan 2019 20:12:37 +0000 (21:12 +0100)]
Properly call Actor::on_destruction() in maestro context

This induces a harmless change in trace-process-migration.tesh and
fixes the s4u-actor-exiting example \o/

17 months agoinline a function
Martin Quinson [Sat, 26 Jan 2019 19:49:06 +0000 (20:49 +0100)]
inline a function

17 months agono need to remove the killed actor from canceled comm: refcounting is working
Martin Quinson [Sat, 26 Jan 2019 19:33:12 +0000 (20:33 +0100)]
no need to remove the killed actor from canceled comm: refcounting is working

17 months agoAutomatic refcounting on the src and dst actors of a comm
Martin Quinson [Sat, 26 Jan 2019 18:09:51 +0000 (19:09 +0100)]
refcounting on the src and dst actors of a comm

17 months agoThe pimpl of s4u objects is const
Martin Quinson [Sat, 26 Jan 2019 17:43:11 +0000 (18:43 +0100)]
The pimpl of s4u objects is const

But the one of activities and the cpu_pimpl of host (the codebase is
not ready yet).

17 months agoalways cancel the comms of killed actors in the context of that actor (not in maestro)
Martin Quinson [Sat, 26 Jan 2019 10:02:31 +0000 (11:02 +0100)]
always cancel the comms of killed actors in the context of that actor (not in maestro)

17 months agoAlways call process_on_exit in the actor context
Martin Quinson [Sat, 26 Jan 2019 08:49:26 +0000 (09:49 +0100)]
Always call process_on_exit in the actor context

17 months agoI'd like to kill that parmap.h at some point
Martin Quinson [Sat, 26 Jan 2019 08:48:59 +0000 (09:48 +0100)]
I'd like to kill that parmap.h at some point

Let's first reduce its visibility

17 months agosonar was right: this if/else if was missing a else
Martin Quinson [Sat, 26 Jan 2019 08:28:25 +0000 (09:28 +0100)]
sonar was right: this if/else if was missing a else

17 months agotrick sonar 'identical sub-expression on both side of >'
Martin Quinson [Fri, 25 Jan 2019 07:10:00 +0000 (08:10 +0100)]
trick sonar 'identical sub-expression on both side of >'

17 months agoRestore final messages in Java examples.
Arnaud Giersch [Fri, 25 Jan 2019 14:20:18 +0000 (15:20 +0100)]
Restore final messages in Java examples.

They should be OK now that the termination of Java processes has been repaired.
These messages were removed by commit d535c50c617ba838b99de4bd251a6ac076774d00
"Somehow fix the killing of actors in Java".

17 months agoTry to silent scan-build.
Arnaud Giersch [Fri, 25 Jan 2019 11:15:11 +0000 (12:15 +0100)]
Try to silent scan-build.

17 months ago[sonar] Don't use default capture for lambda.
Arnaud Giersch [Fri, 25 Jan 2019 09:02:52 +0000 (10:02 +0100)]
[sonar] Don't use default capture for lambda.

17 months ago[sonar] Remove variadic functions.
Arnaud Giersch [Fri, 25 Jan 2019 08:39:47 +0000 (09:39 +0100)]
[sonar] Remove variadic functions.

17 months agoChange helper functions to static methods of StopRequest.
Arnaud Giersch [Thu, 24 Jan 2019 11:04:01 +0000 (12:04 +0100)]
Change helper functions to static methods of StopRequest.

17 months agoMove StopRequest out of Context.
Arnaud Giersch [Thu, 24 Jan 2019 10:56:44 +0000 (11:56 +0100)]
Move StopRequest out of Context.

Using context::Context in fully qualified name was redundant.

17 months ago[sonar] Anonymize unused parameters.
Arnaud Giersch [Thu, 24 Jan 2019 22:28:11 +0000 (23:28 +0100)]
[sonar] Anonymize unused parameters.

17 months agoHelp scan-build not seeing that "status" is initialized.
Arnaud Giersch [Thu, 24 Jan 2019 21:47:41 +0000 (22:47 +0100)]
Help scan-build not seeing that "status" is initialized.

Also kill TODO: source is not known when it's irecv.

17 months agosonar: don't catch exceptions we have no idea about
Martin Quinson [Thu, 24 Jan 2019 18:58:52 +0000 (19:58 +0100)]
sonar: don't catch exceptions we have no idea about

17 months agoRemove useless 2nd parameter "catch_block" for try_n_catch_stoprequest().
Arnaud Giersch [Wed, 23 Jan 2019 22:49:32 +0000 (23:49 +0100)]
Remove useless 2nd parameter "catch_block" for try_n_catch_stoprequest().

17 months agosonar cleanups
Martin Quinson [Thu, 24 Jan 2019 07:06:26 +0000 (08:06 +0100)]
sonar cleanups

- kill dead code
- stick to Java variable naming convention
- prefer isEmpty() to size()==0

17 months agoappveyor: don't test python. mingw cannot deal with pybind11 yet
Martin Quinson [Thu, 24 Jan 2019 06:48:55 +0000 (07:48 +0100)]
appveyor: don't test python. mingw cannot deal with pybind11 yet

17 months agoadd a small comment about the memleak introduced here
Martin Quinson [Thu, 24 Jan 2019 06:45:50 +0000 (07:45 +0100)]
add a small comment about the memleak introduced here

17 months agoStop using Context::StopRequest directly in libsimgrid-java.
Arnaud Giersch [Wed, 23 Jan 2019 22:22:58 +0000 (23:22 +0100)]
Stop using Context::StopRequest directly in libsimgrid-java.

17 months agoDefine helper functions to use Context::StopRequest outside of libsimgrid.
Arnaud Giersch [Wed, 23 Jan 2019 22:17:48 +0000 (23:17 +0100)]
Define helper functions to use Context::StopRequest outside of libsimgrid.

Rationale: exceptions sometimes fail to pass correctly between shared
libraries, specially on FreeBSD or OS X.

17 months agoHope to fix double-free: task may by destroyed on finalize().
Arnaud Giersch [Wed, 23 Jan 2019 20:35:53 +0000 (21:35 +0100)]
Hope to fix double-free: task may by destroyed on finalize().

17 months agoMerge remote-tracking branch 'github/master'
Arnaud Giersch [Wed, 23 Jan 2019 20:36:58 +0000 (21:36 +0100)]
Merge remote-tracking branch 'github/master'

17 months agocoverage : avoid matching cobertura pattern with jacoco files
Augustin Degomme [Wed, 23 Jan 2019 14:38:33 +0000 (15:38 +0100)]
coverage : avoid matching cobertura pattern with jacoco files

17 months agoUse $PYTHON_EXECUTABLE in tesh files.
Arnaud Giersch [Wed, 23 Jan 2019 13:34:56 +0000 (14:34 +0100)]
Use $PYTHON_EXECUTABLE in tesh files.

17 months agoImprove process termination in Java world.
Arnaud Giersch [Wed, 23 Jan 2019 11:29:45 +0000 (12:29 +0100)]
Improve process termination in Java world.

17 months agoMerge branch 'master' of framagit.org:simgrid/simgrid
Martin Quinson [Wed, 23 Jan 2019 06:58:21 +0000 (07:58 +0100)]
Merge branch 'master' of framagit.org:simgrid/simgrid

17 months agoRemove 2 (out of 3) horrible hacks around Java contexts
Martin Quinson [Wed, 23 Jan 2019 06:37:18 +0000 (07:37 +0100)]
Remove 2 (out of 3) horrible hacks around Java contexts

Previously, we did not even try to kill java contexts because we
failed to do so in some cases.  Now, we try to kill them just like we
kill the other contexts, even if we don't always succeed.

One difficulty comes from the fact that some threads are created from
the C++ (from the deployment file) and then attached to the JVM, while
some others are created from Java directly (when calling new
Process().start()). The C++ vs Java stack is directly inverted between
cases, complicating the try/catch logic.

In practice, in this changeset, we try harder to convert between the
C++ StopRequest and the Java ProcessKilledError at the language
boundaries.

Also, we don't assert that JavaThread::stop() can actually detach the
thread: it won't for threads that are born in Java because their Java
stack was not unwinded yet. So throw a ProcessKilledError for that.

This is not prefect either since we still need to brutally kill the
JVM after the simulation using exit(0). I added some debug functions
to get more information. Just comment the first call to exit(0) in
jmsg.cpp to see the state of all user threads that we failed to
destroy.

They are all in the C++ world, without any [Java] stack, not blocked
on any Java synchronization object. I suspect that the system thread
is terminated, but the C++ std::thread object is still referenced
somewhere, preventing it from being garbage collected. That's weird
that the JVM still waits for them before ending (and thus mandating
the last the Horrible Hack -- exit(0) in the C++ side of the JVM
system process).

Gosh this is complicated. I'd love to have something like pybind11
dealing with all that shit automatically...

17 months agoFix++
Arnaud Giersch [Tue, 22 Jan 2019 22:07:43 +0000 (23:07 +0100)]
Fix++

Got:
> ctest --output-on-failure -R 'java|python'
> 'python'' is not recognized as an internal or external command,
> operable program or batch file.
> Command exited with code 255

17 months agoFix ctest invocation on appveyor.
Arnaud Giersch [Tue, 22 Jan 2019 21:56:22 +0000 (22:56 +0100)]
Fix ctest invocation on appveyor.

17 months agoLast attempt for python/mingw.
Arnaud Giersch [Tue, 22 Jan 2019 21:42:09 +0000 (22:42 +0100)]
Last attempt for python/mingw.

17 months agoMerge branch 'master' of framagit.org:simgrid/simgrid
Martin Quinson [Tue, 22 Jan 2019 21:21:37 +0000 (22:21 +0100)]
Merge branch 'master' of framagit.org:simgrid/simgrid

17 months agoTry to get python compiling even with MinGW
Martin Quinson [Tue, 22 Jan 2019 20:22:02 +0000 (21:22 +0100)]
Try to get python compiling even with MinGW

17 months agoappveyor: also build and test python
Martin Quinson [Tue, 22 Jan 2019 19:57:40 +0000 (20:57 +0100)]
appveyor: also build and test python

17 months agoAvoid to call Context::stop() again when a StopRequest was thrown.
Arnaud Giersch [Tue, 22 Jan 2019 19:48:43 +0000 (20:48 +0100)]
Avoid to call Context::stop() again when a StopRequest was thrown.

It's already called just before the exception is thrown by the stop() method
(SwappedContext or ThreadContext).
Asan likes it better when it's called before throwing the exception.

17 months agouse the local copy of pybind11 if a local checkout exists
Martin Quinson [Tue, 22 Jan 2019 19:54:20 +0000 (20:54 +0100)]
use the local copy of pybind11 if a local checkout exists

17 months agoappveyor: try to get pybind11
Martin Quinson [Tue, 22 Jan 2019 17:08:57 +0000 (18:08 +0100)]
appveyor: try to get pybind11

17 months agoSimplify the actor answer to iwannadie
Martin Quinson [Mon, 21 Jan 2019 16:01:14 +0000 (17:01 +0100)]
Simplify the actor answer to iwannadie

17 months agoplay safe, no pointers to the stack of dying actors
Martin Quinson [Mon, 21 Jan 2019 15:41:36 +0000 (16:41 +0100)]
play safe, no pointers to the stack of dying actors

17 months agostep by step cleanup. This code drives me nuts
Martin Quinson [Mon, 21 Jan 2019 14:56:04 +0000 (15:56 +0100)]
step by step cleanup. This code drives me nuts

17 months agoAttempt to fix Python bindings on OS X.
Arnaud Giersch [Tue, 22 Jan 2019 15:35:51 +0000 (16:35 +0100)]
Attempt to fix Python bindings on OS X.

See https://github.com/pybind/pybind11/issues/1272.

17 months agoTypo.
Arnaud Giersch [Tue, 22 Jan 2019 14:25:58 +0000 (15:25 +0100)]
Typo.

17 months agoAdd missing issues to ChangeLog.
Arnaud Giersch [Tue, 22 Jan 2019 13:20:17 +0000 (14:20 +0100)]
Add missing issues to ChangeLog.

17 months agoFactorize some of the ASAN_ONLY code.
Arnaud Giersch [Mon, 21 Jan 2019 21:45:14 +0000 (22:45 +0100)]
Factorize some of the ASAN_ONLY code.

Also make asan_* members public to be visible from smx_ctx_wrapper
(ContextUnix,cpp).

17 months agoActivate test s4u-actor-exiting.
Arnaud Giersch [Mon, 21 Jan 2019 15:15:13 +0000 (16:15 +0100)]
Activate test s4u-actor-exiting.

According to emptty it's failing, add note with set_tesh_properties().
Also fix distcheck.

17 months agoSimplify by using set_tesh_properties().
Arnaud Giersch [Mon, 21 Jan 2019 14:58:05 +0000 (15:58 +0100)]
Simplify by using set_tesh_properties().

17 months agoRemove old cruft.
Arnaud Giersch [Mon, 21 Jan 2019 12:03:40 +0000 (13:03 +0100)]
Remove old cruft.

These functions and variables were removed a while ago.

17 months agoAvoid TSan false positives.
Arnaud Giersch [Mon, 21 Jan 2019 11:57:01 +0000 (12:57 +0100)]
Avoid TSan false positives.

17 months agoCosmetics.
Arnaud Giersch [Mon, 21 Jan 2019 11:09:21 +0000 (12:09 +0100)]
Cosmetics.

17 months agoUpdate ChangeLog.
Arnaud Giersch [Fri, 18 Jan 2019 09:01:58 +0000 (10:01 +0100)]
Update ChangeLog.

17 months agofurther s/trace/profile/ cleanups
Martin Quinson [Mon, 21 Jan 2019 13:58:12 +0000 (14:58 +0100)]
further s/trace/profile/ cleanups

17 months agoDoc improvement
Martin Quinson [Mon, 21 Jan 2019 13:53:13 +0000 (14:53 +0100)]
Doc improvement

17 months agostart to s/trace/profile/ in the public API
Martin Quinson [Mon, 21 Jan 2019 12:32:09 +0000 (13:32 +0100)]
start to s/trace/profile/ in the public API

17 months agostart renaming tmgr trace into profile
Martin Quinson [Mon, 21 Jan 2019 10:43:19 +0000 (11:43 +0100)]
start renaming tmgr trace into profile

17 months agoTry to make a symbol easier to find for MC on exotic platforms
Martin Quinson [Mon, 21 Jan 2019 08:42:37 +0000 (09:42 +0100)]
Try to make a symbol easier to find for MC on exotic platforms

17 months agoFix non-java tests :(
Martin Quinson [Mon, 21 Jan 2019 07:09:17 +0000 (08:09 +0100)]
Fix non-java tests :(

17 months agoctx: move some bits to a private header and reduce the exposure of src/internal_config.h
Martin Quinson [Sun, 20 Jan 2019 21:55:40 +0000 (22:55 +0100)]
ctx: move some bits to a private header and reduce the exposure of src/internal_config.h

17 months agocosmetics in UCtx: hide one internal function and inline another
Martin Quinson [Sun, 20 Jan 2019 21:25:16 +0000 (22:25 +0100)]
cosmetics in UCtx: hide one internal function and inline another

17 months agoIn C++, classes don't need a name because they have a class
Martin Quinson [Sun, 20 Jan 2019 20:41:27 +0000 (21:41 +0100)]
In C++, classes don't need a name because they have a class

17 months agothread_local fields must be static, no need to move to the factory
Martin Quinson [Sun, 20 Jan 2019 18:44:10 +0000 (19:44 +0100)]
thread_local fields must be static, no need to move to the factory

17 months agokill an unused function
Martin Quinson [Sun, 20 Jan 2019 17:09:13 +0000 (18:09 +0100)]
kill an unused function

17 months agos/process/actor/ A lot remains TBD about it
Martin Quinson [Sun, 20 Jan 2019 11:19:38 +0000 (12:19 +0100)]
s/process/actor/ A lot remains TBD about it

17 months agoMore ints converted as boolean
Martin Quinson [Sun, 20 Jan 2019 00:40:26 +0000 (01:40 +0100)]
More ints converted as boolean

17 months agonew (failing) example about on_exit and on_destruction
Martin Quinson [Sun, 20 Jan 2019 00:33:37 +0000 (01:33 +0100)]
new (failing) example about on_exit and on_destruction

17 months agobools are not ints anymore
Martin Quinson [Sun, 20 Jan 2019 00:24:11 +0000 (01:24 +0100)]
bools are not ints anymore

17 months agouseless cleanups
Martin Quinson [Sun, 20 Jan 2019 00:11:12 +0000 (01:11 +0100)]
useless cleanups

17 months agoFix a race condition in SwappedCtx parallel exec
Martin Quinson [Sat, 19 Jan 2019 22:18:07 +0000 (23:18 +0100)]
Fix a race condition in SwappedCtx parallel exec

The protection in set_maestro was failing to detect between the real
maestro and the working threads of the parmal. This is now fixed
according to helgrind.

Also, refactor things a bit by moving this set_maestro call directly
into the SwappedCtx constructor. Much less of a shotgun surgery :)

17 months agoHide usage of free() to Sonar.
Arnaud Giersch [Thu, 17 Jan 2019 08:43:23 +0000 (09:43 +0100)]
Hide usage of free() to Sonar.

17 months agoRemove unused bits from mmalloc.
Arnaud Giersch [Thu, 17 Jan 2019 08:21:51 +0000 (09:21 +0100)]
Remove unused bits from mmalloc.

17 months agofix MC on FreeBSD
Martin Quinson [Thu, 17 Jan 2019 00:27:03 +0000 (01:27 +0100)]
fix MC on FreeBSD

17 months agoFix paths.
Arnaud Giersch [Wed, 16 Jan 2019 22:55:38 +0000 (23:55 +0100)]
Fix paths.

17 months agoKill unused example simdag/goal_test.
Arnaud Giersch [Wed, 16 Jan 2019 20:58:48 +0000 (21:58 +0100)]
Kill unused example simdag/goal_test.

17 months agoTypo².
Arnaud Giersch [Wed, 16 Jan 2019 22:48:23 +0000 (23:48 +0100)]
Typo².

17 months agoRevert "Disable parallel executions with non-thread contexts under Tsan."
Martin Quinson [Wed, 16 Jan 2019 22:29:53 +0000 (23:29 +0100)]
Revert "Disable parallel executions with non-thread contexts under Tsan."

I have the feeling that the problem is actually in the parallel exec
of swapped factories, not in TSan.

This reverts commit 019d8784441a673767fd76b20a6283b965ead239.

17 months agoFix memleak.
Arnaud Giersch [Wed, 16 Jan 2019 20:58:48 +0000 (21:58 +0100)]
Fix memleak.

17 months agoTypo.
Arnaud Giersch [Wed, 16 Jan 2019 21:41:58 +0000 (22:41 +0100)]
Typo.

17 months agoReplace macros by C++ constructs.
Arnaud Giersch [Wed, 16 Jan 2019 20:21:16 +0000 (21:21 +0100)]
Replace macros by C++ constructs.

17 months agoMerge branch 'master' of framagit.org:simgrid/simgrid
Martin Quinson [Wed, 16 Jan 2019 21:57:19 +0000 (22:57 +0100)]
Merge branch 'master' of framagit.org:simgrid/simgrid

17 months agoSET_TESTS_PROPERTIES Can not find test to add properties to.
Arnaud Giersch [Wed, 16 Jan 2019 17:55:21 +0000 (18:55 +0100)]
SET_TESTS_PROPERTIES Can not find test to add properties to.

Test stack-overflow-thread has been removed.

17 months agoDrop xbt_os_mutex_* functions.
Arnaud Giersch [Wed, 16 Jan 2019 16:36:54 +0000 (17:36 +0100)]
Drop xbt_os_mutex_* functions.

17 months agoUse standard C++ mutex.
Arnaud Giersch [Wed, 16 Jan 2019 16:31:28 +0000 (17:31 +0100)]
Use standard C++ mutex.

Recursive because it was recursive before.
See commit c0f0866d02664ad515441a5294f95c6b7d8b6fc1
"Fix the race condition in _xbt_log_cat_init()."

17 months agoBuild log module as C++.
Arnaud Giersch [Wed, 16 Jan 2019 14:09:36 +0000 (15:09 +0100)]
Build log module as C++.

The goal is to use C++ mutex.

17 months agoFix asserts.
Arnaud Giersch [Wed, 16 Jan 2019 15:59:58 +0000 (16:59 +0100)]
Fix asserts.

17 months agoStruct xbt_os_thread_t is not used anymore.
Arnaud Giersch [Wed, 16 Jan 2019 10:30:41 +0000 (11:30 +0100)]
Struct xbt_os_thread_t is not used anymore.

17 months agoRemove useless wrapper around pthread_atfork().
Arnaud Giersch [Wed, 16 Jan 2019 10:29:12 +0000 (11:29 +0100)]
Remove useless wrapper around pthread_atfork().

17 months agoInclude is not needed anymore. Remove.
Arnaud Giersch [Wed, 16 Jan 2019 10:24:52 +0000 (11:24 +0100)]
Include is not needed anymore.  Remove.

17 months agoDisable stack-overflow test with threads.
Arnaud Giersch [Wed, 16 Jan 2019 10:06:55 +0000 (11:06 +0100)]
Disable stack-overflow test with threads.

Stack protection (setstacksize/setguardsize) have been removed.

17 months agocosmetics
Martin Quinson [Wed, 16 Jan 2019 09:40:19 +0000 (10:40 +0100)]
cosmetics

17 months agoJava examples have moved.
Arnaud Giersch [Wed, 16 Jan 2019 09:19:30 +0000 (10:19 +0100)]
Java examples have moved.

17 months agoTest for msg-task-priority is still present; run it for coverage.
Arnaud Giersch [Mon, 14 Jan 2019 20:41:56 +0000 (21:41 +0100)]
Test for msg-task-priority is still present; run it for coverage.

17 months agoAdd dependency to build tests for make check.
Arnaud Giersch [Mon, 14 Jan 2019 14:10:50 +0000 (15:10 +0100)]
Add dependency to build tests for make check.

17 months agoKill xbt_os_thread_atfork: tesh is not native but python now
Martin Quinson [Wed, 16 Jan 2019 07:44:31 +0000 (08:44 +0100)]
Kill xbt_os_thread_atfork: tesh is not native but python now

17 months agocleanups on my disk
Martin Quinson [Wed, 16 Jan 2019 07:43:31 +0000 (08:43 +0100)]
cleanups on my disk

17 months agoLinux and FreeBSD don't agree on the type name, bummers
Martin Quinson [Wed, 16 Jan 2019 07:29:38 +0000 (08:29 +0100)]
Linux and FreeBSD don't agree on the type name, bummers

17 months agofix the fix for FreeBSD (hopefully)
Martin Quinson [Wed, 16 Jan 2019 07:19:47 +0000 (08:19 +0100)]
fix the fix for FreeBSD (hopefully)