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

Remove incorrect zero value check #230

Merged
merged 1 commit into from
Mar 5, 2021

Conversation

liggitt
Copy link
Member

@liggitt liggitt commented Mar 4, 2021

This check never returned true prior to go1.16, because using DeepEqual on reflect.Value
return values checks their internal fields, and reflect.Zero included a unique unsafe pointer.

In go1.16, reflect.Zero started returning shared zero values, and this check started returning true.

However, requiring nullable on zero values is not correct. A zero value string "" should be valid even
if the schema does not allow the field to be null.

xref go-openapi/validate#138 and golang/go#43993 (comment)

/cc @sttts @apelisse

This check never returned true prior to go1.16, because using DeepEqual on reflect.Value
return values checks their internal fields, and reflect.Zero included a unique unsafe pointer.

In go1.16, reflect.Zero started returning shared zero values, and this check started returning true.

However, requiring nullable on zero values is not correct. A zero value string "" should be valid even
if the schema does not allow the field to be null.
@k8s-ci-robot k8s-ci-robot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. approved Indicates a PR has been approved by an approver from all required OWNERS files. size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. labels Mar 4, 2021
@liggitt
Copy link
Member Author

liggitt commented Mar 4, 2021

cc @BenTheElder @deads2k

@BenTheElder
Copy link
Member

/lgtm
CI is unhappy about go.sum though

@k8s-ci-robot k8s-ci-robot added lgtm "Looks good to me", indicates that a PR is ready to be merged. and removed approved Indicates a PR has been approved by an approver from all required OWNERS files. labels Mar 4, 2021
@k8s-ci-robot k8s-ci-robot removed the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Mar 4, 2021
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: liggitt

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 Mar 4, 2021
@BenTheElder
Copy link
Member

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Mar 4, 2021
@k8s-ci-robot k8s-ci-robot merged commit 591a79e into kubernetes:master Mar 5, 2021
@deads2k
Copy link
Contributor

deads2k commented Mar 5, 2021

reasoning looks sound to me.

@liggitt liggitt deleted the deepequal-value branch August 16, 2021 14:04
xiaods added a commit to xiaods/k8e that referenced this pull request Oct 14, 2021
Remove incorrect zero value check
kubernetes/kube-openapi#230

spec.bpfLogLevel in body must be of type string: "null"

only go1.15 can handle it.

Signed-off-by: Deshi Xiao <xiaods@gmail.com>
@xiaods xiaods mentioned this pull request Oct 14, 2021
LukeShu pushed a commit to emissary-ingress/emissary that referenced this pull request Jan 20, 2022
This turned out to be an upstream bug in k8s.io/kube-openapi.  Upgrading
that package fixes the bug.

kubernetes/kube-openapi#230

Signed-off-by: Flynn <flynn@datawire.io>
Signed-off-by: Luke Shumaker <lukeshu@datawire.io>
kflynn pushed a commit to emissary-ingress/emissary that referenced this pull request Jan 20, 2022
This turned out to be an upstream bug in k8s.io/kube-openapi.  Upgrading
that package fixes the bug.

kubernetes/kube-openapi#230

Signed-off-by: Flynn <flynn@datawire.io>
Signed-off-by: Luke Shumaker <lukeshu@datawire.io>
kflynn pushed a commit to emissary-ingress/emissary that referenced this pull request Jan 20, 2022
This turned out to be an upstream bug in k8s.io/kube-openapi.  Upgrading
that package fixes the bug.

kubernetes/kube-openapi#230

Signed-off-by: Flynn <flynn@datawire.io>
Signed-off-by: Luke Shumaker <lukeshu@datawire.io>
kflynn pushed a commit to emissary-ingress/emissary that referenced this pull request Jan 20, 2022
This turned out to be an upstream bug in k8s.io/kube-openapi.  Upgrading
that package fixes the bug.

kubernetes/kube-openapi#230

Signed-off-by: Flynn <flynn@datawire.io>
Signed-off-by: Luke Shumaker <lukeshu@datawire.io>
kflynn pushed a commit to emissary-ingress/emissary that referenced this pull request Jan 21, 2022
This turned out to be an upstream bug in k8s.io/kube-openapi.  Upgrading
that package fixes the bug.

kubernetes/kube-openapi#230

Signed-off-by: Flynn <flynn@datawire.io>
Signed-off-by: Luke Shumaker <lukeshu@datawire.io>
kflynn pushed a commit to emissary-ingress/emissary that referenced this pull request Jan 21, 2022
This turned out to be an upstream bug in k8s.io/kube-openapi.  Upgrading
that package fixes the bug.

kubernetes/kube-openapi#230

Signed-off-by: Flynn <flynn@datawire.io>
Signed-off-by: Luke Shumaker <lukeshu@datawire.io>
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/XS Denotes a PR that changes 0-9 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants