-
Notifications
You must be signed in to change notification settings - Fork 136
Conversation
Codecov Report
@@ Coverage Diff @@
## master canonical/raft#173 +/- ##
==========================================
+ Coverage 86.27% 86.32% +0.05%
==========================================
Files 47 47
Lines 7532 7531 -1
Branches 2000 2003 +3
==========================================
+ Hits 6498 6501 +3
+ Misses 928 923 -5
- Partials 106 107 +1
Continue to review full report at Codecov.
|
55297d0
to
2d208a0
Compare
Hi @stgraber could you please check this change as well? |
I think I'd feel a lot more confident about this (and easier to review/revert) if it was split into a bunch of commits for the various type of changes done in there. |
@stgraber you mean half-working ones? I checked the changelist again and almost any line is needed to be sure that the project could be built or work at all... Maybe you have some clues on how to split it, because it's quite none in my head right now... |
@rabits Thank you for the PR. I am looking forward for this to land on master. However, I got your changes to build on MAC with this patch to raft,
Any idea what's going here? |
Hi @pycaster , yeah, still working on the patches - but with the latest releases. So still need to prepare CI and retest them again. Regarding the error you see - looks like some assert failed, hard to tell right now, but let's check when CI part will be ready. |
119f949
to
23bade6
Compare
Codecov Report
@@ Coverage Diff @@
## master canonical/raft#173 +/- ##
==========================================
- Coverage 86.79% 86.63% -0.16%
==========================================
Files 47 47
Lines 7602 7648 +46
Branches 2030 2046 +16
==========================================
+ Hits 6598 6626 +28
- Misses 900 918 +18
Partials 104 104
Continue to review full report at Codecov.
|
e99ef7d
to
1ffd87d
Compare
@MathieuBordere , I tested osx build but looks like it's disabled for now - do you know a way to make it through? |
@rabits Looks like our Travis account needs funding :-) should be functional again soon. |
Oh, sorry - hopefully it's not me who eaten the budget... Is osx pricey on travis? |
35f1979
to
da01c58
Compare
Hi @MathieuBordere , could you please check the CI log - I'm a little bit confused why the test could fail:
Also not sure if the other tests are fixed correctly, so am I going in the right direction? |
It's not obvious why it would fail, I propose that you try to run the test locally and debug it. The steps in the failing test are:
|
@MathieuBordere I can reproduce the problem locally. It does not look like Can you walk me through how a new connection is supposed to appear in the test and who should flush the pending messages? I hacked diff --git a/src/tracing.h b/src/tracing.h
index aeaddb2..9b0d9e2 100644
--- a/src/tracing.h
+++ b/src/tracing.h
@@ -16,6 +16,8 @@ extern struct raft_tracer StderrTracer;
/* Emit a debug message with the given tracer. */
#define Tracef(TRACER, ...) \
do { \
+fprintf(stderr, __VA_ARGS__); \
+fprintf(stderr, "\n"); \
if (TRACER != NULL && TRACER->emit != NULL && TRACER->enabled) { \
static char _msg[1024]; \
snprintf(_msg, sizeof _msg, __VA_ARGS__); \ and see the following:
|
Thanks for this, will have a look later this week! |
a lot developer use MacOS, please consider fix this. |
Oh, just recalled that this PR is still here. Sorry folks, I used dqlite in my project before, but figured out some other solution and quite sure will not going to continue work on this PR - gets too complicated to support this. Don't really mind if someone wants to continue the work) |
Patch to support the MacOS for go-dqlite, basically a copy of abandoned PR #119 with some cleaning and MacOS-specific changes.
Now it's ready for review - I tested it successfully with macos->macos and macos->linux connection and regular DB workload.
Tests are in the go-dqlite PR here: canonical/go-dqlite#132
The most important change that fixed the freeze is moving
r->leader_state.change = req;
prior to call of theclientChangeConfiguration
function (because the macos IO implementation is not async and executes directly, so quite sure even on linux it could fail in case the async executor will decide to run IO operation right after the call).The other patches in series: