Node crash at start ( Windows )
Hello I`m trying to run node on WIndows 10 and Docker. When i start node with "docker run --name witnet_node -p 21337 witnet/witnet-rust" command, node crashed and get into restart loop with following messege:
"[IP_DETECTOR] Using configuration from '/.witnet/config/witnet.toml'
[IP_DETECTOR] Reading 'public_addr' from config file
./runner.sh: line 57: 239 Illegal instruction RUST_LOG=witnet=$LOG_LEVEL /tmp/witnet-raw -c /.witnet/config/witnet.toml "$@""
How to fix this? Thank you
Hi, illegal instruction usually means that you are running a binary compiled for a different architecture. In the logs you should see a line like:
"Downloading 'witnet-x86_64-pc-windows-msvc.tar.gz'. It may take a few seconds..."
This means that the binary only supports 64-bit windows, are you running 32-bit or 64-bit windows?
I am running 64-bit Windows : Win10 Pro Version 2004 OS Build 19041.572
May I ask on which piece of hardware are you running it?
Looks like some incompatible architecture, or lack of access to some low level system API.
I've seen some similar errors on Raspberry Pis, and the solution was adding --privileged right after docker run.
Its desktop with Phenom II 955, 8GB ram and 120gb ssd.
I tried with : "docker run --privileged --name witnet_node -p 21337 witnet/witnet-rust" but with no luck.
Since you are using a slightly old CPU, it is possible that the compiled witnet binary uses some instructions that are not supported by your CPU, for example AVX or AES extensions. I don't know how to force the compiler to not use this instructions, but if you can compile witnet on your machine it should work, because it will detect that it is not supported and not use that.
Thx for reply.
I also tried with Rust but i get this msg :
"
Compiling libloading v0.5.2
error: failed to run custom build command for openssl-sys v0.9.53
Caused by:
process didn't exit successfully: C:\witnet\target\debug\build\openssl-sys-dbffd2ba89aea488\build-script-main (exit code: 101)
--- stdout
cargo:rustc-cfg=const_fn
cargo:rerun-if-env-changed=X86_64_PC_WINDOWS_MSVC_OPENSSL_LIB_DIR
X86_64_PC_WINDOWS_MSVC_OPENSSL_LIB_DIR unset
cargo:rerun-if-env-changed=OPENSSL_LIB_DIR
OPENSSL_LIB_DIR unset
cargo:rerun-if-env-changed=X86_64_PC_WINDOWS_MSVC_OPENSSL_INCLUDE_DIR
X86_64_PC_WINDOWS_MSVC_OPENSSL_INCLUDE_DIR unset
cargo:rerun-if-env-changed=OPENSSL_INCLUDE_DIR
OPENSSL_INCLUDE_DIR unset
cargo:rerun-if-env-changed=X86_64_PC_WINDOWS_MSVC_OPENSSL_DIR
X86_64_PC_WINDOWS_MSVC_OPENSSL_DIR unset
cargo:rerun-if-env-changed=OPENSSL_DIR
OPENSSL_DIR unset
note: vcpkg did not find openssl as libcrypto and libssl: Could not find Vcpkg tree: No vcpkg.user.targets found. Set the VCPKG_ROOT environment variable or run 'vcpkg integrate install'
note: vcpkg did not find openssl as ssleay32 and libeay32: Could not find Vcpkg tree: No vcpkg.user.targets found. Set the VCPKG_ROOT environment variable or run 'vcpkg integrate install'
--- stderr thread 'main' panicked at '
Could not find directory of OpenSSL installation, and this -sys crate cannot
proceed without this knowledge. If OpenSSL is installed and this crate had
trouble finding it, you can set the OPENSSL_DIR environment variable for the
compilation process.
Make sure you also have the development packages of openssl installed.
For example, libssl-dev on Ubuntu or openssl-devel on Fedora.
If you're in a situation where you think the directory should be found automatically, please open a bug at https://github.com/sfackler/rust-openssl and include information about your system as well as this message.
$HOST = x86_64-pc-windows-msvc $TARGET = x86_64-pc-windows-msvc openssl-sys = 0.9.53
It looks like you're compiling for MSVC but we couldn't detect an OpenSSL installation. If there isn't one installed then you can try the rust-openssl README for more information about how to download precompiled binaries of OpenSSL:
https://github.com/sfackler/rust-openssl#windows
', C:\Users\gavra.cargo\registry\src\github.com-1ecc6299db9ec823\openssl-sys-0.9.53\build\find_normal.rs:150:5
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
error: build failed
Maybe you`r right mr. tmpolaczyk, maybe i cant run this due to old cpu, maybe my windows cause problems, i dont know.
I`m not tech guy, so any compiling, programing etc is beyond my skills. I cant run node so i will quit. Thx anyway and good luck with your great project. Cheers!
It looks like an issue with the rocksdb wrapper we are using
https://github.com/rust-rocksdb/rust-rocksdb/issues/363