Coder Social home page Coder Social logo

holochain / holochain Goto Github PK

View Code? Open in Web Editor NEW
1.1K 71.0 131.0 61.72 MB

The current, performant & industrial strength version of Holochain on Rust.

Home Page: https://holochain.org

License: Other

Rust 98.60% Nix 1.15% Shell 0.17% Python 0.06% Dockerfile 0.01%
holochain holochain-rust p2p blockchain dapps-development distributed-computing dapps rust web3

holochain's Introduction

Project Discord License: CAL 1.0 Tests Twitter Follow

Holochain

Holochain is an open-source framework to develop peer-to-peer applications with high levels of security, reliability, and performance.

Code Status

This code is in initial Beta release. It's ready for limited production use. It is still undergoing security reviews and hardening of network protocols.

Running Holochain Applications (hApps)

This repository contains the Holochain core libraries, not the runtime intended for end-users of Holochain applications.

If you just want to install and run Holochain and apps from its AppStore, download the latest release of Holochain Launcher appropriate for Linux, Mac, or Windows.

Installing Holochain for App Development

Visit our developer portal at https://developer.holochain.org/install.

Contributing to Holochain (this repository)

Holochain is an open source project. We welcome all sorts of participation and are actively working on increasing surface area to accept it. Please see our contributing guidelines for our general practices and protocols on participating in the community, as well as specific expectations around things like code formatting, testing practices, continuous integration, etc.

Connect with us on Discord

License

Copyright (C) 2019 - 2024, Holochain Foundation

This program is free software: you can redistribute it and/or modify it under the terms of the license provided in the LICENSE file (CAL-1.0). This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

holochain's People

Contributors

abe-njama avatar artbrock avatar c12i avatar connoropolous avatar davhau avatar ddd-mtl avatar dependabot[bot] avatar freesig avatar github-actions[bot] avatar guillemcordoba avatar holochain-release-automation2 avatar jdeepee avatar jost-s avatar lucksus avatar maackle avatar mattyg avatar neonphog avatar pdaoust avatar peeech avatar pjkundert avatar pospi avatar seb33300 avatar steveej avatar thedavidmeister avatar thetasinner avatar timotree3 avatar toledoroy avatar zdb999 avatar zippy avatar zo-el avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

holochain's Issues

Cleanup items

  • use FallibleIterator for SingleIter et al
  • DbNames: move out of state crate?
  • remove all #[allow]s
  • SkunkError cleanup
  • rigorous tests for BufferedStores
  • all FIXME items
  • docs for all modules
  • ensure use of proper fundamental types: futures vs non-futures aware mutexes and channels, crossbeam/parking_lot for synchronous vs std?

Lair Keystore: Connection Refused

[nix-shell:~/holochain]$ holochain -i

+ [[ -n '' ]]
+ test -d /home/theaman/holochain
+ test -w /home/theaman/holochain
+ export HC_TARGET_PREFIX=/home/theaman/holochain
+ HC_TARGET_PREFIX=/home/theaman/holochain
+ crate=holochain
+ shift
+ cargo run --target-dir=/home/theaman/holochain/target --manifest-path=/home/theaman/holochain/crates/holochain/Cargo.toml -- -i
    Finished dev [unoptimized + debuginfo] target(s) in 0.33s
     Running `target/debug/holochain -i`
Jan 20 15:20:31.188 ERROR lair_keystore_client: error=IpcClientConnectError("/home/theaman/.local/share/lair/socket", Os { code: 111, kind: ConnectionRefused, message: "Connection refused" }) file="/home/theaman/holochain/.cargo/registry/src/github.com-1ecc6299db9ec823/lair_keystore_client-0.0.1-alpha.10/src/lib.rs" line=42
Conductor ready.aman/holochain
+ export HC_TARGET_PREFIX=/home/theaman/holochain
+ HC_TARGET_PREFIX=/home/theaman/holochain
+ crate=holochain
+ shift
+ cargo run --target-dir=/home/theaman/holochain/target --manifest-path=/home/theaman/holochain/crates/holochain/Cargo.toml -- -i
    Finished dev [unoptimized + debuginfo] target(s) in 0.33s
     Running `target/debug/holochain -i`
Jan 20 15:20:31.188 ERROR lair_keystore_client: error=IpcClientConnectError("/home/theaman/.local/share/lair/socket", Os { code: 111, kind: ConnectionRefused, message: "Connection refused" }) file="/home/theaman/holochain/.cargo/registry/src/github.com-1ecc6299db9ec823/lair_keystore_client-0.0.1-alpha.10/src/lib.rs" line=42
Conductor ready.

Using holochain as a dependency fails to compile

When holochain (crates/holochain) is used as a direct dependencccy of a different Rust crate, the compilation fails. However, holochain crate successfully compiles when it is the top-level crate, e.g. cargo build --package holochain.

Steps to reproduce

  1. cargo new uses-holochain && cd uses-holochain
  2. cargo add holochain --git https://github.com/holochain/holochain --branch develop --package holochain
  3. cargo build

Environment

  • OS: WSL (Ubuntu 20.04 under Windows 10)
  • Rust toolchain: stable-2020-08-03-x86_64-unknown-linux-gnu (pinned by rustup)
  • cargo 1.45.1

Additional information

Cargo.toml
[package]
name = "uses-holochain"
version = "0.1.0"
authors = ["Oleksii Filonenko <[email protected]>"]
edition = "2018"

