golemfactory / concent-deployment

Scripts and configuration for Concent deployment
5 stars 8 forks source link

Concent VM: configure.yml playbook does not install rustc from testing #319

Closed cameel closed 5 years ago

cameel commented 5 years ago

An attempt to install golem in the VM ends with an error caused by rustc being too old. The configure.yml playbook apparently installs rustc 1.24 from the main repositories while testing has 1.31. That's weird because we have recently modified the playbook to install it from testing: #307.

Reproducing the problem

I install golem in a fresh VM this way:

cd concent-vm/
vagrant up

ansible-playbook install-golem.yml                                 \
    --extra-vars  golem_version=develop                            \
    --private-key .vagrant/machines/default/virtualbox/private_key \
    --user        vagrant                                          \
    --inventory   inventory

The output from install-golem.yml ends with:

TASK [Run setup.py develop] **********************************************************************************************************************************************
fatal: [concent-vm]: FAILED! => {
    "changed": true,
    "cmd": "~/golem_virtualenv/bin/python setup.py develop",
    "delta": "0:00:01.517685",
    "end": "2019-01-28 12:44:31.120656",
    "rc": 1,
    "start": "2019-01-28 12:44:29.602971"
}

STDOUT:

Task Collector already built
running develop
running egg_info
writing golem.egg-info/PKG-INFO
writing dependency_links to golem.egg-info/dependency_links.txt
writing entry points to golem.egg-info/entry_points.txt
writing requirements to golem.egg-info/requires.txt
writing top-level names to golem.egg-info/top_level.txt
reading manifest file 'golem.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'golem.egg-info/SOURCES.txt'
running build_ext
running build_rust

STDERR:

Dynamically determined version: 0.18.3+dev842.g90930bb
warning: no files found matching 'golem/ethereum/genesis_golem.json'
warning: no files found matching 'golem/ethereum/mine_pending_transactions.js'
warning: no files found matching '*.jpg' under directory 'apps'
warning: no files found matching '*.lxs' under directory 'apps'
warning: no files found matching '*.ply' under directory 'apps'
warning: no files found matching '*.lxo' under directory 'apps'
warning: no files found matching '*.lxm' under directory 'apps'
warning: no files found matching '*.lxv' under directory 'apps'
       Fresh ucd-util v0.1.3
       Fresh cfg-if v0.1.6
       Fresh utf8-ranges v1.0.2
       Fresh version_check v0.1.5
       Fresh lazy_static v1.2.0
       Fresh regex-syntax v0.6.4
       Fresh thread_local v0.3.6
       Fresh num-traits v0.2.6
       Fresh libc v0.2.44
       Fresh memchr v2.1.1
       Fresh aho-corasick v0.6.9
       Fresh regex v1.1.0
       Fresh python3-sys v0.2.1
       Fresh cpython v0.2.1
   Compiling pyext-golem v0.1.0 (file:///home/vagrant/golem/rust/golem)
     Running `rustc --crate-name golem src/lib.rs --crate-type dylib --emit=dep-info,link -C opt-level=3 --crate-type cdylib --cfg 'feature="cpython"' -C metadata=1bc28f5d1a0f6018 --out-dir /home/vagrant/golem/rust/golem/target/release/deps -L dependency=/home/vagrant/golem/rust/golem/target/release/deps --extern cpython=/home/vagrant/golem/rust/golem/target/release/deps/libcpython-1269f582d7da01fd.rlib`                                                                                                       
error[E0046]: not all trait items implemented, missing: `description`
  --> src/os/error.rs:17:1
   |
17 | impl Error for OSError {}
   | ^^^^^^^^^^^^^^^^^^^^^^ missing `description` in implementation
   |
   = note: `description` from trait: `fn(&Self) -> &str`

error: aborting due to previous error

error: Could not compile `pyext-golem`.

Caused by:
  process didn't exit successfully: `rustc --crate-name golem src/lib.rs --crate-type dylib --emit=dep-info,link -C opt-level=3 --crate-type cdylib --cfg feature="cpython" -C metadata=1bc28f5d1a0f6018 --out-dir /home/vagrant/golem/rust/golem/target/release/deps -L dependency=/home/vagrant/golem/rust/golem/target/release/deps --extern cpython=/home/vagrant/golem/rust/golem/target/release/deps/libcpython-1269f582d7da01fd.rlib` (exit code: 101)                                                                 
cargo rustc --lib --manifest-path rust/golem/Cargo.toml --features cpython/extension-module cpython/python3-sys --release --verbose -- --crate-type cdylib
error: cargo failed with code: 101

When you log into the machine you can see that rustc is installed but is in version 1.24

dpkg -s rustc | grep Version
Version: 1.24.1+dfsg1-1~deb9u4

And it's possible to install 1.31 from testing manually:

apt-get install rustc -t testing
The following additional packages will be installed:
  libllvm7 libstd-rust-1.31 libstd-rust-dev
PaweuB commented 5 years ago

Pivotal: https://www.pivotaltracker.com/story/show/163585006

cameel commented 5 years ago

I have created a temporary workaround in #328. Please remember to revert that commit when a proper fix is created.

cameel commented 5 years ago

@bartoszbetka Did you find out what the problem was?

bartoszbetka commented 5 years ago

@cameel I added a comment in #359