-
Notifications
You must be signed in to change notification settings - Fork 515
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
bootstrap escript: exception error: no match of right hand side value error #2422
Comments
Trying with 3.14.1
|
please The find_deps_of_deps call failing in the first snippet is weirder and there isn't a lot to go on there. If you can try running the whole thing again with DEBUG=1 or DIAGNOSTIC=1 to in hopes of generating a bit more output for us to debug this. |
Right, forgot to do that, will retry on HEAD. |
DEBUG: debug1.txt /LE: forgot to rm _build before DIAGNOSTIC, will redo |
DIAGNOSTIC: diagnostic.txt |
From the diagnostics log:
it seems like the Dialyzer application is not built in your base Erlang install, and that is what crashes the build at this point. Rebar3 tries to analyze it to know if it actually needs including, but since it can't find it anywhere it can't figure out if it's part of the basic distribution and therefore errors out because it can't add it to the escript archive. The solution would be to have a basic erlang install that comes with Dialyzer for rebar3 to build with dialyzer support. If you want to work around that, downloading one of the pre-built images would likely work fine as long as you don't call |
I'd think the first solution would be for the bootstrap script to check, fail and output an error (or warning) if one of its dependencies is missing, at start. Not sure what "a basic erlang install" is exactly, but |
OS packages are always stripping away libraries that most Erlang users expect to be part of the standard distribution. We check for the commonly dropped ones (like We could arguably make a nicer check, but Linux packagers keep stripping different stuff at different time and we never really trust them. I still recall the times when Debian took a beta release of Erlang and stuck it for long term support and things haven't improved that greatly since then. |
Ok, that did it, once |
Seeing this again on 26d929b with some random dep on armv6
|
Yeah that commit is unrelated. The bootstrap script connecting there is talking to hex.pm and about certificate checks having issues. This may depend on the OTP version you're using if you want further assistance, because behaviour changes across releases. |
This is Raspbian Bullseye so Erlang 23.2.6 |
Hm, I know we had issues with release candidates of 23. I just personally tested (on an intel linux) with 23.1 after having deleted my whole hex cache and local deps and it built fine as well. Looking at the tag for the version and the specific error: {internal_error,
"TLS client: In state certify at ssl_handshake.erl:372 generated CLIENT ALERT: Fatal - Internal Error\n {unexpected_error,undef}"}}}]}} at least lets me find: This code is strictly related to validating the certificate chain, and the If you open an erlang shell, what do you get trying to run the following command? 1> application:ensure_all_started(public_key).
{ok,[asn1,crypto,public_key]} My guess is that the build you have is possibly missing cryptographic dependencies. Those are either due to libraries missing wholesale (e.g. |
As past comments here, I might have some missing deps, but this built fine on HEAD available on Nov 04. Output:
|
The following pull requests were merged since November 1:
None of them should strictly have an impact on the bootstrap process; This is why I'm thinking this is something external, especially with the error taking place in code that's shipped with OTP, though we do inject options for proxies. |
I'll try to go back and bisect if needed. |
git bisect says...drum roll...
|
that might just be because it finally needs to fetch a new version of the package (which actually exists) and highlights the underlying SSL issue. Otherwise, older builds keep fetching from the local disk cache. |
Right, which local folder should I delete? |
that would be ~/.cache/rebar3/hex/ by default. |
Yup, cache nuked, no more compiles. What now? |
Now the question is to figure out which part of your installation is messed up such that it won't validate TLS certs, fix that, and find a way that we could warn for it as well. I can't reproduce here, my install seems to work entirely fine and I'm betting this is environment specific. |
I did update to Bullseye at one point (before this moustache bump), so maybe erlang-* deps might be different now. |
Same issue on RPi3 arm64 Debian Bullseye
...note the changed HEX_CDN just in case :( |
RPi3+ builds fine today, odd. |
I'm wondering if there could be something specific about the certificate chain that was provided and the ciphersuites locally available over time. Hard to say for sure, but that sort of external change could explain the behaviour. |
Now errors out again on RPi3 at 81645a4
As expected at fault is 01fa0c9 :) /LE: removing cache/rebar3 we're back at square one.... /LE2: DEBUG message
|
@tsloughter #2691 (comment) sounds like the same error? What was the fix? Hope not build from source :( |
Yeah I mean we aren't changing anything. At this point there's work pending to just vendor dependencies, I figure this will solve your problems, but this isn't easily reproducible in other contexts. |
The odd thing is, you could say "your distro has a broken package" but then later it (last build was Jan 04) worked (no updates in the erlang packages afaik) then today doesn't work again. :( |
Yeah. I mean part of me wonders if this is somewhat related to certificate chains or just mismatches between erlang versions as used and what's in the cache, but that alone is also really hard to figure out and wouldn't necessarily be so hard to reproduce. |
Today was a good day:
I'd conclude it's not my system at fault :) |
yeah that makes me wonder if there's something weird with the things returned over the network. I can't imagine that we'd generate random .beam files either. |
HEAD (5e22387)
Environment
Debian Buster, armv6, RPi1B 256Mb, Erlang/OTP 21 Erts 10.2.4
The text was updated successfully, but these errors were encountered: