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

fixed 'bad access: nil dereference' when calling Error() method if it… #577

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

henng
Copy link

@henng henng commented Oct 12, 2019

SEE #576

@codecov
Copy link

codecov bot commented Oct 12, 2019

Codecov Report

Merging #577 into master will decrease coverage by 0.01%.
The diff coverage is 50%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #577      +/-   ##
==========================================
- Coverage   71.82%   71.81%   -0.02%     
==========================================
  Files          32       32              
  Lines        7834     7838       +4     
==========================================
+ Hits         5627     5629       +2     
- Misses       1676     1677       +1     
- Partials      531      532       +1
Impacted Files Coverage Δ
terror/terror.go 73.43% <50%> (-0.76%) ⬇️
ast/functions.go 76.74% <0%> (ø) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update cbfc40a...4a34588. Read the comment docs.

@zz-jason zz-jason requested a review from a team October 16, 2019 12:58
@@ -213,10 +214,16 @@ func (e *Error) Location() (file string, line int) {

// Error implements error interface.
func (e *Error) Error() string {
if reflect2.IsNil(e) {
Copy link
Contributor

Choose a reason for hiding this comment

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

why e == nil is not enough? *Error is a concrete type unlike interface{}.

Copy link
Author

Choose a reason for hiding this comment

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

you are right, e == nil is better.

return fmt.Sprintf("[%s:%d]%s", e.class, e.code, e.getMsg())
}

func (e *Error) getMsg() string {
if reflect2.IsNil(e) {
Copy link
Contributor

Choose a reason for hiding this comment

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

(ditto)

@jyno12
Copy link

jyno12 commented Mar 19, 2021

这个现在有啥别的修改?model/ddl中的job也遇到这个问题。

import (
	"github.com/pingcap/parser/model"
	"testing"
)

func TestJob(t *testing.T) {
	j:=model.Job{}
	t.Logf("%v",j)
}

由于job中的error为nil也是这个问题。

@tiancaiamao
Copy link
Collaborator

Ping @henng ?

@ti-chi-bot
Copy link
Member

@henng: PR needs rebase.

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants