Skip to content
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

🌱 KubeadmControlPlane internal/proxy should use pointer structs #5161

Merged
merged 1 commit into from
Aug 27, 2021

Conversation

vincepri
Copy link
Member

Signed-off-by: Vince Prignano [email protected]

What this PR does / why we need it:

The net.Conn interface doesn't need a plain struct, it can work well
with pointers as well. To avoid copying structs around every time we
initiate a connection or call a method, convert the underlying Conn
struct in the proxy package to using pointer receiving methods.

This change also fixes an issue with read/writeDeadline, which was being
set in the local copy of the Conn struct before instead of the current
object, which created an ineffective assignment.

Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #

/assign @sbueringer @randomvariable @fabriziopandini

The net.Conn interface doesn't need a plain struct, it can work well
with pointers as well. To avoid copying structs around every time we
initiate a connection or call a method, convert the underlying Conn
struct in the proxy package to using pointer receiving methods.

This change also fixes an issue with read/writeDeadline, which was being
set in the local copy of the Conn struct before instead of the current
object, which created an ineffective assignment.

Signed-off-by: Vince Prignano <[email protected]>
@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label Aug 26, 2021
@k8s-ci-robot k8s-ci-robot added the size/S Denotes a PR that changes 10-29 lines, ignoring generated files. label Aug 26, 2021
Comment on lines 63 to 64
c.readDeadline = t
c.writeDeadline = t
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These assignments were ineffective before this change.

return NewAddrFromConn(c)
}

// SetDeadline sets the read and write deadlines to the specified interval.
func (c Conn) SetDeadline(t time.Time) error {
func (c *Conn) SetDeadline(t time.Time) error {
// TODO: Handle deadlines
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@randomvariable Can you clarify what needs to be done here?

@fabriziopandini
Copy link
Member

changes lgtm, but triggering all the E2E test to have a stronger signal on this change
/test pull-cluster-api-e2e-full-main

@vincepri
Copy link
Member Author

/test pull-cluster-api-e2e-full-main

Seems unrelated

@vincepri
Copy link
Member Author

/test ls

@k8s-ci-robot
Copy link
Contributor

@vincepri: The specified target(s) for /test were not found.
The following commands are available to trigger required jobs:

  • /test pull-cluster-api-build-main
  • /test pull-cluster-api-verify
  • /test pull-cluster-api-test-main
  • /test pull-cluster-api-test-main-mink8s
  • /test pull-cluster-api-e2e-main

The following commands are available to trigger optional jobs:

  • /test pull-cluster-api-make-main
  • /test pull-cluster-api-apidiff-main
  • /test pull-cluster-api-e2e-ipv6-main
  • /test pull-cluster-api-e2e-full-main
  • /test pull-cluster-api-e2e-workload-upgrade-1-22-latest-main

Use /test all to run the following jobs that were automatically triggered:

  • pull-cluster-api-build-main
  • pull-cluster-api-apidiff-main
  • pull-cluster-api-verify
  • pull-cluster-api-test-main
  • pull-cluster-api-test-main-mink8s
  • pull-cluster-api-e2e-main
  • pull-cluster-api-e2e-ipv6-main

In response to this:

/test ls

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@vincepri
Copy link
Member Author

/test pull-cluster-api-e2e-workload-upgrade-1-22-latest-main

@sbueringer
Copy link
Member

/lgtm
Let's try again
/test pull-cluster-api-e2e-workload-upgrade-1-22-latest-main
/test pull-cluster-api-e2e-full-main

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Aug 26, 2021
@sbueringer
Copy link
Member

sbueringer commented Aug 26, 2021

/test pull-cluster-api-e2e-full-main
Looks unrelated. I guess at that time of day the Prow clusters might be a bit more oversubscribed then usual (?) (periodics are not that flaky)

@fabriziopandini
Copy link
Member

I will try again tomorrow morning EU, hoping to have less flakes

@vincepri
Copy link
Member Author

/retest

1 similar comment
@vincepri
Copy link
Member Author

/retest

@vincepri
Copy link
Member Author

/retest

1 similar comment
@sbueringer
Copy link
Member

/retest

@sbueringer
Copy link
Member

sbueringer commented Aug 27, 2021

The problem is that CAPD panics, fix PR: #5167

panic: key is not a string: {"Namespace":"machine-pool-pwg8hm","Name":"machine-pool-7wtggx-dmp-0"}`

https://storage.googleapis.com/kubernetes-jenkins/pr-logs/pull/kubernetes-sigs_cluster-api/5161/pull-cluster-api-e2e-full-main/1431138770912022528/artifacts/clusters/bootstrap/controllers/capd-controller-manager/capd-controller-manager-6685cc9ff6-fvbq8/manager.log

I wasn't able to find out why this started to occur yesterday. I couldn't find any related changes.

@fabriziopandini
Copy link
Member

#5167 just merged
/retest

@fabriziopandini
Copy link
Member

All the test passed
/lgtm
/approve

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: fabriziopandini

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Aug 27, 2021
@fabriziopandini
Copy link
Member

/retest

@k8s-ci-robot k8s-ci-robot merged commit ad2d972 into kubernetes-sigs:master Aug 27, 2021
@k8s-ci-robot k8s-ci-robot added this to the v0.4 milestone Aug 27, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. lgtm "Looks good to me", indicates that a PR is ready to be merged. size/S Denotes a PR that changes 10-29 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants