-
Notifications
You must be signed in to change notification settings - Fork 51
fix: macOS e2e local tests fails on M3 silicon processors #1767
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
Conversation
…init.sh` - add `cardano-node-chairman` to the `.gitignore` file - add `cardano-submit-api` to the `.gitignore` file - add `cardano-testnet` to the `.gitignore` file - add `cardano-topology` to the `.gitignore` file - add `cardano-tracer` to the `.gitignore` file - add `bech32` to the `.gitignore` file - add `locli` to the `.gitignore` file - add `tx-generator` to the `.gitignore` file - add various libraries to the `.gitignore` file - fix `cardano_node_version_release` assignment in `mkfiles-init.sh` - update the download and extraction process in `mkfiles-init.sh` - move the copy and remove process in `mkfiles-init.sh`
- update the script to extract cardano-cli & cardano-node with a fallback option if the initial extraction fails - update the copy command to include a fallback option to suppress potential errors
|
Hi @falcucci! Did you try running the E2E without specifying the version option for the cardano-node? The version On my local environment (MacOS M2), I'm running the E2E with this command without any issue: |
|
@dlachaume hey, it fails specifying any node version and even without it. the cardano-node version 8.7.3 is part of the e2e tests scenarios that we have ran currently in the CI steps as the same as
So it should also be replicable. Anyway this isn't a node-version issue specifically but the setup of the libraries itself. cargo run -p mithril-end-to-end -- -vvv --bin-directory target/release/ --devnet-scripts-directory=./mithril-test-lab/mithril-devnet --work-directory=/tmp/mithril_end_to_end
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.34s
Running `target/debug/mithril-end-to-end -vvv --bin-directory target/release/ --devnet-scripts-directory=./mithril-test-lab/mithril-devnet --work-directory=/tmp/mithril_end_to_end`
Jun 19 10:31:56.835 INFO Bootstrapping the Devnet, script: /Users/falcucci/txpipe/mithril/mithril-test-lab/mithril-devnet/devnet-mkfiles.sh
dyld[51555]: Library not loaded: @executable_path/libsodium.23.dylib
Referenced from: <no uuid> /private/tmp/mithril_end_to_end/devnet/cardano-cli
Reason: tried: '/private/tmp/mithril_end_to_end/devnet/libsodium.23.dylib' (no such file), '/usr/local/lib/libsodium.23.dylib' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')), '/usr/lib/libsodium.23.dylib' (no such file, not in dyld cache)
/Users/falcucci/txpipe/mithril/mithril-test-lab/mithril-devnet/mkfiles/mkfiles-cardano.sh: line 81: 51555 Abort trap: 6 $CARDANO_CLI byron genesis genesis --protocol-magic ${NETWORK_MAGIC} --start-time "${START_TIME}" --k ${SECURITY_PARAM} --n-poor-addresses 0 --n-delegate-addresses ${NUM_SPO_NODES} --total-balance ${INIT_SUPPLY} --delegate-share 1 --avvm-entry-count 0 --avvm-entry-balance 0 --protocol-parameters-file "${ARTIFACTS_DIR_TEMP}/byron.genesis.spec.json" --genesis-output-dir "${ARTIFACTS_DIR_TEMP}/byron-gen-command"
Jun 19 10:31:59.822 INFO Starting the Devnet, script: /private/tmp/mithril_end_to_end/devnet/start-cardano.sh
Error: Failed to start the devnet
Caused by:
No such file or directory (os error 2) |
|
Hi @falcucci ! There's one problem: when a CI fail for investigation we do an archive that include the artifact directory but exclude the binaries, but with your PR we would need to also exclude all the files that you added to the gitignore (cf. We should do as follow:
This is quite more works, are you up for that do you want us to handle it ? |
|
@Alenar that makes total sense, moving forward to an isolated I can handle it when I have some free time soon 🙂 |
- update the file `devnet-mkfiles.sh` to add `set -x` - update the `mkfiles-cardano.sh` file to change the environment variables for `cardano_bin_path`, `cardano_cli`, and `cardano_node` - modify the `mkfiles-init.sh` file to copy the `./bin` directory instead of individual files - edit the `mkfiles-mithril-delegation.sh` file to replace all occurrences of `./cardano-cli` with `$cardano_cli` - update the `mkfiles-mithril-era.sh` file to change all instances of `./cardano-cli` with `$cardano_cli` - modify the `mkfiles-mithril-payment.sh` file to replace all `./cardano-cli` occurrences with `$cardano_cli` - update the `mkfiles-pools.sh` file to replace the command `./cardano-cli` with `$cardano_cli` - update the `mkfiles-query.sh` file to replace all occurrences of `./cardano-cli` with `$cardano_cli` - edit the `mkfiles-start.sh` file to change all instances of `./cardano-cli` and `./cardano-node` with `$cardano_cli` and `$cardano_node` respectively. add `set -e` and `set -x` to the script.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM ! Just a few issue remaining 🚀 .
- remove obsolete entries from `.gitignore` - change the location where `cardano-cli` and `cardano-node` are extracted in `mkfiles-init.sh`
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- update the extraction command for cardano-cli & cardano-node - remove unnecessary commands to copy and remove the ./bin directory
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 👍
Thanks for the contribution @falcucci!
Can you bump the patch version of the devnet (VERSION file in the mithril-devnet folder) so that we can merge the PR?
- update the version in `version` from `0.3.8` to `0.3.9`
Some crucial dependencies were missing to make the cardano-cli and cardano-node to work as it should in a standalone environment.
after-all, this aims to bring more compatibility for a general local troubleshooting due to continuous errors the script has shown to start the nodes, as you can see as follows: