-
Notifications
You must be signed in to change notification settings - Fork 76
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
[WIP] Add e2e ci for kubernetes with kind. #403
Conversation
99542cb
to
dc59d3d
Compare
I think it have some problem on the Xline side and need to fix. |
/cc @bsbds @Phoenix500526 |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #403 +/- ##
===========================================
+ Coverage 53.38% 78.95% +25.56%
===========================================
Files 96 154 +58
Lines 14853 21259 +6406
Branches 14853 0 -14853
===========================================
+ Hits 7930 16786 +8856
+ Misses 6427 4473 -1954
+ Partials 496 0 -496 ☔ View full report in Codecov by Sentry. |
Thank you for your contribution. Please add a sign-off in the commit message and modify It to comply with the conventional commit format. For your information: Xline commit message guidelines |
I will rebase it when this pr is ready for review.
It's need the Xline maintainer to help check ,Thanks. It's easy to reproduce it, just replace etcd with xline and work with kubernetes. This PR can help to reproduce it. |
Seems like it's related: let me check it. |
4ae6b87
to
5695557
Compare
It's always successed if i disabled xline debug log. https://github.com/liangyuanpeng/Xline/actions/workflows/kube.yml |
How about adding a script to display the debug log of xline within the container? You could consider adding a simple test in the CI that sends a basic request to xline and check the outputs. This might help us in analyzing any potential issues related to xline. |
Absolutely. I just cut the log here, seems like the xline server have some problem. FYI grep 2023-08-08T08:01:16.533848Z DEBUG curp::server::cmd_worker::conflict_checked_mpmc: new ce event: ASReady(ProposeId("node1-657da3b8-0442-495a-b674-74a4390bfc2d"), 486)
2023-08-08T08:01:16.949130Z DEBUG curp::server::cmd_worker::conflict_checked_mpmc: new ce event: SpecExeReady(ProposeId("node1-1a24f9fa-e910-4a97-b7d1-eafad8928c32"), 487)
2023-08-08T08:01:16.949162Z DEBUG curp::server::cmd_worker::conflict_checked_mpmc: new ce event: ASReady(ProposeId("node1-1a24f9fa-e910-4a97-b7d1-eafad8928c32"), 487)
2023-08-08T08:01:18.964632Z DEBUG curp::server::cmd_worker::conflict_checked_mpmc: new ce event: SpecExeReady(ProposeId("node1-89e0ca86-814f-48f5-ba02-89a411b2f1c3"), 488)
2023-08-08T08:01:18.964658Z DEBUG curp::server::cmd_worker::conflict_checked_mpmc: new ce event: ASReady(ProposeId("node1-89e0ca86-814f-48f5-ba02-89a411b2f1c3"), 488)
2023-08-08T08:01:20.500827Z DEBUG curp::server::cmd_worker::conflict_checked_mpmc: new ce event: SpecExeReady(ProposeId("node1-10d77a7b-f4f2-4a19-958d-bcdb6fc0e683"), 489)
2023-08-08T08:01:20.500879Z DEBUG curp::server::cmd_worker::conflict_checked_mpmc: new ce event: ASReady(ProposeId("node1-10d77a7b-f4f2-4a19-958d-bcdb6fc0e683"), 489)
2023-08-08T08:01:20.592684Z DEBUG curp::server::cmd_worker::conflict_checked_mpmc: new ce event: SpecExeReady(ProposeId("node1-6b5111f6-628c-4cb1-b56c-12c59afd41e7"), 490)
2023-08-08T08:01:20.592766Z DEBUG curp::server::cmd_worker::conflict_checked_mpmc: new ce event: ASReady(ProposeId("node1-6b5111f6-628c-4cb1-b56c-12c59afd41e7"), 490)
2023-08-08T08:01:20.978428Z DEBUG curp::server::cmd_worker::conflict_checked_mpmc: new ce event: SpecExeReady(ProposeId("node1-0d4ea7a2-fb5c-4818-b797-1db8b7774564"), 491)
2023-08-08T08:01:20.978449Z DEBUG curp::server::cmd_worker::conflict_checked_mpmc: new ce event: ASReady(ProposeId("node1-0d4ea7a2-fb5c-4818-b797-1db8b7774564"), 491)
2023-08-08T08:01:22.992134Z DEBUG curp::server::cmd_worker::conflict_checked_mpmc: new ce event: SpecExeReady(ProposeId("node1-bb7c75ac-e5bc-4d77-87eb-dd213dc86340"), 492)
2023-08-08T08:01:22.992162Z DEBUG curp::server::cmd_worker::conflict_checked_mpmc: new ce event: ASReady(ProposeId("node1-bb7c75ac-e5bc-4d77-87eb-dd213dc86340"), 492)
2023-08-08T08:01:24.247018Z DEBUG curp::server::cmd_worker::conflict_checked_mpmc: new ce event: SpecExeReady(ProposeId("node1-7ef08fbe-ac08-4fb2-b1e6-7f5135aad687"), 493)
2023-08-08T08:01:24.247057Z DEBUG curp::server::cmd_worker::conflict_checked_mpmc: new ce event: ASReady(ProposeId("node1-7ef08fbe-ac08-4fb2-b1e6-7f5135aad687"), 493)
2023-08-08T08:01:25.006454Z DEBUG curp::server::cmd_worker::conflict_checked_mpmc: new ce event: SpecExeReady(ProposeId("node1-c3c6aa14-c3e3-41c5-95e1-43181ade0704"), 494)
2023-08-08T08:01:25.006476Z DEBUG curp::server::cmd_worker::conflict_checked_mpmc: new ce event: ASReady(ProposeId("node1-c3c6aa14-c3e3-41c5-95e1-43181ade0704"), 494)
2023-08-08T08:01:27.019814Z DEBUG curp::server::cmd_worker::conflict_checked_mpmc: new ce event: SpecExeReady(ProposeId("node1-58be4d25-ae1d-4a5c-bc9e-81472bc3baab"), 495)
2023-08-08T08:01:27.019862Z DEBUG curp::server::cmd_worker::conflict_checked_mpmc: new ce event: ASReady(ProposeId("node1-58be4d25-ae1d-4a5c-bc9e-81472bc3baab"), 495) grep ror(Body, Error { kind: Io(Custom { kind: BrokenPipe, error: "stream closed because of a broken pipe" }) })) }
2023-08-08T08:01:27.829271Z DEBUG tonic::codec::decode: decoder inner stream error: Status { code: Unknown, message: "h2 protocol error: error reading a body from connection: stream closed because of a broken pipe", source: Some(hyper::Error(Body, Error { kind: Io(Custom { kind: BrokenPipe, error: "stream closed because of a broken pipe" }) })) }
2023-08-08T08:01:27.829287Z WARN xline::server::watch_server: Receive WatchRequest error Status { code: Unknown, message: "h2 protocol error: error reading a body from connection: stream closed because of a broken pipe", source: Some(hyper::Error(Body, Error { kind: Io(Custom { kind: BrokenPipe, error: "stream closed because of a broken pipe" }) })) }
2023-08-08T08:01:27.829395Z DEBUG tonic::codec::decode: decoder inner stream error: Status { code: Unknown, message: "h2 protocol error: error reading a body from connection: stream closed because of a broken pipe", source: Some(hyper::Error(Body, Error { kind: Io(Custom { kind: BrokenPipe, error: "stream closed because of a broken pipe" }) })) }
2023-08-08T08:01:27.829415Z WARN xline::server::watch_server: Receive WatchRequest error Status { code: Unknown, message: "h2 protocol error: error reading a body from connection: stream closed because of a broken pipe", source: Some(hyper::Error(Body, Error { kind: Io(Custom { kind: BrokenPipe, error: "stream closed because of a broken pipe" }) })) }
2023-08-08T08:01:27.829498Z DEBUG tonic::codec::decode: decoder inner stream error: Status { code: Unknown, message: "h2 protocol error: error reading a body from connection: stream closed because of a broken pipe", source: Some(hyper::Error(Body, Error { kind: Io(Custom { kind: BrokenPipe, error: "stream closed because of a broken pipe" }) })) }
2023-08-08T08:01:27.829519Z WARN xline::server::watch_server: Receive WatchRequest error Status { code: Unknown, message: "h2 protocol error: error reading a body from connection: stream closed because of a broken pipe", source: Some(hyper::Error(Body, Error { kind: Io(Custom { kind: BrokenPipe, error: "stream closed because of a broken pipe" }) })) }
2023-08-08T08:01:27.829540Z DEBUG hyper::proto::h2::server: stream error: error writing a body to connection: send stream capacity unexpectedly closed
2023-08-08T08:01:27.829557Z DEBUG hyper::proto::h2::server: stream error: error writing a body to connection: send stream capacity unexpectedly closed
2023-08-08T08:01:27.829566Z DEBUG hyper::proto::h2::server: stream error: error writing a body to connection: send stream capacity unexpectedly closed
2023-08-08T08:01:27.829573Z DEBUG hyper::proto::h2::server: stream error: error writing a body to connection: send stream capacity unexpectedly closed
2023-08-08T08:01:27.829580Z DEBUG hyper::proto::h2::server: stream error: error writing a body to connection: send stream capacity unexpectedly closed
2023-08-08T08:01:27.829650Z DEBUG tonic::codec::decode: decoder inner stream error: Status { code: Unknown, message: "h2 protocol error: error reading a body from connection: stream closed because of a broken pipe", source: Some(hyper::Error(Body, Error { kind: Io(Custom { kind: BrokenPipe, error: "stream closed because of a broken pipe" }) })) }
2023-08-08T08:01:27.829668Z WARN xline::server::watch_server: Receive WatchRequest error Status { code: Unknown, message: "h2 protocol error: error reading a body from connection: stream closed because of a broken pipe", source: Some(hyper::Error(Body, Error { kind: Io(Custom { kind: BrokenPipe, error: "stream closed because of a broken pipe" }) })) }
2023-08-08T08:01:27.829688Z DEBUG hyper::proto::h2::server: stream error: error writing a body to connection: send stream capacity unexpectedly closed
2023-08-08T08:01:27.829703Z DEBUG hyper::proto::h2::server: stream error: error writing a body to connection: send stream capacity unexpectedly closed
2023-08-08T08:01:27.829718Z DEBUG hyper::proto::h2::server: stream error: error writing a body to connection: send stream capacity unexpectedly closed
2023-08-08T08:01:27.829730Z DEBUG hyper::proto::h2::server: stream error: error writing a body to connection: send stream capacity unexpectedly closed
2023-08-08T08:01:27.829816Z DEBUG tonic::codec::decode: decoder inner stream error: Status { code: Unknown, message: "h2 protocol error: error reading a body from connection: stream closed because of a broken pipe", source: Some(hyper::Error(Body, Error { kind: Io(Custom { kind: BrokenPipe, error: "stream closed because of a broken pipe" }) })) }
2023-08-08T08:01:27.829837Z WARN xline::server::watch_server: Receive WatchRequest error Status { code: Unknown, message: "h2 protocol error: error reading a body from connection: stream closed because of a broken pipe", source: Some(hyper::Error(Body, Error { kind: Io(Custom { kind: BrokenPipe, error: "stream closed because of a broken pipe" }) })) }
2023-08-08T08:01:27.829858Z DEBUG hyper::proto::h2::server: stream error: error writing a body to connection: send stream capacity unexpectedly closed
2023-08-08T08:01:27.829873Z DEBUG hyper::proto::h2::server: stream error: error writing a body to connection: send stream capacity unexpectedly closed
2023-08-08T08:01:27.829886Z DEBUG hyper::proto::h2::server: stream error: error writing a body to connection: send stream capacity unexpectedly closed
2023-08-08T08:01:27.829898Z DEBUG hyper::proto::h2::server: stream error: error writing a body to connection: send stream capacity unexpectedly closed
2023-08-08T08:01:27.829912Z DEBUG hyper::proto::h2::server: stream error: error writing a body to connection: send stream capacity unexpectedly closed
2023-08-08T08:01:27.829924Z DEBUG hyper::proto::h2::server: stream error: error writing a body to connection: send stream capacity unexpectedly closed
2023-08-08T08:01:27.829988Z WARN xline::server::watch_server: Receive WatchRequest error Status { code: Unknown, message: "h2 protocol error: error reading a body from connection: stream closed because of a broken pipe", source: Some(hyper::Error(Body, Error { kind: Io(Custom { kind: BrokenPipe, error: "stream closed because of a broken pipe" }) })) }
2023-08-08T08:01:27.830058Z WARN xline::server::watch_server: Receive WatchRequest error Status { code: Unknown, message: "h2 protocol error: error reading a body from connection: stream closed because of a broken pipe", source: Some(hyper::Error(Body, Error { kind: Io(Custom { kind: BrokenPipe, error: "stream closed because of a broken pipe" }) })) }
2023-08-08T08:01:27.829293Z WARN xline::server::watch_server: Receive WatchRequest error Status { code: Unknown, message: "h2 protocol error: error reading a body from connection: stream closed because of a broken pipe", source: Some(hyper::Error(Body, Error { kind: Io(Custom { kind: BrokenPipe, error: "stream closed because of a broken pipe" }) })) } The log generate from This issue #402 also have some error, but is not same with here. Maybe we can run ci with no debug log first. |
f0dd641
to
2ce2ef5
Compare
72934cb
to
0c9b510
Compare
Signed-off-by: Lan Liang <[email protected]>
52248b3
to
ecdc88d
Compare
Waiting for #678 is merged, and then we can go ahead. |
Releated: #677 |
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.
Please remove trailing spaces and squash these commits.
du -h --max-depth=1 /xline/kind | ||
ls -allh /xline/kind/containers | ||
- name: upload kind logs | ||
if: always() |
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 uploading detailed logs when deployment failed is a better choice.
Create a clean PR #696 to work for it, closing.. |
what problem are you trying to solve? (or if there's no problem, what's the motivation for this change?)
Make sure xline can work with kubernetes, so add e2e ci for kubernetes.
what changes does this pull request make?
add e2e ci for kubernetes.
Now, it's sometimes fail, sometimes success.
successed: https://github.com/liangyuanpeng/Xline/actions/runs/5688707901
failed: https://github.com/liangyuanpeng/Xline/actions/runs/5688679640/job/15418920092