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

ufuzz failures #3518

Closed
alexlamsl opened this issue Oct 22, 2019 · 10 comments
Closed

ufuzz failures #3518

alexlamsl opened this issue Oct 22, 2019 · 10 comments

Comments

@alexlamsl
Copy link
Collaborator Author

Never mind, I think I know why 😅

@alexlamsl alexlamsl changed the title ufuzz failures (Node.js 13) ufuzz failures Oct 22, 2019
@kzc
Copy link
Contributor

kzc commented Oct 22, 2019

How long have you been fuzzing with pure_getters? I thought there was a reason we didn't use it at the time.

Suspicious compress options:

  pure_getters

@kzc
Copy link
Contributor

kzc commented Oct 22, 2019

What did the problem turn out to be?

@alexlamsl
Copy link
Collaborator Author

How long have you been fuzzing with pure_getters?

It's in the defaults for a very long time now, so I'd consider it to be stable.

What did the problem turn out to be?

It was me merging two separate fixes, the result of which leads to an avalanche of fuzzing failures 😞

@alexlamsl
Copy link
Collaborator Author

ufuzz on GitHub Actions manages to uncover older bugs that goes back to 3.3.0 so far, which have been keeping me busy.

@kzc
Copy link
Contributor

kzc commented Oct 22, 2019

Any idea why ufuzz on TravisCI and Github Actions behaves differently? Just by virtue of being faster it uncovers more bugs on Actions? Or do newer versions of Node have a better RNG?

@alexlamsl
Copy link
Collaborator Author

alexlamsl commented Oct 23, 2019

Even with its current configuration of using only 40% of available execution resources, running ufuzz on GitHub Actions is 3~4x faster than on Travis CI.

And without using all the parallel job slots, we can now have it perpetually running in the background without blocking CI runs from PRs and pushes, so we are talking about at least an order of magnitude more fuzzing than before.

@alexlamsl
Copy link
Collaborator Author

And now Node.js 13.0.1 is available... -ish

https://travis-ci.org/alexlamsl/UglifyJS2/builds/601828314#L151-L156

$ nvs --version
Downloading bootstrap node from https://nodejs.org/dist/v10.12.0/node-v10.12.0-linux-x64.tar.xz
curl: (56) GnuTLS recv error (-110): The TLS connection was non-properly terminated.

/home/travis/.nvs/nvs.sh: line 123:  3330 Segmentation fault      /home/travis/.nvs/cache/node /home/travis/.nvs/lib/index.js --version

https://travis-ci.org/alexlamsl/UglifyJS2/builds/601819544#L155-L156

$ nvs add node/$NODE
[######################################################-]  99% 2.0s
SHASUM256 does not match for cached file: node-v13.0.1-linux-x64.tar.xz

@kzc
Copy link
Contributor

kzc commented Oct 23, 2019

Node 13 probably won't be stable for several months.

Regarding pure_getters, I keep forgetting about the non-boolean option (strict) that is the default:

         pure_getters    : !false_by_default && "strict",

I vaguely recall that pure_getters=true was problematic in fuzzing due to getter and setter generation.

@alexlamsl
Copy link
Collaborator Author

alexlamsl commented Oct 23, 2019

Yes, pure_getters=true is unsafe, just as keep_fargs=true (hint: they both have a strict option 👻)

As for Node.js, their download server is basically down and out as per nodejs/build#1993

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

No branches or pull requests

2 participants