-
Notifications
You must be signed in to change notification settings - Fork 162
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Drop elixir < 1.5 support #386
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we could get away with just testing 1.5 with OTP 19 but It's not that big of a deal either way. It's just robot time anyways.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
Yeah no i ain't approvin this until the build succeeds 😂 I totes approve in theory, tho. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Step 1. Identify the problem.
Step 2. FIX IT
@joshuawscott do mind if I take over ? |
I have run the tests locally many times, and there's a test that fails very frequently: the check on the number of open ports after shutting down consumer groups:
I believe those two checks to be unreliable and I'm in favor of removing them. For the rest, generous timeouts seem to help. |
66add73
to
857fabd
Compare
I made a force-push with the changes I needed locally to make this work. @joshuawscott If needed, I pushed your original branch as a tag ( I also took the opportunity to clean up a bit the code around docker-compose. All the custom scripts and config can be elegantly replaced by env vars. |
d4b9a47
to
dcddda3
Compare
I've been trying to make the tests pass for a few days. My conclusion is that the tests are simply unstable. Often times, it's due to timeouts in genserver calls. The consumer group tests in particular have frequent failures, but the failures are not limited to them. I'm not sure what to do with this. |
I failures are not consistent, I just kicked the failing builds in travis... it's probably important to investigate and fix the flakes, but some of them have been there for a while |
Thanks for looking! |
1.9.4 as compared to the others seems to be failing consistently after ~5 runs, so it seems there's a genuine failure there. |
Indeed. I'm testing with an 1.9.4 without credo and coveralls, to see if it's linked. I'm also testing 1.10, to see if the problem also happens there. |
Can confirm:
|
Locally, the following test can reproduce the errors reliably. There's a timeout after a few hundred messages: test "produce 10_000 with an acq required returns offset each time" do
for index <- 0..10_000 do
{:ok, offset} =
KafkaEx.produce(%Proto.Produce.Request{
topic: "food",
partition: 0,
required_acks: 1,
messages: [%Proto.Produce.Message{value: "hey_#{index}"}]
})
refute offset == nil
end
end
|
By re-trying on failure, I don't get any error any more, even with 100k messages produced. It seems that in (off-topic: during my investigation, I discovered another bug btw: the same |
Just realized this is probably related to: #389
on #389 , a possible root cause in erlang was mentionned: https://github.com/erlang/otp/pull/2224/files |
Ideas on how to deal with this are welcome :). |
I created an issue in the OTP project: https://bugs.erlang.org/browse/ERL-1213 |
3868869
to
d7194fe
Compare
Switch to extra_applications to allow using kayrock in releases
Use OTP 21 for now
d7194fe
to
b97a62b
Compare
I'll leave the OTP 22 to another PR/issue. I don't think it should block this PR. |
f6167c1
to
b97a62b
Compare
Well, the CI passes. I suggest we review this and get it merged :) |
@jbruggem thanks for seeing this through, can you please update the description to include all the other things introduced in this PR, thanks! and probably make sure the new description is propagated to the commit message when this is merged. Thanks! |
👍 if I could approve my own PR I would 😂 |
Done, and will do ! |
I will merge today if no other remark is added. |
server.ex
to allow timeout failures to happen where they should