Arnaud Giersch [Tue, 26 Sep 2017 09:38:02 +0000 (11:38 +0200)]
Allow to specify a cleanup handler for detached comms.
Arnaud Giersch [Tue, 26 Sep 2017 09:27:34 +0000 (11:27 +0200)]
Implement basic backtrace cut for --cfg=exception/cutpath.
This option became a no-op when the exceptions were ported to C++.
Arnaud Giersch [Mon, 25 Sep 2017 20:23:10 +0000 (22:23 +0200)]
Fix most of the remaining leaks in msg-host_on_off_processes.
Only Test 6 remains unfixed, because it would change the test output.
See FIXME comment at line 179.
Arnaud Giersch [Mon, 25 Sep 2017 09:03:29 +0000 (11:03 +0200)]
Disable broken test.
It gives a yellow bullet on Jenkins, and doesn't bring anything.
More precisely, the test aborts early because MPI_Type_extent doesn't give
the expected result (Unexpected extent for small struct). The result of
the test was however never verified, since the test is only used by the
model checker.
On the FreeBSD node (clang/libc++), something is broken with exception
handling and the model checker hangs indefinitely at context's ::stop(),
when a StopRequest exception is launched.
The test can be reactivated either when MPI_Type_extent is fixed, or an
update corrects the problems on FreeBSD.
Arnaud Giersch [Fri, 22 Sep 2017 22:21:41 +0000 (00:21 +0200)]
More cleanup in contexts' stop().
Call Context::stop() at upper level: save an exception, and hopefully fix
MC tests on FreeBSD, even if I don't really understand what's going wrong.
Arnaud Giersch [Fri, 22 Sep 2017 16:37:07 +0000 (18:37 +0200)]
Set (accidentally removed) SOCK_CLOEXEC again.
Arnaud Giersch [Fri, 22 Sep 2017 15:25:37 +0000 (17:25 +0200)]
mc/remote: switch to socket type SOCK_SEQPACKET to detect when the peer disconnected.
Arnaud Giersch [Fri, 22 Sep 2017 13:02:28 +0000 (15:02 +0200)]
Really kill the process.
Some mc/umpire tests are deadlocking since commit
7b7b18bf7.
Arnaud Giersch [Fri, 22 Sep 2017 11:20:50 +0000 (13:20 +0200)]
Move around code to be consistent with other context factories.
Arnaud Giersch [Fri, 22 Sep 2017 11:16:26 +0000 (13:16 +0200)]
Codacy is a bit picky about those.
Arnaud Giersch [Fri, 22 Sep 2017 09:58:24 +0000 (11:58 +0200)]
Fix build with -Werror=missing-declarations.
Arnaud Giersch [Fri, 22 Sep 2017 09:36:52 +0000 (11:36 +0200)]
Derive custom exception from std::exception.
Arnaud Giersch [Thu, 21 Sep 2017 21:28:31 +0000 (23:28 +0200)]
Improve context termination.
Throw an exception to terminate the context at upper level, and have
resources freed by stack unwinding.
Closes #204, since pthread_exit is not called anymore.
Arnaud Giersch [Thu, 21 Sep 2017 15:18:18 +0000 (17:18 +0200)]
Leaks -= 2;
Arnaud Giersch [Thu, 21 Sep 2017 11:30:30 +0000 (13:30 +0200)]
smpi_memory: don't copy poisoned regions when AddressSanitizer is in use.
Not sure if it's entirely correct, but it cannot be worse than the current state
where ASan stops in smpi_initialize_global_memory_segments.
Arnaud Giersch [Wed, 20 Sep 2017 14:17:35 +0000 (16:17 +0200)]
Fix double-free error.
Arnaud Giersch [Wed, 20 Sep 2017 13:25:06 +0000 (15:25 +0200)]
Remove dead assignments spotted by scan-build.
Arnaud Giersch [Wed, 20 Sep 2017 10:13:56 +0000 (12:13 +0200)]
Fix memory leak in process-join.
Arnaud Giersch [Wed, 20 Sep 2017 07:39:38 +0000 (09:39 +0200)]
Disable stack-overflow tests with address sanitizer.
Augustin Degomme [Tue, 19 Sep 2017 10:58:28 +0000 (12:58 +0200)]
switch a mpich3 coll test to boost contexts instead of thread if found
Arnaud Giersch [Tue, 19 Sep 2017 08:26:27 +0000 (10:26 +0200)]
Fix gcc's -Wmissing-field-initializers.
Augustin Degomme [Tue, 19 Sep 2017 08:08:24 +0000 (10:08 +0200)]
try to silence some warnings
Arnaud Giersch [Tue, 19 Sep 2017 05:59:31 +0000 (07:59 +0200)]
Fully initialize struct, and please valgrind.
Arnaud Giersch [Mon, 18 Sep 2017 19:35:51 +0000 (21:35 +0200)]
Disable alternate signal stack before thread exit.
AddressSanitizer (ASan) reports an error if the alternate signal stack remains
active when a thread exits:
==28272==ERROR: AddressSanitizer failed to deallocate 0x2000 (8192) bytes at address 0x7f53ebba7c00
==28272==AddressSanitizer CHECK failed: ../../../../src/libsanitizer/sanitizer_common/sanitizer_posix.cc:141 "(("unable to unmap" && 0)) != (0)" (0x0, 0x0)
#0 0x7f53ebc950e5 (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe40e5)
#1 0x7f53ebcb1c15 in __sanitizer::CheckFailed(char const*, int, char const*, unsigned long long, unsigned long long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x100c15)
#2 0x7f53ebca975f (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xf875f)
#3 0x7f53ebcaa560 (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xf9560)
#4 0x7f53ebc98764 (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe7764)
#5 0x7f53ea57a5e8 in __nptl_deallocate_tsd.part.4 (/lib/x86_64-linux-gnu/libpthread.so.0+0x65e8)
#6 0x7f53ea57b647 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x7647)
#7 0x7f53e93e0abe in __clone (/lib/x86_64-linux-gnu/libc.so.6+0xe8abe)
Arnaud Giersch [Sat, 16 Sep 2017 20:53:21 +0000 (22:53 +0200)]
Delete ProcessArg.properties.
Arnaud Giersch [Sat, 16 Sep 2017 13:27:42 +0000 (15:27 +0200)]
Leak-- (seen in maestro-set).
Arnaud Giersch [Sat, 16 Sep 2017 12:44:46 +0000 (14:44 +0200)]
Memcheck: another kind of leak to ignore from smpi/dlopen.
Arnaud Giersch [Sat, 16 Sep 2017 12:32:09 +0000 (14:32 +0200)]
Memcheck: another try to make valgrind ignore memory leak in cmake.
Martin Quinson [Sat, 16 Sep 2017 20:34:17 +0000 (22:34 +0200)]
instr: small cleanup
Martin Quinson [Sat, 16 Sep 2017 20:21:20 +0000 (22:21 +0200)]
instr: kill a dead function
Martin Quinson [Sat, 16 Sep 2017 20:15:32 +0000 (22:15 +0200)]
instr: objectifies another method
Martin Quinson [Sat, 16 Sep 2017 19:24:55 +0000 (21:24 +0200)]
a static function with an object parameter is a regular method
Arnaud Giersch [Fri, 15 Sep 2017 21:37:27 +0000 (23:37 +0200)]
Initialize saveptr and please dumb compilers.
Arnaud Giersch [Fri, 15 Sep 2017 20:27:31 +0000 (22:27 +0200)]
Throw exception by value.
Arnaud Giersch [Fri, 15 Sep 2017 20:10:01 +0000 (22:10 +0200)]
Simplify loop condition (sonar).
Arnaud Giersch [Fri, 15 Sep 2017 13:16:47 +0000 (15:16 +0200)]
Remove useless default capture for lambdas.
Arnaud Giersch [Fri, 15 Sep 2017 13:06:02 +0000 (15:06 +0200)]
Use strtok_r() instead of non reentrant strtok().
Arnaud Giersch [Fri, 15 Sep 2017 11:56:04 +0000 (13:56 +0200)]
Please sonar (s/struct/class).
Arnaud Giersch [Fri, 15 Sep 2017 11:19:46 +0000 (13:19 +0200)]
Fix valgrind suppression file.
Arnaud Giersch [Fri, 15 Sep 2017 08:02:19 +0000 (10:02 +0200)]
Typedef is superfluous here.
Arnaud Giersch [Fri, 15 Sep 2017 08:00:40 +0000 (10:00 +0200)]
smpi_shared: define smpi_source_location as inheriting from std::string.
Arnaud Giersch [Fri, 15 Sep 2017 07:59:25 +0000 (09:59 +0200)]
smpi_bench: define SampleLocation inheriting from std::string.
Arnaud Giersch [Thu, 14 Sep 2017 13:04:33 +0000 (15:04 +0200)]
smpi_bench: store plain local data in map (no pointer).
Arnaud Giersch [Wed, 13 Sep 2017 14:59:08 +0000 (16:59 +0200)]
Remove redundant operations.
Martin Quinson [Fri, 15 Sep 2017 05:48:35 +0000 (07:48 +0200)]
instr: fix a new/free mismatch, and small cleanups
- name a destructor by its name
- inline a useless recursive function: by doing the job in the destructor
Martin Quinson [Thu, 14 Sep 2017 14:07:40 +0000 (16:07 +0200)]
New: s4u::Host.execute() for remote executions
Martin Quinson [Thu, 14 Sep 2017 12:57:47 +0000 (14:57 +0200)]
really try to plug that memleak
Martin Quinson [Thu, 14 Sep 2017 12:46:13 +0000 (14:46 +0200)]
cleanup plugging a memleak
Arnaud Giersch [Wed, 13 Sep 2017 14:08:39 +0000 (16:08 +0200)]
Get rid of spurious symlink for lua test.
Arnaud Giersch [Wed, 13 Sep 2017 13:47:57 +0000 (15:47 +0200)]
tesh: allow multiple --cfg and --log (needed for parallel tests).
Arnaud Giersch [Wed, 13 Sep 2017 13:47:21 +0000 (15:47 +0200)]
Add missing tests with Boost context factory.
Arnaud Giersch [Wed, 13 Sep 2017 13:05:33 +0000 (15:05 +0200)]
Delay creation of parmap for boost contexts too.
Arnaud Giersch [Wed, 13 Sep 2017 10:43:21 +0000 (12:43 +0200)]
tesh: update ignore_regexp_common.
Martin Quinson [Tue, 12 Sep 2017 22:16:56 +0000 (00:16 +0200)]
fewer explicit news are fewer possible leaks
Martin Quinson [Tue, 12 Sep 2017 21:34:27 +0000 (23:34 +0200)]
convert a dict into a unordered_map
Arnaud Giersch [Tue, 12 Sep 2017 21:13:16 +0000 (23:13 +0200)]
ContextBoost: add support for Boost versions above 1.61.
Arnaud Giersch [Tue, 12 Sep 2017 20:22:53 +0000 (22:22 +0200)]
ContextBoost: useless initialization.
Arnaud Giersch [Tue, 12 Sep 2017 20:11:32 +0000 (22:11 +0200)]
ContextBoost: define helper function for jump_fcontext.
Also make smx_ctx_boost_wrapper() a static member of BoostContext.
Arnaud Giersch [Tue, 12 Sep 2017 20:03:55 +0000 (22:03 +0200)]
ContextBoost: use BOOST_VERSION instead of simgrid-specific HAVE_BOOST_CONTEXTS.
Arnaud Giersch [Tue, 12 Sep 2017 20:01:16 +0000 (22:01 +0200)]
ContextBoost: use C++ style casts.
Arnaud Giersch [Tue, 12 Sep 2017 14:58:10 +0000 (16:58 +0200)]
Update .gitignore.
Arnaud Giersch [Tue, 12 Sep 2017 14:19:52 +0000 (16:19 +0200)]
These lines have no utility (anymore?)
Arnaud Giersch [Tue, 12 Sep 2017 13:08:55 +0000 (15:08 +0200)]
Avoid uppercase characters in package names.
Arnaud Giersch [Tue, 12 Sep 2017 11:18:48 +0000 (13:18 +0200)]
Rename Java examples.
Add prefix "java-" to target names, and s/_/-/.
Arnaud Giersch [Sun, 10 Sep 2017 19:37:52 +0000 (21:37 +0200)]
Fix memory leaks.
Arnaud Giersch [Sun, 10 Sep 2017 19:28:35 +0000 (21:28 +0200)]
Remove duplicated line.
Martin Quinson [Sun, 10 Sep 2017 20:48:45 +0000 (22:48 +0200)]
ignore one more cruft from travis
Seen live as:
Picked up _JAVA_OPTIONS: -Xmx2048m -Xms512m
Martin Quinson [Sun, 10 Sep 2017 20:21:57 +0000 (22:21 +0200)]
codacy
Martin Quinson [Sun, 10 Sep 2017 19:02:50 +0000 (21:02 +0200)]
s|s4u_|s4u-|
Martin Quinson [Sun, 10 Sep 2017 16:10:30 +0000 (18:10 +0200)]
remove a teshsuite example that is superseeded by a proper example
Martin Quinson [Sun, 10 Sep 2017 16:08:31 +0000 (18:08 +0200)]
fix doc
Martin Quinson [Sun, 10 Sep 2017 16:07:14 +0000 (18:07 +0200)]
implement simgrid::s4u::Comm::wait_all() and use it in example
Martin Quinson [Sun, 10 Sep 2017 15:57:36 +0000 (17:57 +0200)]
reduce the differences between the s4u_async examples
Martin Quinson [Sun, 10 Sep 2017 15:34:48 +0000 (17:34 +0200)]
fix the s4u_async-waitany example
Martin Quinson [Sun, 10 Sep 2017 14:55:46 +0000 (16:55 +0200)]
massive cleanups in the s4u-async-waitall example
Martin Quinson [Sun, 10 Sep 2017 13:20:21 +0000 (15:20 +0200)]
Merge pull request #218 from Takishipp/MSG2S4U
first attempt to convert async-waitany msg version to s4u (doesn't work yet)
Martin Quinson [Sun, 10 Sep 2017 13:19:55 +0000 (15:19 +0200)]
please sonar: kill dead code
Arnaud Giersch [Sat, 9 Sep 2017 21:20:22 +0000 (23:20 +0200)]
Indentation.
Arnaud Giersch [Sat, 9 Sep 2017 20:37:09 +0000 (22:37 +0200)]
'request' cannot be null here (verified before at line 611.
Arnaud Giersch [Sat, 9 Sep 2017 20:29:19 +0000 (22:29 +0200)]
Remove useless assignments.
Arnaud Giersch [Sat, 9 Sep 2017 16:23:12 +0000 (18:23 +0200)]
Use C++ strings instead of char*.
Arnaud Giersch [Sat, 9 Sep 2017 14:28:26 +0000 (16:28 +0200)]
Fix use-ater-free.
Arnaud Giersch [Sat, 9 Sep 2017 14:05:08 +0000 (16:05 +0200)]
Fix unitialized value spotted by scan-build.
34 while (simgrid::s4u::Engine::getClock() < deadline) {
# (1) Loop condition is true. Entering loop body
35 void* received;
# (2) 'received' declared without an initial value
36 if (comm == nullptr)
# (3) Taking false branch
37 comm = mailbox->get_async(&received);
38 if (comm->test()) {
# (4) Assuming the condition is true
# (5) Taking true branch
39 // Retrieve the data sent by the peer.
40 TrackerQuery* tq = static_cast<TrackerQuery*>(received);
# (6) Assigned value is garbage or undefined
Arnaud Giersch [Fri, 8 Sep 2017 22:09:45 +0000 (00:09 +0200)]
Fix potential buffer overflows.
Arnaud Giersch [Fri, 8 Sep 2017 21:22:10 +0000 (23:22 +0200)]
Stupid scan-build, this is always true.
Arnaud Giersch [Fri, 8 Sep 2017 20:30:00 +0000 (22:30 +0200)]
Verify parameters passed to strcmp.
Arnaud Giersch [Wed, 6 Sep 2017 13:14:31 +0000 (15:14 +0200)]
Fix use-after-free.
'message' is not mine if I didn't get an answer.
Takishipp [Fri, 8 Sep 2017 15:47:44 +0000 (17:47 +0200)]
Adding integration tests of async-waitall and waitany
Takishipp [Fri, 8 Sep 2017 12:30:53 +0000 (14:30 +0200)]
Make some correction to the converted examples
Takishipp [Thu, 7 Sep 2017 14:33:03 +0000 (16:33 +0200)]
fix async-waitall example
Takishipp [Wed, 6 Sep 2017 14:06:55 +0000 (16:06 +0200)]
add a description to s4u for the treated examples
Takishipp [Wed, 6 Sep 2017 10:59:38 +0000 (12:59 +0200)]
asyc-waitall is converted
Takishipp [Tue, 5 Sep 2017 16:13:38 +0000 (18:13 +0200)]
async-waitall is almost converted - phase 1
Arnaud Giersch [Mon, 4 Sep 2017 20:44:04 +0000 (22:44 +0200)]
Don't inline ~xbt_ex.
Otherwise, xbt_ex is also defined in libsimgrid-java and some tests are broken
with clang/libc++/freebsd.
Thanks Gabriel if this works!
Takishipp [Mon, 4 Sep 2017 15:27:55 +0000 (17:27 +0200)]
Start to convert async-waitall to s4u
Takishipp [Mon, 4 Sep 2017 15:09:44 +0000 (17:09 +0200)]
Almost converted phase 2
Martin Quinson [Sun, 3 Sep 2017 23:48:45 +0000 (01:48 +0200)]
start cleaning up the instr::containers
Augustin Degomme [Sun, 3 Sep 2017 22:55:03 +0000 (00:55 +0200)]
try to get rid of some errors seen by scan-build
Martin Quinson [Sun, 3 Sep 2017 20:34:17 +0000 (22:34 +0200)]
give a proper constructor/destructor to instr::Container
Augustin Degomme [Sat, 2 Sep 2017 23:53:13 +0000 (01:53 +0200)]
try to please scan-build