[dependencies.holochain]
git = "https://github.com/holochain/holochain"
branch = "develop"
package = "holochain"
Error log of cargo build
$ cargo build
   Compiling holochain_state v0.0.1 (https://github.com/holochain/holochain?branch=develop#c146d796)
error[E0433]: failed to resolve: could not find `LmdbError` in `rkv`
   --> /home/brightone/.cargo/git/checkouts/holochain-391184137afba57c/c146d79/crates/state/src/buffer/kv/buf.rs:338:57
    |
338 |                     Err(rkv::StoreError::LmdbError(rkv::LmdbError::NotFound)) => (),
    |                                                         ^^^^^^^^^ could not find `LmdbError` in `rkv`

error[E0433]: failed to resolve: could not find `LmdbError` in `rkv`
   --> /home/brightone/.cargo/git/checkouts/holochain-391184137afba57c/c146d79/crates/state/src/buffer/kv/buf.rs:381:57
    |
381 |                     Err(rkv::StoreError::LmdbError(rkv::LmdbError::NotFound)) => (),
    |                                                         ^^^^^^^^^ could not find `LmdbError` in `rkv`

error[E0433]: failed to resolve: could not find `LmdbError` in `rkv`
   --> /home/brightone/.cargo/git/checkouts/holochain-391184137afba57c/c146d79/crates/state/src/buffer/kvv/buf.rs:192:49
    |
192 |                 rkv::StoreError::LmdbError(rkv::LmdbError::NotFound) => {
    |                                                 ^^^^^^^^^ could not find `LmdbError` in `rkv`

error[E0433]: failed to resolve: could not find `LmdbError` in `rkv`
   --> /home/brightone/.cargo/git/checkouts/holochain-391184137afba57c/c146d79/crates/state/src/buffer/kvv/buf.rs:253:76
    |
253 | ...                   if let rkv::StoreError::LmdbError(rkv::LmdbError::KeyExist) =
    |                                                              ^^^^^^^^^ could not find `LmdbError` in `rkv`

error[E0433]: failed to resolve: could not find `LmdbError` in `rkv`
   --> /home/brightone/.cargo/git/checkouts/holochain-391184137afba57c/c146d79/crates/state/src/buffer/kvv/buf.rs:273:68
    |
273 | ...                   if let rkv::StoreError::LmdbError(rkv::LmdbError::NotFound) = err {
    |                                                              ^^^^^^^^^ could not find `LmdbError` in `rkv`

error[E0599]: no method named `iter_start` found for struct `rkv::store::integer::IntegerStore<K>` in the current scope
  --> /home/brightone/.cargo/git/checkouts/holochain-391184137afba57c/c146d79/crates/state/src/buffer/kv/kv_int_store.rs:63:21
   |
63 |             self.db.iter_start(reader)?,
   |                     ^^^^^^^^^^ method not found in `rkv::store::integer::IntegerStore<K>`

error[E0599]: no method named `iter_end` found for struct `rkv::store::integer::IntegerStore<K>` in the current scope
  --> /home/brightone/.cargo/git/checkouts/holochain-391184137afba57c/c146d79/crates/state/src/buffer/kv/kv_int_store.rs:64:21
   |
64 |             self.db.iter_end(reader)?,
   |                     ^^^^^^^^ method not found in `rkv::store::integer::IntegerStore<K>`

error[E0599]: no method named `iter_from` found for struct `rkv::store::integer::IntegerStore<K>` in the current scope
  --> /home/brightone/.cargo/git/checkouts/holochain-391184137afba57c/c146d79/crates/state/src/buffer/kv/kv_int_store.rs:75:21
   |
75 |             self.db.iter_from(reader, k)?,
   |                     ^^^^^^^^^ method not found in `rkv::store::integer::IntegerStore<K>`
   |
   = help: items from traits can only be used if the trait is implemented and in scope
note: `buffer::kv::generic::KvStoreT` defines an item `iter_from`, perhaps you need to implement it
  --> /home/brightone/.cargo/git/checkouts/holochain-391184137afba57c/c146d79/crates/state/src/buffer/kv/generic.rs:4:1
   |
4  | pub trait KvStoreT<K, V> {
   | ^^^^^^^^^^^^^^^^^^^^^^^^

error[E0599]: no method named `iter_end` found for struct `rkv::store::integer::IntegerStore<K>` in the current scope
  --> /home/brightone/.cargo/git/checkouts/holochain-391184137afba57c/c146d79/crates/state/src/buffer/kv/kv_int_store.rs:76:21
   |
76 |             self.db.iter_end(reader)?,
   |                     ^^^^^^^^ method not found in `rkv::store::integer::IntegerStore<K>`

error[E0599]: no method named `iter_start` found for struct `rkv::store::integer::IntegerStore<K>` in the current scope
  --> /home/brightone/.cargo/git/checkouts/holochain-391184137afba57c/c146d79/crates/state/src/buffer/kv/kv_int_store.rs:85:39
   |
85 |         Ok(SingleIterRaw::new(self.db.iter_start(reader)?, self.db.iter_end(reader)?).rev())
   |                                       ^^^^^^^^^^ method not found in `rkv::store::integer::IntegerStore<K>`

error[E0599]: no method named `iter_end` found for struct `rkv::store::integer::IntegerStore<K>` in the current scope
  --> /home/brightone/.cargo/git/checkouts/holochain-391184137afba57c/c146d79/crates/state/src/buffer/kv/kv_int_store.rs:85:68
   |
85 |         Ok(SingleIterRaw::new(self.db.iter_start(reader)?, self.db.iter_end(reader)?).rev())
   |                                                                    ^^^^^^^^ method not found in `rkv::store::integer::IntegerStore<K>`

error[E0599]: no method named `iter_end` found for struct `rkv::store::single::SingleStore` in the current scope
  --> /home/brightone/.cargo/git/checkouts/holochain-391184137afba57c/c146d79/crates/state/src/buffer/kv/kv_store.rs:65:21
   |
65 |             self.db.iter_end(reader)?,
   |                     ^^^^^^^^ method not found in `rkv::store::single::SingleStore`

error[E0599]: no method named `iter_end` found for struct `rkv::store::single::SingleStore` in the current scope
  --> /home/brightone/.cargo/git/checkouts/holochain-391184137afba57c/c146d79/crates/state/src/buffer/kv/kv_store.rs:78:21
   |
78 |             self.db.iter_end(reader)?,
   |                     ^^^^^^^^ method not found in `rkv::store::single::SingleStore`

error[E0599]: no method named `iter_end` found for struct `rkv::store::single::SingleStore` in the current scope
  --> /home/brightone/.cargo/git/checkouts/holochain-391184137afba57c/c146d79/crates/state/src/buffer/kv/kv_store.rs:87:68
   |
87 |         Ok(SingleIterRaw::new(self.db.iter_start(reader)?, self.db.iter_end(reader)?).rev())
   |                                                                    ^^^^^^^^ method not found in `rkv::store::single::SingleStore`

error[E0599]: no method named `path` found for reference `&rkv::env::Rkv` in the current scope
   --> /home/brightone/.cargo/git/checkouts/holochain-391184137afba57c/c146d79/crates/state/src/db.rs:180:20
    |
180 |     let path = rkv.path().to_owned();
    |                    ^^^^ private field, not a method

error: aborting due to 15 previous errors

Some errors have detailed explanations: E0433, E0599.
For more information about an error, try `rustc --explain E0433`.
error: could not compile `holochain_state`.

To learn more, run the command again with --verbose.

Permission Denied Error Message While Attempting To Install

Hi Guys,

Just been following your instructions below, but I got a permission denied error message (below), any ideas?

"dellams@DESKTOP-CEETMKE:~$ git clone [email protected]:holochain/holochain.git
Cloning into 'holochain'...
The authenticity of host 'github.com (140.82.121.4)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no/[fingerprint])? y
Please type 'yes', 'no' or the fingerprint: yes
Warning: Permanently added 'github.com,140.82.121.4' (RSA) to the list of known hosts.
[email protected]: Permission denied (publickey).
fatal: Could not read from remote repository."

Also, I installed Nix as per the instructions in the link below, but when I run "nix-shell" I get this error message:

"dellams@DESKTOP-CEETMKE:~$ nix-shell
error: getting status of '/home/dellams/default.nix': No such file or directory"

I am using WSL2 on Windows 10, which worked fine for the previous hc with holocain.love. I presume that still points to the redux version? When will it be updated to the new version do you think? :)

Keep up the great work, really impressed with the new version and keen to upgrade HoloNET .NET/Unity client & .NET HDK to it along with my other hc code... thanks :)

Cheers
D.

hc-install missing

I'm on develop (commit 047531c)

After checking out and running nix-shell, I can no longer run hc-install.

Currently bisecting to see when this may have broken...

Bincode incompatible with deserialize_any

The plan is to use bincode for serialization into LMDB. However, it panics if any struct uses deserialize_any, including usage of serde(deserialize_with) and maybe even serde(rename). Our existing structs use these extensively, especially Dna.

If we rewrite the structs to deserialize in a more straightforward way, we can use bincode easily, otherwise, not.

Committing more than 116 entries in the same zome call hangs the conductor

In the context of the same zome call, I am able to commit 116 correctly and very quickly, but committing 117 hangs the conductor and doesn't return any results.

This doesn't depend on the size of the entries, as the same behavior applies to entries of 100KB or a few bytes.

Should I post publicly a repository to be able to reproduce?

This should be retested once the memory leak on the LMDB databases is fixed.

Feature Request! configurable zome logging levels

It would be super useful to have a way to just get logs from your zome out to the main log, and not have to set debug as the level of logging for holochain too, because there is so much noise.

I just want a really simple way to get clean logs that will only or almost entirely show my zome logs.
One solution to this problem is also adding an Option, to the hdk debug call, that lets you set the log level it will appear at.

Right now, even the Info level is firehosing kitsune logs, such as:

Dec 27 18:53:00.923  INFO kitsune_p2p_proxy::tls_srv: CcL0hd: SRV: INCOMING TLS: kitsune-proxy://vU2NBBRBAxmarS-eu6f61C5pztGUU3B2b_plTj--ACU/kitsune-quic/h/45.33.73.72/p/4010/--
Dec 27 18:53:00.923  INFO kitsune_p2p_proxy::tls_srv: CcL0hd: SRV: INCOMING TLS: kitsune-proxy://vU2NBBRBAxmarS-eu6f61C5pztGUU3B2b_plTj--ACU/kitsune-quic/h/45.33.73.72/p/4010/--
Dec 27 18:53:02.862  INFO kitsune_p2p_proxy::inner_listen: CcL0hd: wishes to proxy through VYgwCr:kitsune-proxy://VYgwCrh2ZCKL1lpnMM1VVUee7ks-9BkmW47C_ys4nqg/kitsune-quic/h/kitsune-proxy.harris-braun.com/p/4010/--
Dec 27 18:53:03.039  INFO kitsune_p2p_proxy::inner_listen: Proxy renewed for ProxyUrl { full: Url2 { url: "kitsune-proxy://VYgwCrh2ZCKL1lpnMM1VVUee7ks-9BkmW47C_ys4nqg/kitsune-quic/h/kitsune-proxy.harris-braun.com/p/4010/--" }, base: Url2 { url: "kitsune-quic://kitsune-proxy.harris-braun.com:4010" } }
Dec 27 18:53:18.040  INFO kitsune_p2p_proxy::inner_listen: CcL0hd: wishes to proxy through VYgwCr:kitsune-proxy://VYgwCrh2ZCKL1lpnMM1VVUee7ks-9BkmW47C_ys4nqg/kitsune-quic/h/kitsune-proxy.harris-braun.com/p/4010/--

Library design issue: Entry mandates EntryDefId

This seems to mean that I can no longer define entry structs in one crate, and then import & bind them to zome API hooks in another.

Previously I had macro code which generated some custom structs & traits for handling record data-

pub trait Identified<T>
{
    fn entry(&self) -> T;
    fn identity(&self) -> GraphAPIResult<EntryHash>;
}

This appeared to work fine via macro application. But after the changes to EntryDefId, I need to specify a supertrait pub trait Identified<T>: TryInto<Entry> in order for the compiler to understand that my derived structs can pass themselves to hdk3::hash_entry.

This means that if I do not bind an entry_def! to my struct before the compiler is done (ie. within the same crate), my macro implementing Identified<T> will fail. The ripple-on effect is a global namespace collision issue for all hApp crates, since it will be up to library crate (rather than zome crate) authors to define entry IDs.

Is there any way to still define a struct as an entry without assigning it an entry ID? If not, can this ability be restored?

Investigation / possible limiting bug: lifetime bounds in create/update_entry HDK methods

Hi everyone :)

I have a complex set of issues presenting itself in the creation of an abstract helper library for HDK developers. I'd like to open by saying that the new version of this library is much cleaner and easier to understand than the previous one. Really enjoying the experience of building with the new HDK- kudos! The Path construct, in particular, has greatly simplified a lot of previous subtly-differing "anchor patterns" I was using.

The stage I'm at is that everything is passing compiler checks, save two things. I believe these two things are to do with these trait bounds in the HDK core methods create_entry and update_entry:

where
    EntryDefId: From<&'a I>,
    SerializedBytes: TryFrom<&'a I, Error = SerializedBytesError>,

I'm at the limits of my Rust experience in understanding this (specifically lifetimes & borrowing), so perhaps to explain why I believe this is a problem with core it's best to build from first principles up to the point at which the error started blocking me; and folks can follow along with my assumptions and we can decide whether these limitations I'm hitting justify any changes or not.

To keep things simple, I'll focus on entry creation. The first goal was to abstract away some of the common functionality I would need in dealing with reading and writing entries, by creating my own create_entry wrapper:

use hdk3::prelude::create_entry as hdk_create_entry;

pub fn create_entry<'a, E: 'a>(
    entry_struct: &'a E,
) -> HdkResult<(HeaderHash, EntryHash)>
    where EntryDefId: From<&'a E>,
        SerializedBytes: TryFrom<&'a E, Error = SerializedBytesError>,
{
    let entry_hash = hash_entry(&entry_struct)?;
    let header_hash = hdk_create_entry(&entry_struct)?;

    Ok((header_hash, entry_hash))
}

So far, so good- I have a nice clean, memory-efficient API. The trait bounds I've had to add here are a little verbose, but that's to be expected and it all seems to work fine-

#[cfg(test)]
mod tests {
    #[hdk_entry(id="test_entry")]
    #[derive(Clone, PartialEq, Debug)]
    pub struct TestEntry {
        field: Option<String>,
    }

    #[test]
    fn test_entry_creation() {
        let entry = TestEntry { field: None };
        let (header_hash, entry_hash) = create_entry(&entry).unwrap();
        // ...
    }
}

Now- can I implement some higher-order abstraction, one that wraps create_entry and potentially performs some additional logic? Indeed I can! I have to repeat those trait bounds again, but it still seems to work fine-

fn new_test_entry<'a, R: 'a>(
    entry: &'a R,
) -> (HeaderHash, EntryHash)
    where EntryDefId: From<&'a R>,
        SerializedBytes: TryFrom<&'a R, Error = SerializedBytesError>,
{
    let (header_hash, entry_hash) = create_entry(&entry).unwrap();

    (header_hash, entry_hash)
}

#[test]
fn test_entry_creation() {
    let entry = TestEntry { field: None };
    let (header_hash, entry_hash) = new_test_entry(&entry);
    // ...
}

In a real application though, my goal is to abstract away record management behaviour by having a creation payload separate to the input for writing an entry. This means that the payload I pass to create_entry is an inner (temporary) variable. Rewriting the higher-order helper method to perform this conversion is where lifetime errors begin to pop up (errors shown as comments):

pub struct Creation;

impl Into<TestEntry> for Creation {
    fn into(self) -> TestEntry {
        TestEntry { field: None }
    }
}

fn new_test_entry<'a, E: 'a, C>(    // <-- lifetime `'a` defined here
    create_payload: C,
) -> (HeaderHash, EntryHash, E)
    where
        C: Into<E>,
        EntryDefId: From<&'a E>,
        SerializedBytes: TryFrom<&'a E, Error = SerializedBytesError>,
{
    let entry: E = create_payload.into();

    let (header_hash, entry_hash) = create_entry(&entry).unwrap();  // <-- borrow of `entry` occurs here; argument requires that `entry` is borrowed for `'a`

    (header_hash, entry_hash, entry)    // <-- cannot move out of `entry` because it is borrowed; move out of `entry` occurs here
}   // <-- `entry` dropped here while still borrowed

If I make E cloneable, moving the value out of the function seems fine but still the borrow in create_entry does not seem to be released by the inner function-

fn new_test_entry<'a, E: 'a, C>(    // <-- lifetime `'a` defined here
    create_payload: C,
) -> (HeaderHash, EntryHash, E)
    where
        E: Clone,
        C: Into<E>,
        EntryDefId: From<&'a E>,
        SerializedBytes: TryFrom<&'a E, Error = SerializedBytesError>,
{
    let entry: E = create_payload.into();

    let (header_hash, entry_hash) = create_entry(&entry).unwrap();  // <-- argument requires that `entry` is borrowed for `'a`

    (header_hash, entry_hash, entry.clone())
}   // <-- `entry` dropped here while still borrowed

#[test]
fn test_entry_creation() {
    let (header_hash, entry_hash, entry): (_,_, TestEntry) = new_test_entry(Creation);

    // ...
}

So, all I can infer is that these lifetime bounds in Try/From<&'a require the borrow to last for too long. I really don't care that "entry dropped here while still borrowed"... how do I tell Rust not to care about this?

Or — is there an alternate pattern for polymorphism and abstraction here that I should be exploring? Is this not in fact an idiomatic Rust pattern? Should I investigate use of a closure-based API for managing entry abstractions?

Any help is greatly appreciated. Once I have moved through these two lifetime errors, the rest of the RSM conversion I'm working on should fall into place rapidly.

Tests depend on unbuilt wasm

On develop, tests fail on a fresh copy of the repo. In general, one in which test_utils/wasm/foo hasn't been built.

Expected Behavior

Tests pass

Actual behavior

Tests fail with:

failures:

---- core::ribosome::tests::invoke_foo_test stdout ----
thread 'core::ribosome::tests::invoke_foo_test' panicked at 'Couldn't create WASM from file: "/home/timo/dev/fresh-removeme/holochain-2020/crates/holochain/../../test_utils/wasm/target/foo/wasm32-unknown-unknown/release/test_wasm_foo.wasm"; No such file or directory (os error 2)', test_utils/wasm/./src/lib.rs:8:31
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    core::ribosome::tests::invoke_foo_test

test result: FAILED. 23 passed; 1 failed; 9 ignored; 0 measured; 0 filtered out

Steps to reproduce

libssl-dev is required on ubuntu

Tried to build on a fresh Pop Os and pkgconfig can't find openssl.
This is fixed by:
sudo apt-get install libssl-dev
Should maybe add this to the readme

holochain Crash Report

image

File:

name = 'holochain'
operating_system = 'unix:Unknown'
crate_version = '0.0.1'
explanation = '''
Panic occurred in file 'crates/holochain/src/bin/holochain/main.rs' at line 146
'''
cause = 'Could not initialize Conductor from configuration: KeystoreError(LairError(Other(OtherError("timout waiting for lair-keystore ready"))))'
method = 'Panic'
backtrace = '''

   0: 0x5593d86369de - tokio::runtime::enter::Enter::block_on::h0732d572612b366d
   1: 0x5593d8412e21 - tokio::runtime::thread_pool::ThreadPool::block_on::h2ebae4d075ef7516
   2: 0x5593d8636b4a - tokio::runtime::context::enter::h68c32ad90060e605
   3: 0x5593d8415702 - tokio::runtime::handle::Handle::enter::h1139908d3f0df844
   4: 0x5593d869a128 - holochain::main::h170e863b62c0a840
   5: 0x5593d8624543 - std::rt::lang_start::{{closure}}::h8751e5e1b1fac15f
   6: 0x5593d91b23d8 - std::rt::lang_start_internal::{{closure}}::hefb489d56a389b75
                at /rustc/d3fb005a39e62501b8b0b356166e515ae24e2e54/src/libstd/rt.rs:52
                 - std::panicking::try::do_call::hb2bfa58b743656f1
                at /rustc/d3fb005a39e62501b8b0b356166e515ae24e2e54/src/libstd/panicking.rs:297
                 - std::panicking::try::haaa85a89ce3784c3
                at /rustc/d3fb005a39e62501b8b0b356166e515ae24e2e54/src/libstd/panicking.rs:274
                 - std::panic::catch_unwind::h49baa277f74e60cb
                at /rustc/d3fb005a39e62501b8b0b356166e515ae24e2e54/src/libstd/panic.rs:394
                 - std::rt::lang_start_internal::h7aa2f6739b31fe58
                at /rustc/d3fb005a39e62501b8b0b356166e515ae24e2e54/src/libstd/rt.rs:51
   7: 0x5593d869a3e2 - main
   8: 0x7fcfa489bb97 - __libc_start_main
   9: 0x5593d834580a - _start
  10:        0x0 - <unresolved>'''

How to run hApp or HDK library tests?

My project Cargo.toml files are targeting version 2eeec4a19.

$ which holochain
/home/pospi/.cargo/bin/holochain

$ holochain --version
holochain 0.0.100

$ rustc --version
rustc 1.48.0 (7eac88abb 2020-11-16)

$ cargo test --package hdk_graph_helpers --lib -- entry_helpers::tests
   Compiling hdk_graph_helpers v0.1.0 (/home/pospi/projects/holo-rea/valueflows-project-metarepo/holo-rea/lib/hdk_graph_helpers)

error: linking with `cc` failed: exit code: 1
  |
  = note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-Wl,--eh-frame-hdr" "-L" [TRUNCATED] "-Wl,--end-group" "/home/pospi/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-774a5f30b27a1f9c.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lc" "-lm" "-lrt" "-lpthread" "-lutil" "-ldl" "-lutil"
  = note: /usr/bin/ld: /home/pospi/projects/holo-rea/valueflows-project-metarepo/holo-rea/target/debug/deps/hdk_graph_helpers-37b4ee6fcf9af419.1xhynyiox30xia6u.rcgu.o: in function `holochain_wasmer_guest::host_call':
          /home/pospi/.cargo/registry/src/github.com-1ecc6299db9ec823/holochain_wasmer_guest-0.0.53/src/guest.rs:142: undefined reference to `__import_data'
          /usr/bin/ld: /home/pospi/projects/holo-rea/valueflows-project-metarepo/holo-rea/target/debug/deps/hdk_graph_helpers-37b4ee6fcf9af419.3jmu9e0vkjznnrx8.rcgu.o: in function `hdk3::entry::hash_entry::hash_entry':
          /home/pospi/.cargo/git/checkouts/holochain-391184137afba57c/2eeec4a/crates/hdk3/src/entry/hash_entry.rs:47: undefined reference to `__hash_entry'
          /usr/bin/ld: /home/pospi/projects/holo-rea/valueflows-project-metarepo/holo-rea/target/debug/deps/hdk_graph_helpers-37b4ee6fcf9af419.3jmu9e0vkjznnrx8.rcgu.o: in function `hdk3::entry::hash_entry::hash_entry':
          /home/pospi/.cargo/git/checkouts/holochain-391184137afba57c/2eeec4a/crates/hdk3/src/entry/hash_entry.rs:47: undefined reference to `__hash_entry'
          /usr/bin/ld: /home/pospi/projects/holo-rea/valueflows-project-metarepo/holo-rea/target/debug/deps/hdk_graph_helpers-37b4ee6fcf9af419.437t64e3ij2rpra1.rcgu.o: in function `hdk3::host_fn::get_details::get_details':
          /home/pospi/.cargo/git/checkouts/holochain-391184137afba57c/2eeec4a/crates/hdk3/src/host_fn/get_details.rs:51: undefined reference to `__get_details'
          /usr/bin/ld: /home/pospi/projects/holo-rea/valueflows-project-metarepo/holo-rea/target/debug/deps/hdk_graph_helpers-37b4ee6fcf9af419.rkj2q1rp11m44up.rcgu.o: in function `hdk3::host_fn::get::get':
          /home/pospi/.cargo/git/checkouts/holochain-391184137afba57c/2eeec4a/crates/hdk3/src/host_fn/get.rs:50: undefined reference to `__get'
          /usr/bin/ld: /home/pospi/projects/holo-rea/valueflows-project-metarepo/holo-rea/target/debug/deps/libhdk3-fe2ebb58fd2c8fe1.rlib(hdk3-fe2ebb58fd2c8fe1.hdk3.6q00aghl-cgu.11.rcgu.o): in function `hdk3::host_fn::get_links::get_links':
          /home/pospi/.cargo/git/checkouts/holochain-391184137afba57c/2eeec4a/crates/hdk3/src/host_fn/get_links.rs:23: undefined reference to `__get_links'
          /usr/bin/ld: /home/pospi/projects/holo-rea/valueflows-project-metarepo/holo-rea/target/debug/deps/libhdk3-fe2ebb58fd2c8fe1.rlib(hdk3-fe2ebb58fd2c8fe1.hdk3.6q00aghl-cgu.13.rcgu.o): in function `hdk3::host_fn::delete::delete':
          /home/pospi/.cargo/git/checkouts/holochain-391184137afba57c/2eeec4a/crates/hdk3/src/host_fn/delete.rs:13: undefined reference to `__delete'
          /usr/bin/ld: /home/pospi/projects/holo-rea/valueflows-project-metarepo/holo-rea/target/debug/deps/libhdk3-fe2ebb58fd2c8fe1.rlib(hdk3-fe2ebb58fd2c8fe1.hdk3.6q00aghl-cgu.15.rcgu.o): in function `hdk3::entry::hash_entry::hash_entry':
          /home/pospi/.cargo/git/checkouts/holochain-391184137afba57c/2eeec4a/crates/hdk3/src/entry/hash_entry.rs:47: undefined reference to `__hash_entry'
          /usr/bin/ld: /home/pospi/projects/holo-rea/valueflows-project-metarepo/holo-rea/target/debug/deps/libhdk3-fe2ebb58fd2c8fe1.rlib(hdk3-fe2ebb58fd2c8fe1.hdk3.6q00aghl-cgu.2.rcgu.o): in function `holochain_wasmer_guest::host_call':
          /home/pospi/.cargo/registry/src/github.com-1ecc6299db9ec823/holochain_wasmer_guest-0.0.53/src/guest.rs:142: undefined reference to `__import_data'
          /usr/bin/ld: /home/pospi/projects/holo-rea/valueflows-project-metarepo/holo-rea/target/debug/deps/libhdk3-fe2ebb58fd2c8fe1.rlib(hdk3-fe2ebb58fd2c8fe1.hdk3.6q00aghl-cgu.2.rcgu.o): in function `holochain_wasmer_guest::host_call':
          /home/pospi/.cargo/registry/src/github.com-1ecc6299db9ec823/holochain_wasmer_guest-0.0.53/src/guest.rs:142: undefined reference to `__import_data'
          /usr/bin/ld: /home/pospi/projects/holo-rea/valueflows-project-metarepo/holo-rea/target/debug/deps/libhdk3-fe2ebb58fd2c8fe1.rlib(hdk3-fe2ebb58fd2c8fe1.hdk3.6q00aghl-cgu.2.rcgu.o): in function `holochain_wasmer_guest::host_call':
          /home/pospi/.cargo/registry/src/github.com-1ecc6299db9ec823/holochain_wasmer_guest-0.0.53/src/guest.rs:142: undefined reference to `__import_data'
          /usr/bin/ld: /home/pospi/projects/holo-rea/valueflows-project-metarepo/holo-rea/target/debug/deps/libhdk3-fe2ebb58fd2c8fe1.rlib(hdk3-fe2ebb58fd2c8fe1.hdk3.6q00aghl-cgu.2.rcgu.o): in function `holochain_wasmer_guest::host_call':
          /home/pospi/.cargo/registry/src/github.com-1ecc6299db9ec823/holochain_wasmer_guest-0.0.53/src/guest.rs:142: undefined reference to `__import_data'
          /usr/bin/ld: /home/pospi/projects/holo-rea/valueflows-project-metarepo/holo-rea/target/debug/deps/libhdk3-fe2ebb58fd2c8fe1.rlib(hdk3-fe2ebb58fd2c8fe1.hdk3.6q00aghl-cgu.2.rcgu.o): in function `holochain_wasmer_guest::host_call':
          /home/pospi/.cargo/registry/src/github.com-1ecc6299db9ec823/holochain_wasmer_guest-0.0.53/src/guest.rs:142: undefined reference to `__import_data'
          /usr/bin/ld: /home/pospi/projects/holo-rea/valueflows-project-metarepo/holo-rea/target/debug/deps/libhdk3-fe2ebb58fd2c8fe1.rlib(hdk3-fe2ebb58fd2c8fe1.hdk3.6q00aghl-cgu.2.rcgu.o):/home/pospi/.cargo/registry/src/github.com-1ecc6299db9ec823/holochain_wasmer_guest-0.0.53/src/guest.rs:142: more undefined references to `__import_data' follow
          /usr/bin/ld: /home/pospi/projects/holo-rea/valueflows-project-metarepo/holo-rea/target/debug/deps/libhdk3-fe2ebb58fd2c8fe1.rlib(hdk3-fe2ebb58fd2c8fe1.hdk3.6q00aghl-cgu.4.rcgu.o): in function `hdk3::host_fn::update::update':
          /home/pospi/.cargo/git/checkouts/holochain-391184137afba57c/2eeec4a/crates/hdk3/src/host_fn/update.rs:22: undefined reference to `__update'
          /usr/bin/ld: /home/pospi/projects/holo-rea/valueflows-project-metarepo/holo-rea/target/debug/deps/libhdk3-fe2ebb58fd2c8fe1.rlib(hdk3-fe2ebb58fd2c8fe1.hdk3.6q00aghl-cgu.7.rcgu.o): in function `hdk3::host_fn::create::create':
          /home/pospi/.cargo/git/checkouts/holochain-391184137afba57c/2eeec4a/crates/hdk3/src/host_fn/create.rs:20: undefined reference to `__create'
          /usr/bin/ld: /home/pospi/projects/holo-rea/valueflows-project-metarepo/holo-rea/target/debug/deps/libhdk3-fe2ebb58fd2c8fe1.rlib(hdk3-fe2ebb58fd2c8fe1.hdk3.6q00aghl-cgu.7.rcgu.o): in function `hdk3::host_fn::create_link::create_link':
          /home/pospi/.cargo/git/checkouts/holochain-391184137afba57c/2eeec4a/crates/hdk3/src/host_fn/create_link.rs:63: undefined reference to `__create_link'
          /usr/bin/ld: /home/pospi/projects/holo-rea/valueflows-project-metarepo/holo-rea/target/debug/deps/libhdk3-fe2ebb58fd2c8fe1.rlib(hdk3-fe2ebb58fd2c8fe1.hdk3.6q00aghl-cgu.9.rcgu.o): in function `hdk3::host_fn::get::get':
          /home/pospi/.cargo/git/checkouts/holochain-391184137afba57c/2eeec4a/crates/hdk3/src/host_fn/get.rs:50: undefined reference to `__get'
          collect2: error: ld returned 1 exit status
          

error: aborting due to previous error; 1 warning emitted

error: could not compile `hdk_graph_helpers`

To learn more, run the command again with --verbose.

MDB_MAP_FULL when commiting more than 40MB of entries

I get this error whenever I try to commit more than 40MB (more or less) of entries in the file-storage-module

{
  type: 'error',
  data: {
    type: 'internal_error',
    data: 'Workspace error: Workspace error: Error interacting with the underlying LMDB store: lmdb error: MDB_MAP_FULL: Environment mapsize limit reached'                               
  }
}

Building issue on macOS Big Sur 11.1

Cargo.toml:
[package]
name = "simple"
version = "0.0.1"
authors = [ "[email protected]", "[email protected]" ]
edition = "2018"

[lib]
name = "simple"
crate-type = [ "cdylib", "rlib" ]

[dependencies]
hdk3 = { git = "https://github.com/holochain/holochain.git", branch = "develop" }
serde = "=1.0.104"
chrono = { version = "0.4", features = ['alloc', 'std']}
derive_more = "0.99.9"
thiserror = "1.0.20"

I am trying to build a simple DNA and I get the following error:

[nix-shell:~/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests]$ yarn test
yarn run v1.22.4
$ CARGO_TARGET_DIR=../target cargo build --release --target wasm32-unknown-unknown && dna-util -c ../simple.dna.workdir && TRYORAMA_LOG_LEVEL=info RUST_BACKTRACE=1 TRYORAMA_HOLOCHAIN_PATH="holochain" ts-node src/index.ts
Compiling proc-macro2 v1.0.24
Compiling syn v1.0.58
Compiling serde v1.0.104
Compiling ryu v1.0.5
Compiling getrandom v0.1.16
Compiling libc v0.2.82
Compiling serde_json v1.0.61
Compiling unicode-segmentation v1.7.1
error: linking with cc failed: exit code: 1
|
= note: "cc" "-m64" "-arch" "x86_64" "-L" "/nix/store/zhwcls14mwvawhi29j7km1vl6j2wgfnh-rust-1.48.0-2020-11-16-7eac88abb/lib/rustlib/x86_64-apple-darwin/lib" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/getrandom-77fc7033dddf0d1f/build_script_build-77fc7033dddf0d1f.build_script_build.c9w2p9w0-cgu.0.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/getrandom-77fc7033dddf0d1f/build_script_build-77fc7033dddf0d1f.build_script_build.c9w2p9w0-cgu.1.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/getrandom-77fc7033dddf0d1f/build_script_build-77fc7033dddf0d1f.build_script_build.c9w2p9w0-cgu.10.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/getrandom-77fc7033dddf0d1f/build_script_build-77fc7033dddf0d1f.build_script_build.c9w2p9w0-cgu.11.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/getrandom-77fc7033dddf0d1f/build_script_build-77fc7033dddf0d1f.build_script_build.c9w2p9w0-cgu.12.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/getrandom-77fc7033dddf0d1f/build_script_build-77fc7033dddf0d1f.build_script_build.c9w2p9w0-cgu.13.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/getrandom-77fc7033dddf0d1f/build_script_build-77fc7033dddf0d1f.build_script_build.c9w2p9w0-cgu.14.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/getrandom-77fc7033dddf0d1f/build_script_build-77fc7033dddf0d1f.build_script_build.c9w2p9w0-cgu.15.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/getrandom-77fc7033dddf0d1f/build_script_build-77fc7033dddf0d1f.build_script_build.c9w2p9w0-cgu.2.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/getrandom-77fc7033dddf0d1f/build_script_build-77fc7033dddf0d1f.build_script_build.c9w2p9w0-cgu.3.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/getrandom-77fc7033dddf0d1f/build_script_build-77fc7033dddf0d1f.build_script_build.c9w2p9w0-cgu.4.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/getrandom-77fc7033dddf0d1f/build_script_build-77fc7033dddf0d1f.build_script_build.c9w2p9w0-cgu.5.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/getrandom-77fc7033dddf0d1f/build_script_build-77fc7033dddf0d1f.build_script_build.c9w2p9w0-cgu.6.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/getrandom-77fc7033dddf0d1f/build_script_build-77fc7033dddf0d1f.build_script_build.c9w2p9w0-cgu.7.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/getrandom-77fc7033dddf0d1f/build_script_build-77fc7033dddf0d1f.build_script_build.c9w2p9w0-cgu.8.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/getrandom-77fc7033dddf0d1f/build_script_build-77fc7033dddf0d1f.build_script_build.c9w2p9w0-cgu.9.rcgu.o" "-o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/getrandom-77fc7033dddf0d1f/build_script_build-77fc7033dddf0d1f" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/getrandom-77fc7033dddf0d1f/build_script_build-77fc7033dddf0d1f.49qqxucx1jxtcy54.rcgu.o" "-Wl,-dead_strip" "-nodefaultlibs" "-L" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/deps" "-L" "/nix/store/zhwcls14mwvawhi29j7km1vl6j2wgfnh-rust-1.48.0-2020-11-16-7eac88abb/lib/rustlib/x86_64-apple-darwin/lib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libstd-688c1376a25c049d.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-078f89c2cdb6d46b.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libobject-fec020208bc1ad3c.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libaddr2line-38540dcacc9fd218.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libgimli-6f613179f618c598.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/librustc_demangle-4d1a5d7118aaeaf2.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libhashbrown-d88fab3b1b9d8356.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_alloc-a21754532a052f2f.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libunwind-2e9ebc4127641a96.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libcfg_if-82d0f961232a05ca.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/liblibc-370b1b71f08bac3c.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/liballoc-816106c1f35f5421.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_core-20f3a030f1a56a86.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libcore-60333aa00936c5ce.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-116aaeaea873ef94.rlib" "-lSystem" "-lresolv" "-lc" "-lm"
= note: ld: file not found: /usr/lib/system/libcache.dylib for architecture x86_64
clang-7: error: linker command failed with exit code 1 (use -v to see invocation)

error: aborting due to previous error

error: could not compile getrandom

To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
error: linking with cc failed: exit code: 1
|
= note: "cc" "-m64" "-arch" "x86_64" "-L" "/nix/store/zhwcls14mwvawhi29j7km1vl6j2wgfnh-rust-1.48.0-2020-11-16-7eac88abb/lib/rustlib/x86_64-apple-darwin/lib" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde-91f43e4c85c558c6/build_script_build-91f43e4c85c558c6.build_script_build.6jhpyt85-cgu.0.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde-91f43e4c85c558c6/build_script_build-91f43e4c85c558c6.build_script_build.6jhpyt85-cgu.1.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde-91f43e4c85c558c6/build_script_build-91f43e4c85c558c6.build_script_build.6jhpyt85-cgu.10.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde-91f43e4c85c558c6/build_script_build-91f43e4c85c558c6.build_script_build.6jhpyt85-cgu.11.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde-91f43e4c85c558c6/build_script_build-91f43e4c85c558c6.build_script_build.6jhpyt85-cgu.12.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde-91f43e4c85c558c6/build_script_build-91f43e4c85c558c6.build_script_build.6jhpyt85-cgu.13.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde-91f43e4c85c558c6/build_script_build-91f43e4c85c558c6.build_script_build.6jhpyt85-cgu.14.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde-91f43e4c85c558c6/build_script_build-91f43e4c85c558c6.build_script_build.6jhpyt85-cgu.15.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde-91f43e4c85c558c6/build_script_build-91f43e4c85c558c6.build_script_build.6jhpyt85-cgu.2.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde-91f43e4c85c558c6/build_script_build-91f43e4c85c558c6.build_script_build.6jhpyt85-cgu.3.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde-91f43e4c85c558c6/build_script_build-91f43e4c85c558c6.build_script_build.6jhpyt85-cgu.4.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde-91f43e4c85c558c6/build_script_build-91f43e4c85c558c6.build_script_build.6jhpyt85-cgu.5.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde-91f43e4c85c558c6/build_script_build-91f43e4c85c558c6.build_script_build.6jhpyt85-cgu.6.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde-91f43e4c85c558c6/build_script_build-91f43e4c85c558c6.build_script_build.6jhpyt85-cgu.7.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde-91f43e4c85c558c6/build_script_build-91f43e4c85c558c6.build_script_build.6jhpyt85-cgu.8.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde-91f43e4c85c558c6/build_script_build-91f43e4c85c558c6.build_script_build.6jhpyt85-cgu.9.rcgu.o" "-o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde-91f43e4c85c558c6/build_script_build-91f43e4c85c558c6" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde-91f43e4c85c558c6/build_script_build-91f43e4c85c558c6.4rufwcutk2eijjok.rcgu.o" "-Wl,-dead_strip" "-nodefaultlibs" "-L" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/deps" "-L" "/nix/store/zhwcls14mwvawhi29j7km1vl6j2wgfnh-rust-1.48.0-2020-11-16-7eac88abb/lib/rustlib/x86_64-apple-darwin/lib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libstd-688c1376a25c049d.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-078f89c2cdb6d46b.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libobject-fec020208bc1ad3c.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libaddr2line-38540dcacc9fd218.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libgimli-6f613179f618c598.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/librustc_demangle-4d1a5d7118aaeaf2.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libhashbrown-d88fab3b1b9d8356.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_alloc-a21754532a052f2f.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libunwind-2e9ebc4127641a96.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libcfg_if-82d0f961232a05ca.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/liblibc-370b1b71f08bac3c.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/liballoc-816106c1f35f5421.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_core-20f3a030f1a56a86.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libcore-60333aa00936c5ce.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-116aaeaea873ef94.rlib" "-lSystem" "-lresolv" "-lc" "-lm"
= note: ld: file not found: /usr/lib/system/libcache.dylib for architecture x86_64
clang-7: error: linker command failed with exit code 1 (use -v to see invocation)

error: linking with cc failed: exit code: 1
|
= note: "cc" "-m64" "-arch" "x86_64" "-L" "/nix/store/zhwcls14mwvawhi29j7km1vl6j2wgfnh-rust-1.48.0-2020-11-16-7eac88abb/lib/rustlib/x86_64-apple-darwin/lib" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde_json-a9e645ccdee6161f/build_script_build-a9e645ccdee6161f.build_script_build.33u1d1x7-cgu.0.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde_json-a9e645ccdee6161f/build_script_build-a9e645ccdee6161f.build_script_build.33u1d1x7-cgu.1.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde_json-a9e645ccdee6161f/build_script_build-a9e645ccdee6161f.build_script_build.33u1d1x7-cgu.10.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde_json-a9e645ccdee6161f/build_script_build-a9e645ccdee6161f.build_script_build.33u1d1x7-cgu.11.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde_json-a9e645ccdee6161f/build_script_build-a9e645ccdee6161f.build_script_build.33u1d1x7-cgu.12.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde_json-a9e645ccdee6161f/build_script_build-a9e645ccdee6161f.build_script_build.33u1d1x7-cgu.13.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde_json-a9e645ccdee6161f/build_script_build-a9e645ccdee6161f.build_script_build.33u1d1x7-cgu.14.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde_json-a9e645ccdee6161f/build_script_build-a9e645ccdee6161f.build_script_build.33u1d1x7-cgu.15.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde_json-a9e645ccdee6161f/build_script_build-a9e645ccdee6161f.build_script_build.33u1d1x7-cgu.2.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde_json-a9e645ccdee6161f/build_script_build-a9e645ccdee6161f.build_script_build.33u1d1x7-cgu.3.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde_json-a9e645ccdee6161f/build_script_build-a9e645ccdee6161f.build_script_build.33u1d1x7-cgu.4.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde_json-a9e645ccdee6161f/build_script_build-a9e645ccdee6161f.build_script_build.33u1d1x7-cgu.5.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde_json-a9e645ccdee6161f/build_script_build-a9e645ccdee6161f.build_script_build.33u1d1x7-cgu.6.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde_json-a9e645ccdee6161f/build_script_build-a9e645ccdee6161f.build_script_build.33u1d1x7-cgu.7.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde_json-a9e645ccdee6161f/build_script_build-a9e645ccdee6161f.build_script_build.33u1d1x7-cgu.8.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde_json-a9e645ccdee6161f/build_script_build-a9e645ccdee6161f.build_script_build.33u1d1x7-cgu.9.rcgu.o" "-o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde_json-a9e645ccdee6161f/build_script_build-a9e645ccdee6161f" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/serde_json-a9e645ccdee6161f/build_script_build-a9e645ccdee6161f.54d211ftl37bwnn2.rcgu.o" "-Wl,-dead_strip" "-nodefaultlibs" "-L" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/deps" "-L" "/nix/store/zhwcls14mwvawhi29j7km1vl6j2wgfnh-rust-1.48.0-2020-11-16-7eac88abb/lib/rustlib/x86_64-apple-darwin/lib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libstd-688c1376a25c049d.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-078f89c2cdb6d46b.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libobject-fec020208bc1ad3c.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libaddr2line-38540dcacc9fd218.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libgimli-6f613179f618c598.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/librustc_demangle-4d1a5d7118aaeaf2.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libhashbrown-d88fab3b1b9d8356.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_alloc-a21754532a052f2f.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libunwind-2e9ebc4127641a96.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libcfg_if-82d0f961232a05ca.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/liblibc-370b1b71f08bac3c.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/liballoc-816106c1f35f5421.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_core-20f3a030f1a56a86.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libcore-60333aa00936c5ce.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-116aaeaea873ef94.rlib" "-lSystem" "-lresolv" "-lc" "-lm"
= note: ld: file not found: /usr/lib/system/libcache.dylib for architecture x86_64
clang-7: error: linker command failed with exit code 1 (use -v to see invocation)

error: linking with cc failed: exit code: 1
|
= note: "cc" "-m64" "-arch" "x86_64" "-L" "/nix/store/zhwcls14mwvawhi29j7km1vl6j2wgfnh-rust-1.48.0-2020-11-16-7eac88abb/lib/rustlib/x86_64-apple-darwin/lib" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/ryu-52cd892a83a19d42/build_script_build-52cd892a83a19d42.build_script_build.be9bjd81-cgu.0.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/ryu-52cd892a83a19d42/build_script_build-52cd892a83a19d42.build_script_build.be9bjd81-cgu.1.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/ryu-52cd892a83a19d42/build_script_build-52cd892a83a19d42.build_script_build.be9bjd81-cgu.10.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/ryu-52cd892a83a19d42/build_script_build-52cd892a83a19d42.build_script_build.be9bjd81-cgu.11.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/ryu-52cd892a83a19d42/build_script_build-52cd892a83a19d42.build_script_build.be9bjd81-cgu.12.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/ryu-52cd892a83a19d42/build_script_build-52cd892a83a19d42.build_script_build.be9bjd81-cgu.13.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/ryu-52cd892a83a19d42/build_script_build-52cd892a83a19d42.build_script_build.be9bjd81-cgu.14.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/ryu-52cd892a83a19d42/build_script_build-52cd892a83a19d42.build_script_build.be9bjd81-cgu.15.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/ryu-52cd892a83a19d42/build_script_build-52cd892a83a19d42.build_script_build.be9bjd81-cgu.2.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/ryu-52cd892a83a19d42/build_script_build-52cd892a83a19d42.build_script_build.be9bjd81-cgu.3.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/ryu-52cd892a83a19d42/build_script_build-52cd892a83a19d42.build_script_build.be9bjd81-cgu.4.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/ryu-52cd892a83a19d42/build_script_build-52cd892a83a19d42.build_script_build.be9bjd81-cgu.5.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/ryu-52cd892a83a19d42/build_script_build-52cd892a83a19d42.build_script_build.be9bjd81-cgu.6.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/ryu-52cd892a83a19d42/build_script_build-52cd892a83a19d42.build_script_build.be9bjd81-cgu.7.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/ryu-52cd892a83a19d42/build_script_build-52cd892a83a19d42.build_script_build.be9bjd81-cgu.8.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/ryu-52cd892a83a19d42/build_script_build-52cd892a83a19d42.build_script_build.be9bjd81-cgu.9.rcgu.o" "-o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/ryu-52cd892a83a19d42/build_script_build-52cd892a83a19d42" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/ryu-52cd892a83a19d42/build_script_build-52cd892a83a19d42.53q3um1n84o89r8p.rcgu.o" "-Wl,-dead_strip" "-nodefaultlibs" "-L" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/deps" "-L" "/nix/store/zhwcls14mwvawhi29j7km1vl6j2wgfnh-rust-1.48.0-2020-11-16-7eac88abb/lib/rustlib/x86_64-apple-darwin/lib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libstd-688c1376a25c049d.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-078f89c2cdb6d46b.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libobject-fec020208bc1ad3c.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libaddr2line-38540dcacc9fd218.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libgimli-6f613179f618c598.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/librustc_demangle-4d1a5d7118aaeaf2.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libhashbrown-d88fab3b1b9d8356.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_alloc-a21754532a052f2f.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libunwind-2e9ebc4127641a96.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libcfg_if-82d0f961232a05ca.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/liblibc-370b1b71f08bac3c.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/liballoc-816106c1f35f5421.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_core-20f3a030f1a56a86.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libcore-60333aa00936c5ce.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-116aaeaea873ef94.rlib" "-lSystem" "-lresolv" "-lc" "-lm"
= note: ld: file not found: /usr/lib/system/libcache.dylib for architecture x86_64
clang-7: error: linker command failed with exit code 1 (use -v to see invocation)

error: aborting due to previous error

error: aborting due to previous error

error: aborting due to previous error

error: linking with cc failed: exit code: 1
|
= note: "cc" "-m64" "-arch" "x86_64" "-L" "/nix/store/zhwcls14mwvawhi29j7km1vl6j2wgfnh-rust-1.48.0-2020-11-16-7eac88abb/lib/rustlib/x86_64-apple-darwin/lib" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/syn-52c621e100aefaa8/build_script_build-52c621e100aefaa8.build_script_build.9dg7v8vs-cgu.0.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/syn-52c621e100aefaa8/build_script_build-52c621e100aefaa8.build_script_build.9dg7v8vs-cgu.1.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/syn-52c621e100aefaa8/build_script_build-52c621e100aefaa8.build_script_build.9dg7v8vs-cgu.10.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/syn-52c621e100aefaa8/build_script_build-52c621e100aefaa8.build_script_build.9dg7v8vs-cgu.11.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/syn-52c621e100aefaa8/build_script_build-52c621e100aefaa8.build_script_build.9dg7v8vs-cgu.12.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/syn-52c621e100aefaa8/build_script_build-52c621e100aefaa8.build_script_build.9dg7v8vs-cgu.13.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/syn-52c621e100aefaa8/build_script_build-52c621e100aefaa8.build_script_build.9dg7v8vs-cgu.14.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/syn-52c621e100aefaa8/build_script_build-52c621e100aefaa8.build_script_build.9dg7v8vs-cgu.15.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/syn-52c621e100aefaa8/build_script_build-52c621e100aefaa8.build_script_build.9dg7v8vs-cgu.2.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/syn-52c621e100aefaa8/build_script_build-52c621e100aefaa8.build_script_build.9dg7v8vs-cgu.3.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/syn-52c621e100aefaa8/build_script_build-52c621e100aefaa8.build_script_build.9dg7v8vs-cgu.4.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/syn-52c621e100aefaa8/build_script_build-52c621e100aefaa8.build_script_build.9dg7v8vs-cgu.5.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/syn-52c621e100aefaa8/build_script_build-52c621e100aefaa8.build_script_build.9dg7v8vs-cgu.6.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/syn-52c621e100aefaa8/build_script_build-52c621e100aefaa8.build_script_build.9dg7v8vs-cgu.7.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/syn-52c621e100aefaa8/build_script_build-52c621e100aefaa8.build_script_build.9dg7v8vs-cgu.8.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/syn-52c621e100aefaa8/build_script_build-52c621e100aefaa8.build_script_build.9dg7v8vs-cgu.9.rcgu.o" "-o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/syn-52c621e100aefaa8/build_script_build-52c621e100aefaa8" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/syn-52c621e100aefaa8/build_script_build-52c621e100aefaa8.3kbbhjvelqhiyswk.rcgu.o" "-Wl,-dead_strip" "-nodefaultlibs" "-L" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/deps" "-L" "/nix/store/zhwcls14mwvawhi29j7km1vl6j2wgfnh-rust-1.48.0-2020-11-16-7eac88abb/lib/rustlib/x86_64-apple-darwin/lib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libstd-688c1376a25c049d.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-078f89c2cdb6d46b.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libobject-fec020208bc1ad3c.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libaddr2line-38540dcacc9fd218.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libgimli-6f613179f618c598.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/librustc_demangle-4d1a5d7118aaeaf2.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libhashbrown-d88fab3b1b9d8356.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_alloc-a21754532a052f2f.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libunwind-2e9ebc4127641a96.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libcfg_if-82d0f961232a05ca.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/liblibc-370b1b71f08bac3c.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/liballoc-816106c1f35f5421.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_core-20f3a030f1a56a86.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libcore-60333aa00936c5ce.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-116aaeaea873ef94.rlib" "-lSystem" "-lresolv" "-lc" "-lm"
= note: ld: file not found: /usr/lib/system/libcache.dylib for architecture x86_64
clang-7: error: linker command failed with exit code 1 (use -v to see invocation)

error: aborting due to previous error

error: linking with cc failed: exit code: 1
|
= note: "cc" "-m64" "-arch" "x86_64" "-L" "/nix/store/zhwcls14mwvawhi29j7km1vl6j2wgfnh-rust-1.48.0-2020-11-16-7eac88abb/lib/rustlib/x86_64-apple-darwin/lib" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/proc-macro2-1e9854f31a17fa19/build_script_build-1e9854f31a17fa19.build_script_build.22z4ff4z-cgu.0.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/proc-macro2-1e9854f31a17fa19/build_script_build-1e9854f31a17fa19.build_script_build.22z4ff4z-cgu.1.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/proc-macro2-1e9854f31a17fa19/build_script_build-1e9854f31a17fa19.build_script_build.22z4ff4z-cgu.10.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/proc-macro2-1e9854f31a17fa19/build_script_build-1e9854f31a17fa19.build_script_build.22z4ff4z-cgu.11.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/proc-macro2-1e9854f31a17fa19/build_script_build-1e9854f31a17fa19.build_script_build.22z4ff4z-cgu.12.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/proc-macro2-1e9854f31a17fa19/build_script_build-1e9854f31a17fa19.build_script_build.22z4ff4z-cgu.13.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/proc-macro2-1e9854f31a17fa19/build_script_build-1e9854f31a17fa19.build_script_build.22z4ff4z-cgu.14.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/proc-macro2-1e9854f31a17fa19/build_script_build-1e9854f31a17fa19.build_script_build.22z4ff4z-cgu.15.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/proc-macro2-1e9854f31a17fa19/build_script_build-1e9854f31a17fa19.build_script_build.22z4ff4z-cgu.2.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/proc-macro2-1e9854f31a17fa19/build_script_build-1e9854f31a17fa19.build_script_build.22z4ff4z-cgu.3.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/proc-macro2-1e9854f31a17fa19/build_script_build-1e9854f31a17fa19.build_script_build.22z4ff4z-cgu.4.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/proc-macro2-1e9854f31a17fa19/build_script_build-1e9854f31a17fa19.build_script_build.22z4ff4z-cgu.5.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/proc-macro2-1e9854f31a17fa19/build_script_build-1e9854f31a17fa19.build_script_build.22z4ff4z-cgu.6.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/proc-macro2-1e9854f31a17fa19/build_script_build-1e9854f31a17fa19.build_script_build.22z4ff4z-cgu.7.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/proc-macro2-1e9854f31a17fa19/build_script_build-1e9854f31a17fa19.build_script_build.22z4ff4z-cgu.8.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/proc-macro2-1e9854f31a17fa19/build_script_build-1e9854f31a17fa19.build_script_build.22z4ff4z-cgu.9.rcgu.o" "-o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/proc-macro2-1e9854f31a17fa19/build_script_build-1e9854f31a17fa19" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/proc-macro2-1e9854f31a17fa19/build_script_build-1e9854f31a17fa19.4jooj4v9aixsx3dz.rcgu.o" "-Wl,-dead_strip" "-nodefaultlibs" "-L" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/deps" "-L" "/nix/store/zhwcls14mwvawhi29j7km1vl6j2wgfnh-rust-1.48.0-2020-11-16-7eac88abb/lib/rustlib/x86_64-apple-darwin/lib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libstd-688c1376a25c049d.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-078f89c2cdb6d46b.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libobject-fec020208bc1ad3c.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libaddr2line-38540dcacc9fd218.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libgimli-6f613179f618c598.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/librustc_demangle-4d1a5d7118aaeaf2.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libhashbrown-d88fab3b1b9d8356.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_alloc-a21754532a052f2f.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libunwind-2e9ebc4127641a96.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libcfg_if-82d0f961232a05ca.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/liblibc-370b1b71f08bac3c.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/liballoc-816106c1f35f5421.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_core-20f3a030f1a56a86.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libcore-60333aa00936c5ce.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-116aaeaea873ef94.rlib" "-lSystem" "-lresolv" "-lc" "-lm"
= note: ld: file not found: /usr/lib/system/libcache.dylib for architecture x86_64
clang-7: error: linker command failed with exit code 1 (use -v to see invocation)

error: aborting due to previous error

error: linking with cc failed: exit code: 1
|
= note: "cc" "-m64" "-arch" "x86_64" "-L" "/nix/store/zhwcls14mwvawhi29j7km1vl6j2wgfnh-rust-1.48.0-2020-11-16-7eac88abb/lib/rustlib/x86_64-apple-darwin/lib" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/libc-a299a523c5baf609/build_script_build-a299a523c5baf609.build_script_build.bf1ghira-cgu.0.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/libc-a299a523c5baf609/build_script_build-a299a523c5baf609.build_script_build.bf1ghira-cgu.1.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/libc-a299a523c5baf609/build_script_build-a299a523c5baf609.build_script_build.bf1ghira-cgu.10.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/libc-a299a523c5baf609/build_script_build-a299a523c5baf609.build_script_build.bf1ghira-cgu.11.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/libc-a299a523c5baf609/build_script_build-a299a523c5baf609.build_script_build.bf1ghira-cgu.12.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/libc-a299a523c5baf609/build_script_build-a299a523c5baf609.build_script_build.bf1ghira-cgu.13.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/libc-a299a523c5baf609/build_script_build-a299a523c5baf609.build_script_build.bf1ghira-cgu.14.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/libc-a299a523c5baf609/build_script_build-a299a523c5baf609.build_script_build.bf1ghira-cgu.15.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/libc-a299a523c5baf609/build_script_build-a299a523c5baf609.build_script_build.bf1ghira-cgu.2.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/libc-a299a523c5baf609/build_script_build-a299a523c5baf609.build_script_build.bf1ghira-cgu.3.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/libc-a299a523c5baf609/build_script_build-a299a523c5baf609.build_script_build.bf1ghira-cgu.4.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/libc-a299a523c5baf609/build_script_build-a299a523c5baf609.build_script_build.bf1ghira-cgu.5.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/libc-a299a523c5baf609/build_script_build-a299a523c5baf609.build_script_build.bf1ghira-cgu.6.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/libc-a299a523c5baf609/build_script_build-a299a523c5baf609.build_script_build.bf1ghira-cgu.7.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/libc-a299a523c5baf609/build_script_build-a299a523c5baf609.build_script_build.bf1ghira-cgu.8.rcgu.o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/libc-a299a523c5baf609/build_script_build-a299a523c5baf609.build_script_build.bf1ghira-cgu.9.rcgu.o" "-o" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/libc-a299a523c5baf609/build_script_build-a299a523c5baf609" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/build/libc-a299a523c5baf609/build_script_build-a299a523c5baf609.s57dhbycwv55o6y.rcgu.o" "-Wl,-dead_strip" "-nodefaultlibs" "-L" "/Users/agonc/Desktop/projects/pescadata/pescadata-holo-demo/dna/simple/tests/../target/release/deps" "-L" "/nix/store/zhwcls14mwvawhi29j7km1vl6j2wgfnh-rust-1.48.0-2020-11-16-7eac88abb/lib/rustlib/x86_64-apple-darwin/lib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libstd-688c1376a25c049d.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-078f89c2cdb6d46b.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libobject-fec020208bc1ad3c.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libaddr2line-38540dcacc9fd218.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libgimli-6f613179f618c598.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/librustc_demangle-4d1a5d7118aaeaf2.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libhashbrown-d88fab3b1b9d8356.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_alloc-a21754532a052f2f.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libunwind-2e9ebc4127641a96.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libcfg_if-82d0f961232a05ca.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/liblibc-370b1b71f08bac3c.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/liballoc-816106c1f35f5421.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_core-20f3a030f1a56a86.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libcore-60333aa00936c5ce.rlib" "/nix/store/a1ps7c20f0xb3vd03g6fyi0wn1lsblbi-rust/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-116aaeaea873ef94.rlib" "-lSystem" "-lresolv" "-lc" "-lm"
= note: ld: file not found: /usr/lib/system/libcache.dylib for architecture x86_64
clang-7: error: linker command failed with exit code 1 (use -v to see invocation)

error: aborting due to previous error

error: build failed
error Command failed with exit code 101.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

SkunkError cleanup

SkunkError was a direct port of HolochainError, used just to get the initial chunks of holochain_rust code pulled in quickly. As we decide which existing code to use or not use, we can let that code return errors of more specific types, such as CellError, ConductorError, DatabaseError, etc.

invoking call_remote in a callee function of another call_remote makes tryorama timeout after 125 seconds.

I have two functions here

pub(crate) fn send_request_to_chat(agent: AgentPubKey) -> ExternResult<HeaderHash> {
    // create a grant and claim to receive message from the receiver
    let cap_claim = create_cap_grant_and_return_claim(agent.clone())?;
    let my_key = agent_info!()?.agent_latest_pubkey;
    let claim_from = ClaimFrom(cap_claim, my_key);
    match call_remote!(
        agent.clone(),
        zome_info!()?.zome_name,
        "receive_request_to_chat".to_string().into(),
        None,
        claim_from.try_into()?
    )? {
        ZomeCallResponse::Ok(payload) => {
            let claim: CapClaim = payload.into_inner().try_into()?;
            Ok(create_cap_claim!(claim)?)
        },
        ZomeCallResponse::Unauthorized => Err(HdkError::Wasm(WasmError::Zome(
            "{\"code\": \"000\", \"message\": \"[Unauthorized] Accept Request\"}".to_owned(),
        )))
    }
}

pub(crate) fn receive_request_to_chat(claim_from: ClaimFrom) -> ExternResult<CapClaim> {
    // commit the claim received from sender
    create_cap_claim!(claim_from.0)?;
    
    let in_contacts = match call_remote!(
        agent_info!()?.agent_latest_pubkey,
        "contacts".into(),
        "in_contacts".into(),
        None,
        claim_from.1.clone().try_into()?
    )? {
        ZomeCallResponse::Ok(output) => {
            let bool_wrapper: BooleanWrapper = output.into_inner().try_into()?;
            Ok(bool_wrapper)
        },
        ZomeCallResponse::Unauthorized => crate::error("unauthorized access")
    };
    if let true = in_contacts?.0 {
        Ok(create_cap_grant_and_return_claim(claim_from.1)?)
    } else {
        // currently blocks any attempt to message if not in conctacts.
        crate::error("agent is not in the contacts")
    }
}

Apology for pasting the functions we have, but the basic idea is

  • there exists function A and function B (both exist in zome 1) and function C (exist in zome 2)
  • Alice calls functions A which call_remote to function B in bobbo's cell
  • function B in bobbo's cell call_remote to function C in same agent but different zome (inter zome call) to check something

when I test this in tryorama, the returned error is just

[tryorama] error: 
The following conductors were forcefully shutdown after 125 seconds of no activity:

The only work around for me is to copy paste the function C from zome 2 to zome 1 but I certainly do not want to do it because I intentionally separated those functions because they are not in the same scope.

Any idea on how to work around this would be appreciated.
Thanks!

`call_remote` with `AgentPubKey` as payload fails

Here is the code I'm using:

    let agent_info = agent_info()?;

    let zome_info = zome_info()?;
    
    let response = call_remote(
        market_node,
        zome_info.zome_name,
        FunctionName(HANDLE_BIDDER_ASSOCIATON_FN_NAME.into()),
        None,
        &agent_info.agent_initial_pubkey,
    )?;

And this is the error I'm getting when executing it:

{
  type: 'error',
  data: {
    type: 'ribosome_error',
    data: `Wasm error while working with Ribosome: Zome("inner function \\'associate_with_market\\' failed: SerializedBytes(FromBytes(\\"wrong msgpack marker Array16\\"))")`
  }
}

I've verified that the agent public key is well formed and that the receiving function has an AgentPubKey as parameter.

Ability to initialize lmdb environment automatically

Currently when the conductor starts up if there is no environment at the directory specified in the config file, the conductor panics with:

FATAL PANIC PanicInfo {
    payload: Any,
    message: Some(
        Could not initialize Conductor from configuration: DatabaseError(EnvironmentMissing("/var/lib/holochain-rsm/databases/conductor")),
    ),
    location: Location {
        file: "crates/holochain/src/bin/holochain/main.rs",
        line: 143,
        col: 5,
    },
}

We also need a non-interactive way to create the environment. I would suggest that in this case (i.e. valid config file), it simply creates the environment at the specified path.

How to generate the docs and run tests

A CONTRIBUTOR.md with a tool list and minimal command-line examples would be enough to get me going.

Even to someone who knows rust, it is not always obvious whether the tests are just cargo test or something else such as hc test. Seemingly simple documentation can add a lot of determinism to someone's mental model.

Intra-crate cleanup

  • Cargo.toml has correct description
  • Crates are named holochain_*
  • Unused crate deps removed (maybe)
  • Standard files in place (per crate, or for entire repo?)
    • README.md
    • LICENSE.md
    • CONTRIBUTING.md

Running selected test from holochain crate requires explicit compilation of wasms before.

Description

When running a selected test from crates/holochain, for example:

cargo test -- --exact conductor::api::api_external::admin_interface::test::register_list_dna_app

I get an error:

running 1 test
test conductor::api::api_external::admin_interface::test::register_list_dna_app ... FAILED

failures:

---- conductor::api::api_external::admin_interface::test::register_list_dna_app stdout ----
FATAL PANIC PanicInfo {
    payload: Any,
    message: Some(
        Wasm: "/root/holochain/.wasm_target/wasm32-unknown-unknown/release/test_wasm_foo.wasm" was not found. Maybe you need to build the test wasms
        
                Run `cargo build --features 'build_wasms' --manifest-path=crates/holochain/Cargo.toml`
                or pass the feature flag to `cargo test`
                : Os { code: 2, kind: NotFound, message: "No such file or directory" },
    ),
    location: Location {
        file: "crates/test_utils/wasm/./src/lib.rs",
        line: 214,
        col: 25,
    },
}
thread 'conductor::api::api_external::admin_interface::test::register_list_dna_app' panicked at 'Wasm: "/root/holochain/.wasm_target/wasm32-unknown-unknown/release/test_wasm_foo.

        Run `cargo build --features 'build_wasms' --manifest-path=crates/holochain/Cargo.toml`
        or pass the feature flag to `cargo test`
        : Os { code: 2, kind: NotFound, message: "No such file or directory" }', crates/test_utils/wasm/./src/lib.rs:214:25
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    conductor::api::api_external::admin_interface::test::register_list_dna_app

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 226 filtered out

Following cargo's advice and running cargo build --features 'build_wasms' --manifest-path=crates/holochain/Cargo.toml fixes an issue and I can successfully run selected test.

How to reproduce

Check out rev 9180f0841419d71f5862161209d86e6c9af7bc27 of holochain and run cargo test register_list_dna_app.

Environment:

  • Observed on both Darwin and Linux
  • holochain rev 9180f0841419d71f5862161209d86e6c9af7bc27

Clarification on atomic write locking / auto retrying in the case of write collisions

For my use case of deferred non-agent-node users I am interested in the working of parallel atomic write locking, as stated in this 'unpacking' blog post:

Concurrency is also enhanced by causing workflows to produce all their changes in a scratch space and allowing them read-only access to Holochain while doing so. Then at the end of their processing, we grab a lock for a very brief, atomic write transaction to the data sources and flush the changes from the scratch space to the underlying tables. We also guarantee that if multiple processes are attempting to write to the source chain, only the one to finish first will succeed, requiring the others to retry their validation on top of the newly updated local state.

This retrying process, is it automatic, perhaps with a MAX_TRIES configuration, or is it left up to the (client) caller to perform the retry?

I'm asking because I would like 100+ users to issue calls to a Holochain node and write entries, and I'm hoping that retrying is not left up to the client...

macos compilation issues (numerous users have reported on forum and discord)

If I use holonix, and try to run inside it

REV=15dd4ba75ae02d02b48a05da012e8fbeabe2f48e

cargo install --force holochain \
  --git https://github.com/holochain/holochain.git \
  --rev $REV

this will lead to producing an error like this:

Compiling lair_keystore_client v0.0.1-alpha.8
   Compiling holochain_wasmer_host v0.0.50
error: linking with `cc` failed: exit code: 1
  |
  = note: "cc" "-m64" "-L" "/nix/sto 
...
...
...
re/c1spfc6wbipbk64akin9lsf3hihf12gy-rust/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-f0244eb4ede32fb8.rlib" "-framework" "Security" "-framework" "Security" "-lSystem" "-lresolv" "-lc" "-lm"
  = note: ld: framework not found Security
          clang-7: error: linker command failed with exit code 1 (use -v to see invocation)
          

error: aborting due to previous error

error: could not compile `lair_keystore_client`.

This is being experienced by myself on MacOS Big Sur, and also Tats reports seeing it on Catalina.

There is a post by Kristofer on the forum on this as well:
https://forum.holochain.org/t/holochain-rsm-on-macos/4435/5
and a post by @tatssato on Discord about this as well:
https://discord.com/channels/727959104777224303/728647693244694648/788278575916777472

Passing multiple functions in create_cap_grant macro and calling one of those function corrupts the database

This issue is not urgent but I found it coincidentally when I was fiddling with create_cap_grant.

I tried passing multiple functions in to the functions argument of create_cap_grant! macro and tested if it will be executed properly in tryorama. the macro looks like this

#[hdk_extern]
fn create_cap_grant(_: ()) -> ExternResult<()> {
    let mut functions: GrantedFunctions = HashSet::new();
    functions.insert((zome_info!()?.zome_name, "get_links_from_foo".into()));
    functions.insert((zome_info!()?.zome_name, "create_foofoo_and_link".into()));
    create_cap_grant!(
        CapGrantEntry {
            tag: "".into(),
            // empty access converts to unrestricted
            access: ().into(),
            functions,
        }
    )?;
    Ok(())
}

// showing create_foofoo_and_link since that is the only relevant function here
#[hdk_extern]
fn create_foofoo_and_link(_: ()) -> ExternResult<FooFoo> {
    let foofoo = FooFoo("foofoo".to_owned());
    let barbar = BarBar("barbar".to_owned());
    let base_hash = hash_entry!(&foofoo)?;
    let target_hash = hash_entry!(&barbar)?;
    create_entry!(&foofoo)?;
    create_entry!(&barbar)?;
    create_link!(
        base_hash,
        target_hash,
        LinkTag::new("foofoo->barbar")
    )?;
    Ok(foofoo)
}

// Then i have a call_remote to `create_foofoo_and_link`
#[hdk_extern]
fn commit_foofoo_remotely(agent: AgentPubKey) -> ExternResult<FooFoo> {
    let function = zome::FunctionName("create_foofoo_and_link".to_owned());

    match call_remote!(
        agent,
        zome_info!()?.zome_name,
        function,
        None,
        ().try_into()?
    )? {
        ZomeCallResponse::Ok(output) => {
            let sb = output.into_inner();
            let foofoo: FooFoo = sb.try_into()?;
            Ok(foofoo)
        },
        ZomeCallResponse::Unauthorized => {
            Err(HdkError::Wasm(WasmError::Zome(
                "this agent has no proper authorization".to_owned()
            )))
        },
    }
}

The test scenario is,

  1. bobbo commits cap grant
  2. alice calls commit_foofoo_remotely
orchestrator.registerScenario('Scenario 9: creating private entries remotely', async (s, t) => {
  const { conductor } = await s.players({ conductor: config })
  await conductor.spawn()

  const [dna_hash_2, agent_pubkey_bobby] = conductor.cellId('bobbo');
  
  let grant = await conductor.call("bobbo", "zomeone", "create_cap_grant", null);
  await delay(1000);
  let foofoo = await conductor.call("alice", "zomeone", "commit_foofoo_remotely", agent_pubkey_bobby);

  await delay(1000);
  t.ok(foofoo);
});

Now, testing this in tryorama shows this error when alice calls commit_foofoo_remotely (i think) which tells that the database is corrupted.
image

Important note is that, this error only happens when I am calling remotely (to another cell) to a function that actually creates an entry (in the above case the create_foofoo_and_link). It seems like it has something to do with hashes not being equal (maybe because I included 2 functions in cap grant) but more than that, I don't really know the reason.

Again, this is not blocking me in any part of the dev but I thought it was worth it to leave a record of this here (just in case people start passing multiple functions into one cap grant in the future and one of those functions actually commit an entry).

Corner-case failure running `cargo test` on develop

Ran on develop (commit e773d6d)

This issue is more of an FYI because the tests passed on subsequent runs. Since random failures are hard to reproduce, I thought it would be important to capture this one.

test core::ribosome::host_fn::remove_link::slow_tests::ribosome_remove_link_add_remove ... ok

failures:

---- core::ribosome::guest_callback::migrate_agent::slow_tests::test_migrate_agent_multi_implemented_fail stdout ----
FATAL PANIC PanicInfo {
    payload: Any,
    message: Some(
        index 184320 out of range for slice of length 6317,
    ),  
    location: Location {
        file: "/rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libcore/slice/mod.rs",
        line: 1034,
        col: 11,
    },  
}   
thread 'core::ribosome::guest_callback::migrate_agent::slow_tests::test_migrate_agent_multi_implemented_fail' panicked at 'index 184320 out of range for slice of length 6317', /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libcore/slice/mod.rs:1034:11
stack backtrace:
   0: backtrace::backtrace::libunwind::trace
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/libunwind.rs:86
   1: backtrace::backtrace::trace_unsynchronized
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/mod.rs:66
   2: std::sys_common::backtrace::_print_fmt
             at src/libstd/sys_common/backtrace.rs:78
   3: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
             at src/libstd/sys_common/backtrace.rs:59
   4: core::fmt::write
             at src/libcore/fmt/mod.rs:1069
   5: std::io::Write::write_fmt
             at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/io/mod.rs:1504
   6: std::io::impls::<impl std::io::Write for alloc::boxed::Box<W>>::write_fmt
             at src/libstd/io/impls.rs:156
   7: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:62
   8: std::sys_common::backtrace::print
             at src/libstd/sys_common/backtrace.rs:49
   9: std::panicking::default_hook::{{closure}}
             at src/libstd/panicking.rs:198
  10: std::panicking::default_hook
             at src/libstd/panicking.rs:215
  11: <alloc::boxed::Box<F> as core::ops::function::Fn<A>>::call
             at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/liballoc/boxed.rs:1022
  12: <holochain_state::env::ENVIRONMENTS as core::ops::deref::Deref>::deref::__static_ref_initialize::{{closure}}
             at crates/state/src/env.rs:41
  13: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:515
  14: rust_begin_unwind
             at src/libstd/panicking.rs:419
  15: core::panicking::panic_fmt
             at src/libcore/panicking.rs:111
  16: core::slice::slice_index_len_fail
             at src/libcore/slice/mod.rs:2751
  17: <serde_bytes::bytebuf::ByteBuf as serde::de::Deserialize>::deserialize
  18: <wasmer_runtime_core::sys::<impl serde::de::Deserialize for wasmer_runtime_core::sys::unix::memory::Memory>::deserialize::MemoryVisitor as serde::de::Visitor>::visit_seq
  19: wasmer_runtime_core::cache::_IMPL_DESERIALIZE_FOR_ArtifactInner::<impl serde::de::Deserialize for wasmer_runtime_core::cache::ArtifactInner>::deserialize
  20: wasmer_runtime_core::cache::Artifact::deserialize
  21: <wasmer_runtime::cache::FileSystemCache as wasmer_runtime::cache::Cache>::load_with_backend
  22: <holochain_wasmer_host::memory_cache::MemoryFallbackFileSystemCache as wasmer_runtime::cache::Cache>::load_with_backend
  23: <holochain_wasmer_host::memory_cache::MemoryFallbackFileSystemCache as wasmer_runtime::cache::Cache>::load
  24: holochain_wasmer_host::instantiate::module
             at /home/matthew/projects/holochain-2020/.cargo/registry/src/github.com-1ecc6299db9ec823/holochain_wasmer_host-0.0.40/src/instantiate.rs:21
  25: holochain::core::ribosome::wasm_ribosome::WasmRibosome::module
             at crates/holochain/src/core/ribosome/wasm_ribosome.rs:102
  26: <holochain::fixt::WasmRibosomeFixturator<holochain::fixt::curve::Zomes> as core::iter::traits::iterator::Iterator>::next
             at crates/holochain/src/fixt.rs:81
  27: holochain::core::ribosome::guest_callback::migrate_agent::slow_tests::test_migrate_agent_multi_implemented_fail::{{closure}}
             at crates/holochain/src/core/ribosome/guest_callback/migrate_agent.rs:314
  28: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
             at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libcore/future/mod.rs:66
  29: tokio::runtime::enter::Enter::block_on::{{closure}}
             at /home/matthew/projects/holochain-2020/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/runtime/enter.rs:160
  30: tokio::coop::with_budget::{{closure}}
             at /home/matthew/projects/holochain-2020/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/coop.rs:127
  31: std::thread::local::LocalKey<T>::try_with
             at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/thread/local.rs:263
  32: std::thread::local::LocalKey<T>::with
             at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/thread/local.rs:239
  33: tokio::coop::with_budget
             at /home/matthew/projects/holochain-2020/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/coop.rs:120
  34: tokio::coop::budget
             at /home/matthew/projects/holochain-2020/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/coop.rs:96
  35: tokio::runtime::enter::Enter::block_on
             at /home/matthew/projects/holochain-2020/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/runtime/enter.rs:160
  36: tokio::runtime::thread_pool::ThreadPool::block_on
             at /home/matthew/projects/holochain-2020/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/runtime/thread_pool/mod.rs:82
  37: tokio::runtime::Runtime::block_on::{{closure}}
             at /home/matthew/projects/holochain-2020/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/runtime/mod.rs:446
  38: tokio::runtime::context::enter   
             at /home/matthew/projects/holochain-2020/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/runtime/context.rs:72
  39: tokio::runtime::handle::Handle::enter
             at /home/matthew/projects/holochain-2020/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/runtime/handle.rs:76
  40: tokio::runtime::Runtime::block_on
             at /home/matthew/projects/holochain-2020/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/runtime/mod.rs:441
  41: holochain::core::ribosome::guest_callback::migrate_agent::slow_tests::test_migrate_agent_multi_implemented_fail
             at crates/holochain/src/core/ribosome/guest_callback/migrate_agent.rs:309
  42: holochain::core::ribosome::guest_callback::migrate_agent::slow_tests::test_migrate_agent_multi_implemented_fail::{{closure}}
             at crates/holochain/src/core/ribosome/guest_callback/migrate_agent.rs:309
  43: core::ops::function::FnOnce::call_once
             at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libcore/ops/function.rs:232
  44: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
             at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/liballoc/boxed.rs:1008
  45: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/panic.rs:318
  46: std::panicking::try::do_call
             at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/panicking.rs:331
  47: std::panicking::try
             at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/panicking.rs:274
  48: std::panic::catch_unwind
             at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/panic.rs:394
  49: test::run_test_in_process
             at src/libtest/lib.rs:541 
  50: test::run_test::run_test_inner::{{closure}}
             at src/libtest/lib.rs:450 
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

failures:
    core::ribosome::guest_callback::migrate_agent::slow_tests::test_migrate_agent_multi_implemented_fail

test result: FAILED. 170 passed; 1 failed; 18 ignored; 0 measured; 0 filtered out

error: test failed, to rerun pass '-p holochain --lib'

cc @maackle

hc-merge-test fails!

failures:
conductor::compat::tests::test_build_conductor_from_legacy_regression
core::workflow::sys_validation_workflow::tests::sys_validation_workflow_test

Is this expected? Have I got something wrong?

munging of data across multiple cells: error during dispatching network event

Description:

It appears that in cases where multiple cells have been installed, that holochain mixes the agent id from one with the cell ID of another.

Symptom:

In the log you can see this error

Nov 24 15:21:10 hpos holochain[2921]: Nov 24 15:21:10.487 ERROR holochain::conductor::conductor: error dispatching network event error=CellMissing(CellId(DnaHash(uhC0kwcWdqG8ni47iN3zLhrSxW-00vrMB9Nl_HS8oNDuTx2LZCWby), AgentPubKey(uhCAk-9gs0h9QNsffOaIbHmACfbtdulmLmRjYqp9Lg8_60pUTRQ3e)))

The currently installed cells (as shown by hc-state) are:

[root@hpos:~]# hc-state -c
Connecting to holochain
Successfully connected to admin interface on port 4444
Installed CellIds:
[
  [
    'hC0kwcWdqG8ni47iN3zLhrSxW+00vrMB9Nl/HS8oNDuTx2LZCWby',
    'hCAkYAj9JsKsSira4xQpZp4oEZ65w/cbCGJdToxlOqQ3BTPGIbJz'
  ],
  [
    'hC0kqcfqvJ8krBR0bNnPsmLtFiEiMOHM0fX+U8FW+ROc7P10tUdc',
    'hCAk+9gs0h9QNsffOaIbHmACfbtdulmLmRjYqp9Lg8/60pUTRQ3e'
  ]
]

Note that the missing cell ID is a cross between the two cells.

Details

  • Holochain rev: 2dfe85d
  • Context
    • holoport running #625 in which two instances of elemental chat had been installed (each with a different installed app id)
[root@hpos:~]# hc-state -a
Connecting to holochain
Successfully connected to admin interface on port 4444
Active App Ids:
[ 'elemental-chat:1', 'elemental-chat:alpha1' ]
  • NO UI is connected, this log error after a restart of holochain. There has been data added to the cells, so dht integration and network action is happening.

Holochain fails to start if proxy server is down

Issue

  • Holochain was failing to start. Error message was something related to KitsuneP2P
  • We noticed that proxy server had been stopped
  • Once proxy server was started, Holochain could start again

Also found when proxy server is started but busy:

here's a sample error:

Dec 23 15:46:58 hpos holochain[27636]: FATAL PANIC PanicInfo {
Dec 23 15:46:58 hpos holochain[27636]:     payload: Any,
Dec 23 15:46:58 hpos holochain[27636]:     message: Some(
Dec 23 15:46:58 hpos holochain[27636]:         Could not initialize Conductor from configuration: HolochainP2pError(OtherKitsuneP2pError(TransportError(Other(ConnectionClosed(ConnectionClose { error_code: SERVER_BUSY, frame_type: None, reason: b"" }))))),
Dec 23 15:46:58 hpos holochain[27636]:     ),
Dec 23 15:46:58 hpos holochain[27636]:     location: Location {
Dec 23 15:46:58 hpos holochain[27636]:         file: "crates/holochain/src/bin/holochain/main.rs",
Dec 23 15:46:58 hpos holochain[27636]:         line: 133,
Dec 23 15:46:58 hpos holochain[27636]:         col: 10,
Dec 23 15:46:58 hpos holochain[27636]:     },
Dec 23 15:46:58 hpos holochain[27636]: }

Environment:

  • HoloPort following channel 651

`remote_call` should function as bridge across DNAs (not just zomes)

Request: Expand remote_call functionality to act as a bridge between DNAs (...or create an alternative bridging mechanism).

Pull/Context: Holo Hosting - Currently, the holo-hosting-app dna depends on a bridge-style functionality in order to directly call and set happ bundle preferences in the servicelogger dna associated with that happ bundle.

Seeing DB corruption in CasBufUsedSync::get, trying to do a CapGrant

Intermittently during Javascript testing of a Zome, I see the following failure while trying to do a CapGrant during the Zome's fn init( _: () ):

★ thread 'holochain-tokio-thread' panicked at 'Holochain detected database corruption.
★
★ Corrupt module: CasBufUsedSync::get
★ Expected hash: [132, 33, 36, 136, 181, 215, 48, 179, 69, 97, 244, 50, 224, 38, 215, 215, 228, 106, 136, 29, 210, 99, 35, 143, 3, 228, 213, 235, 181, 77, 184, 195, 73, 56, 124, 204, 195, 167, 9]
★ Actual hash: [132, 33, 36, 50, 150, 172, 101, 76, 225, 68, 3, 255, 214, 74, 213, 28, 216, 28, 109, 127, 19, 11, 171, 152, 154, 12, 182, 29, 242, 244, 193, 234, 43, 4, 205, 106, 25, 124, 240]
★ Content: CapGrant(ZomeCallCapGrant { tag: "", access: Unrestricted, functions: {(ZomeName("mutualcredit"), FunctionName("authorize")), (ZomeName("mutualcredit"), FunctionName("transfer_authorized"))} }\
)
★
★ We are shutting down as a precaution to prevent further corruption.', /tmp/nix-build-holochain.drv-1/source/crates/holochain_lmdb/src/buffer/cas/buf_sync.rs:107:9
★ stack backtrace:
★
08:21:42 ^[[32minfo^[[39m:
☯☯☯ {{{CONDUCTOR c0}}}
☯    0: rust_begin_unwind
☯    1: std::panicking::begin_panic_fmt
☯    2: holochain_lmdb::buffer::cas::buf_sync::CasBufUsedSync<C,P>::deserialize_and_hash
☯    3: holochain_lmdb::buffer::
08:21:42 ^[[32minfo^[[39m:
☸☸☸ {{{CONDUCTOR c0}}}
☸ cas::buf_sync::CasBufFreshSync<C,P>::get
☸    4: holochain_state::element_buf::ElementBuf<P>::get_entry
☸    5: holochain_state::source_chain::SourceChain::query
☸    6: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
☸    7: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
☸    8: std::thread::local::LocalKey<T>::with
☸    9: tokio::runtime::enter::Enter::block_on
☸   10: tokio::runtime::handle::Handle::block_on
☸   11: tokio::runtime::thread_pool::worker::block_in_place
☸   12: holochain::core::ribosome::host_fn::query::query
☸   13: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
☸   14: std::panicking::try
☸   15: <FN as wasmer_runtime_core::typed_func::HostFunction<wasmer_runtime_core::typed_func::
08:21:42 ^[[32minfo^[[39m:
☮☮☮ {{{CONDUCTOR c0}}}
☮ ExplicitVmCtx,A,Rets>>::to_raw::wrap
☮   16: <unknown>
☮ note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
☮
08:21:42 [tryorama] ^[[31merror^[[39m: Test error: {
  type: 'error',
  data: {
    type: 'ribosome_error',
    data: 'Wasm error while working with Ribosome: CallError("RuntimeError: \\"Holochain detected database corruption.\\n\\nCorrupt module: CasBufUsedSync::get\\nExpected hash: [132, 33, 36, 136, 181, 21\
5, 48, 179, 69, 97, 244, 50, 224, 38, 215, 215, 228, 106, 136, 29, 210, 99, 35, 143, 3, 228, 213, 235, 181, 77, 184, 195, 73, 56, 124, 204, 195, 167, 9]\\nActual hash: [132, 33, 36, 50, 150, 172, 101, 76\
, 225, 68, 3, 255, 214, 74, 213, 28, 216, 28, 109, 127, 19, 11, 171, 152, 154, 12, 182, 29, 242, 244, 193, 234, 43, 4, 205, 106, 25, 124, 240]\\nContent: CapGrant(ZomeCallCapGrant { tag: \\"\\", access: \
Unrestricted, functions: {(ZomeName(\\"mutualcredit\\"), FunctionName(\\"authorize\\")), (ZomeName(\\"mutualcredit\\"), FunctionName(\\"transfer_authorized\\"))} })\\n\\nWe are shutting down as a precaut\
ion to prevent further corruption.\\"")'
  }
}

call_remote!() with same agent key to a different zome fails when the callee function tries to fetch an entry committed by another agent through get_links! and get!

I have two zomes in one cell, zomeone and zometwo.
zomeone has create_foo and get_author_of_foo zome fn.
zometwo has get_author_of_foo_from_zome_one which invokes call_remote!() to the same agent but to zomeone to call get_author_of_foo.

// zomeone

use hdk3::prelude::*;

#[hdk_entry(id = "foo", visibility = "public" )]
#[derive(Clone)]
struct Foo (String);

#[derive(Deserialize, Serialize, SerializedBytes)]
struct StringWrapper(String);

entry_defs![
    Path::entry_def(),
    Foo::entry_def()
];

#[hdk_extern]
fn create_foo(_: ()) -> ExternResult<Foo> {
    let foo = Foo("test".to_owned());
    create_entry!(foo.clone())?;
    let path = Path::from("bar".to_owned());
    path.ensure()?;
    create_link!(
        hash_entry!(path)?,
        hash_entry!(foo.clone())?,
        LinkTag::new("testing".to_owned())
    )?;
    Ok(foo)
}

#[hdk_extern]
fn get_author_of_foo(input: StringWrapper) -> ExternResult<AgentPubKey> {
    let path = Path::from(input.0);
    let path_hash = hash_entry!(path.clone())?;
    let links = get_links!(hash_entry!(path)?)?;
    debug!("hash of the path is {:#?}", path_hash)?;
    debug!("links are {:#?}", links)?;
    let link = links.into_inner()[0].clone();
    match get!(link.target)? {
        Some(element) => {
            let header_details = element.header();
            Ok(header_details.author().to_owned())
        },
        _ => Err(HdkError::Wasm(WasmError::Zome(String::from(
            "element not found"
        ))))
    }
}
// zometwo

use hdk3::prelude::*;

#[derive(Deserialize, Serialize, SerializedBytes)]
struct StringWrapper(String);

#[hdk_extern]
fn get_author_of_foo_from_zomeone(_: ()) -> ExternResult<AgentPubKey> {
    let my_agent_pubkey = agent_info!()?.agent_latest_pubkey;
    let function_name = zome::FunctionName("get_author_of_foo".to_owned());
    let payload: SerializedBytes = StringWrapper("bar".to_owned()).try_into()?;

    match call_remote!(my_agent_pubkey, "zomeone".into(), function_name, None, payload)? {
        ZomeCallResponse::Ok(output) => {
            let sb = output.into_inner();
            let agent_pubkey: AgentPubKey = sb.try_into()?;
            Ok(agent_pubkey)
        },
        ZomeCallResponse::Unauthorized => {
            Err(HdkError::Wasm(WasmError::Zome(
                "this agent has no proper authorization".to_owned()
            )))
        },
    }
}

I have four tryorama test scenarios for this.
The following scenarios pass the test.

  • Scenario 1: alice calls create_foo and then calls get_author_of_foo directly from zomeone. get_author_of_foo returns alice's key (since she authored foo) so no problem.

  • Scenario 2: bobby calls create_foo and then alice calls get_author_of_foo directly from zomeone. get_author_of_foo returns bobby's key so no problem.

  • Scenario 3: alice calls create_foo from zomeone and then calls get_author_of_foo_from_zomeone from zometwo. get_author_of_foo_from_zomeone returns alice's key (since she authored foo) so no problem here as well.

Here's where things gets a little bit weird.

  • Scenario 4: bobby calls create_foo from zomeone and then alice calls get_author_of_foo_from_zomeone from zometwo. get_author_of_foo_from_zomeone should return bobby's key but doesn't. Instead, the tryorama fails with the following error.
{
  type: 'Error',
  data: {
    type: 'RibosomeError',
    data: 'Wasm error while working with Ribosome: CallError("RuntimeError: unknown error")'
  }
}

doing debug!() on get_author_of_foo shows that path hash is being generated properly from the input.0
However, links are empty only in Scenario 4. The difference here is that alice is trying to get bobby's entry with get!(link.target) in a call_remote fashion.

There is also this Debug output from conductor(being outputted a couple of times before the test just fails. probably trying to get the dependency but then after a lot of tries, it can't get it and just simply stops trying).

☮ Oct 05 19:45:19.326 DEBUG app_validation_workflow: holochain::core::workflow::app_validation_workflow: ops=[ValidationLimboValue { status: SysValidated, pending_dependencies: PendingDependencies { pending: [] }, op: StoreEntry(HeaderHash(uhCkkIVWv9PGrTexDs-yiFmIrTxhfz_WUD4G9ZJ5UZkns5CW-xZy0), EntryHash(uhCEkzcdzyczLwOd8cNE94Bxdv9IoS4NBoBn-rpXl6F5yqDWpQPkn), AnyDhtHash(uhCEkzcdzyczLwOd8cNE94Bxdv9IoS4NBoBn-rpXl6F5yqDWpQPkn)), basis: AnyDhtHash(uhCEkzcdzyczLwOd8cNE94Bxdv9IoS4NBoBn-rpXl6F5yqDWpQPkn), time_added: Timestamp(1601894719, 316067100), last_try: Some(Timestamp(1601894719, 326096900)), num_tries: 1 }] awaiting_ops=[ValidationLimboValue { status: PendingValidation, pending_dependencies: PendingDependencies { pending: [FixedElement(DhtOpHash(uhCQk18c3Ocp8gLn_KNebDyLfuCXOVhbO4nyDNg683CpAI3zANiNq))] }, op: RegisterAgentActivity(HeaderHash(uhCkkxHqy2WHnkgtrD_2ulQkyQJwf_L5WkoyCgdrsNkXWJGIowwHJ), AnyDhtHash(uhCEke1j8Z2a-_min0h0pGuEMcYlo_V1l1mt9OtBuywKmHlg4L_R-)), basis: AnyDhtHash(uhCEke1j8Z2a-_min0h0pGuEMcYlo_V1l1mt9OtBuywKmHlg4L_R-), time_added: Timestamp(1601894719, 317450400), last_try: Some(Timestamp(1601894719, 322516200)), num_tries: 1 }, ValidationLimboValue { status: PendingValidation, pending_dependencies: PendingDependencies { pending: [AnyElement(DhtOpHash(uhCQk5L33gc-JG_nmzedLV-Y0stz8AjULMUomjDYcYl_-wTID99Vj))] }, op: RegisterAddLink(HeaderHash(uhCkkxHqy2WHnkgtrD_2ulQkyQJwf_L5WkoyCgdrsNkXWJGIowwHJ), AnyDhtHash(uhCEkVYGAv-lxOIpyeiKKzL56ZFA6Co_5_S8hraN8wRQyO2NmLur8)), basis: AnyDhtHash(uhCEkVYGAv-lxOIpyeiKKzL56ZFA6Co_5_S8hraN8wRQyO2NmLur8), time_added: Timestamp(1601894719, 314977400), last_try: Some(Timestamp(1601894719, 319342000)), num_tries: 2 }]
import { Orchestrator } from '@holochain/tryorama';
import { Config } from '@holochain/tryorama';

const orchestrator = new Orchestrator();

const config = Config.gen({
    alice: Config.dna('../testlab.dna.gz', null),
    bobby: Config.dna('../testlab.dna.gz', null),
  })

const delay = (ms) => new Promise((r) => setTimeout(r, ms))

orchestrator.registerScenario('Scenario 1: directly calling create and get from zomeone to get own key from entry', async (s, t) => {
  // spawn the conductor process
  const { conductor } = await s.players({ conductor: config });
  await conductor.spawn();

  const [dna_hash_1, agent_pubkey_alice] = conductor.cellId('alice');

  await conductor.call("alice", "zomeone", "create_foo", null);
  await delay(1000);

  // Works with no problem
  let get_alice_key = await conductor.call("alice", "zomeone", "get_author_of_foo", "bar");

  t.deepEqual(get_alice_key, agent_pubkey_alice);
});

orchestrator.registerScenario('Scenario 2: directly calling create and get from zomeone to get bobby key from entry', async (s, t) => {
  // spawn the conductor process
  const { conductor } = await s.players({ conductor: config })
  await conductor.spawn()

  const [dna_hash_2, agent_pubkey_bobby] = conductor.cellId('bobby');

  await conductor.call("bobby", "zomeone", "create_foo", null);
  await delay(1000);

  // works with no problem too
  let get_bobby_key = await conductor.call("alice", "zomeone", "get_author_of_foo", "bar");

  t.deepEqual(get_bobby_key, agent_pubkey_bobby);
});

orchestrator.registerScenario('Scenario 3: directly calling create but remotely call get zometwo to get own key from entry', async (s, t) => {
  // spawn the conductor process
  const { conductor } = await s.players({ conductor: config })
  await conductor.spawn()

  const [dna_hash_1, agent_pubkey_alice] = conductor.cellId('alice');

  await conductor.call("alice", "zomeone", "create_foo", null);
  await delay(1000);

  // this works with no problem as well
  let get_alice_key = await conductor.call("alice", "zometwo", "get_author_of_foo_from_zomeone", null);

  t.deepEqual(get_alice_key, agent_pubkey_alice);

});

orchestrator.registerScenario('Scenario 4: directly calling create but remotely call get zometwo to get both key from entry', async (s, t) => {
  // spawn the conductor process
  const { conductor } = await s.players({ conductor: config })
  await conductor.spawn()

  const [dna_hash_2, agent_pubkey_bobby] = conductor.cellId('bobby');

  await conductor.call("bobby", "zomeone", "create_foo", null);
  await delay(1000);

  // now this doesn't work because the links return an empty array inside the get_author function
  let get_bobby_key = await conductor.call("alice", "zometwo", "get_author_of_foo_from_zomeone", null);

  t.deepEqual(get_bobby_key, agent_pubkey_bobby);
});


orchestrator.run()

Any help would be appreciated.
Thank you.

Networking performance degrades over time

Issue:

  • Networking performance degrades over time - signals are no longer received and gossip becomes patchy / slow. It can become noticeably less reliable within 2 hours and after a day or two may not receive any signals at all
  • I suspect this is a holochain networking issue because:
    • UI still able to make zome calls to the Holoport reliably
    • Holoport returns zome call successes to UI (e.g. confirmation of signals sent)
    • Restarting holochain fixes issues
    • Proxy server does not need restarting / intervention

Urgency:

  • Low - we can use interim solutions for now (e.g. having holochain on a regular restart timer).

Build fails with latest rust stable version (1.46)

The crate fixt fails to compile with latest version of stable rust (1.46), with several errors looking exactly like this one:

error[E0424]: expected value, found module `self`
   --> crates/fixt/src/serialized_bytes.rs:70:18
    |
70  |               .nth(self.0.index)
    |                    ^^^^ `self` value is a keyword only available in methods with a `self` parameter
    | 
   ::: crates/fixt/src/lib.rs:463:17
    |
463 | /                 fn next(&mut self) -> Option<Self::Item> {
464 | |                     let original_index = self.0.index;
465 | |                     let ret = $e;
466 | |                     if original_index == self.0.index {
...   |
469 | |                     Some(ret)
470 | |                 }
    | |_________________- this function has a `self` parameter, but a macro invocation can only access identifiers it receives from parameters

Build works fine in previous version (1.45.2).

HDK wish list

These are issues that I think create some friction when developing, nothing major I think (in general the experience with the HDK is really good). It's likely that there is some way to work around some of them I haven't realized, so @thedavidmeister if that's the case please tell me and I'll remove it from the list.

  • Various types should be made available directly in the prelude as their usage is very frequent:
    • hdk3::prelude::timestamp::Timestamp (example)
    • hdk3::prelude::link::Link (example)
  • Easier conversion between AgentPubKey and EntryHash, or alternatively let create_link receive an AgentPubKey. Example of what we need to do right now.
  • Be able to do query with the entry type as a string. Right now we need to pass as parameter the EntryDefIndex, which forces us to do something like this.
  • Have structs derived with #[hdk_entry] implement some sort of HdkEntry trait, so that I can write a function like this.

Link is only available by zoom creator!

In PeerShare happ, I am facing this scenario,

I am adding a link from my_address to file_hash inside the tags zome.
And I want to load the same link from peershare zome. and it is not working?
while I can just load the link form tags zome.

you can see the scenario from here:
PeerShare

`serde` attributes on types in conductor API are misused

holochain::conductor::api has types that use #[serde(rename = "snake-case")] attributes.

#[serde(rename = "snake-case", tag = "type", content = "data")]
pub enum AdminRequest {

#[serde(rename = "snake-case", tag = "type", content = "data")]
pub enum AdminResponse {

According to Serde docs on container attributes, #[serde(rename = "...")] should specify a new name for the container directly and not a conversion scheme, e.g. this is valid:

#[serde(rename = "my_struct")]
struct MyStruct {}

But this is not:

#[serde(rename = "snake_case")]
struct MyStruct {}

Rust Playground that shows the expected behavior.


cc @peeech

Source chain "as-at" collision check should return nice error, not panic

When the source chain head has moved while a zome call is running, the zome call will fail. It should indicate this failure to the user so they can decide what to do next, including retrying. However, currently this exception is not handled, and causes a panic that looks like this:

FATAL PANIC PanicInfo {
    payload: Any,
    message: Some(
        Error running Workflow: WorkspaceError(SourceChainError(HeadMoved(Some(HeaderHash(uhCkk7dmvdD82KuUcBSfE-ycS4-pJW2piai3nM-t9PXoNay00KlHB)), Some(HeaderHash(uhCkkcsEdVX-NC93QBm4lZVfkTskD6aK9Jq61mn6ZlhUHCqGiOJ5I))))),
    ),
    location: Location {
        file: "crates/holochain/src/core/queue_consumer/produce_dht_ops_consumer.rs",
        line: 34,
        col: 17,
    },
}

The SourceChainError::HeadMoved error needs to be properly handled and passed back as a response

query!() may be nicer to accept multiple variants of HeaderType

the query!() macro accepts the QueryFilter which is a union of each of the field in the QueryFilter struct.
Right now, you can only specify one variant of the HeaderType enum in the header_type() method for QueryFilter.
This may not be necessary (because we can filter HeaderType in zome_fn level against what is returned from query macro), but may be nice to have if the header_type field in QueryFilter accepts an Option<Vec<HeadrType>> instead. This is especially useful when we want to have an intersected result of entry_type(EntryType::App(AppEntryType::new())) and any of the "entry-related" HeaderType variant such as HeaderType::Create(), HeaderType::Update(), and HeaderType::Delete() and just ignore all the other HeaderType variants.

Housekeeping to be done when WIP is low

  • Rename invoke_zome_workflow to call_zome_workflow to match filename (also rename related names)
  • Rename Cascade DBs: (Element x Meta) + (Vault x Cache)
  • Remove HeaderAddress -> HeaderHash

Misleading error when creating entry not listed in entry_defs

When I try to create an entry not listed in entry_defs, this is the error I get:

  type: 'Error',
  data: {
    type: 'RibosomeError',
    data: 'Wasm error while working with Ribosome: CallError("RuntimeError: unknown error")'
  }

Which made it hard for me to find the actual issue. I reckon a better message would suffice.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.