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

Checksum mismatch in solc-bin #9261

Closed
frangio opened this issue Jun 25, 2020 · 7 comments
Closed

Checksum mismatch in solc-bin #9261

frangio opened this issue Jun 25, 2020 · 7 comments
Assignees

Comments

@frangio
Copy link
Contributor

frangio commented Jun 25, 2020

The last commit ethereum/solc-bin@331d998 modified the bin file for the 0.6.10 release but did not modify the checksum, resulting in a mismatch.

Any tool that validates the compiler against the checksum will fail so I think this should be fixed ASAP, especially given the version affected is the latest release.

@payvint
Copy link

payvint commented Jun 26, 2020

Totally The same!! Please fix this as soon as possible!

@DimaStebaev
Copy link

It blocks development!
Please update binaries.

@chriseth
Copy link
Contributor

Sorry about that, it seems to have been a rogue script. Can you please check if it is fixed?

@payvint
Copy link

payvint commented Jun 26, 2020

Thank you @chriseth very much, looks like it is fixed!!

@chriseth
Copy link
Contributor

Actually reopening since the root cause is not fixed yet.

@cameel
Copy link
Member

cameel commented Jun 26, 2020

The damaged files (soljson-v0.6.10+commit.00c0fcaf.js and soljson-latest.js) are actually truncated. I don't see anything in the scripts that would intentionally update an older release/nightly binary. Every run either adds a single new binary or exits. The only way it could happen is if they were damaged while being copied and then git commit -a picked up the unintended changes and included them in the commit.

As to how they got damaged - there are several suspects:

  • git clone or git checkout - though git is pretty reliable so I doubt it would cleanly exit on error
  • cp - same here
  • the update script written in JS

What's interesting is that soljson-v0.6.10+commit.00c0fcaf.js and soljson-latest.js (which are supposed to have the same content in that commit) are truncated at different points. soljson-latest.js is significantly shorter (19672 kB vs 20624 kB; both should be 20683 kB instead). In the update script I see that it always rewrites soljson-latest.js (even if there was no new release) so it could happen at that point. But this does not explain why soljson-v0.6.10+commit.00c0fcaf.js is shorter too. The script does not touch it. It looks as if both files were truncated independently but this seems unlikely to me.

This also looks a bit as if one of the operations was being performed asynchronously and did not finish before another. This could be the case with the update script but I don't see anything asynchronous in publish_binary.sh.

@cameel
Copy link
Member

cameel commented Jul 23, 2020

We can close this now. The cause of the truncation has been identified and fixed (ethereum/solc-bin#32). We have also just finished migrating the nightly builds from Travis to Github Actions and they're enabled again (ethereum/solc-bin#30). The new script makes sure that no unexpected files (e.g. old releases) have been modified before pushing the nightly.

@cameel cameel closed this as completed Jul 23, 2020
@cameel cameel added the solcbin label Jan 25, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants