Rust, SAFE Network, Crust and a problem for Fedora 22 x86_64 XFCE (ie not other spins)

Orion Poplawski orion at cora.nwra.com
Thu Aug 27 21:17:25 UTC 2015


On 08/23/2015 10:11 AM, Philip Rhoades wrote:
> People,
> 
> I have been getting heavily involved with this project:
> 
>   maidsafe.net / maidsafe.org
> 
> and I have a problem (real hardware and VMs) that occurs with building the
> software which doesn't happen for other Fedora 22 spins or if I build the
> software in a Docker image.  To reproduce the problem do this:
> 
> As root:
> 
>   curl -sSf https://static.rust-lang.org/rustup.sh | sh -s -- --channel=nightly
>   dnf install libsodium-devel
> 
> As any user:
> 
>   git clone https://github.com/maidsafe/crust
>   cd crust
>   cargo build
>   RUST_TEST_THREADS=1 cargo test
> 
> You should see something like this:
> 
> 
> Running target/debug/crust-991e24481699f6b2
> 
> running 23 tests
> test beacon::test::test_avoid_beacon ... ok
> test beacon::test::test_beacon ... ok
> test bootstrap_handler::test::duplicates ... ok
> test bootstrap_handler::test::max_contacts ... ok
> test bootstrap_handler::test::oldest ... ok
> test bootstrap_handler::test::prune ... ok
> test bootstrap_handler::test::serialisation ... ok
> test config_utils::test::read_config_file_test ... ok
> test connection_manager::test::bootstrap ... ok
> test connection_manager::test::bootstrap_off_list_connects ... ok
> test connection_manager::test::bootstrap_off_list_connects_multiple ... ok
> test connection_manager::test::connection_manager ... ok
> test connection_manager::test::connection_manager_start ... ok
> test connection_manager::test::network ... ignored
> test getifaddrs::test::test_filter_loopback ... ok
> test getifaddrs::test::test_getifaddrs ... ok
> test tcp_connections::test::test_multiple_nodes_small_stream ... ok
> test tcp_connections::test::test_small_stream ... ok
> test test::check_rust_unit_testing_is_not_parallel ... ok
> test transport::test::test_ord ... ok
> test utp_connections::test::cannot_establish_connection ... NOTE: Transport
> connect 172.17.0.28:56710 failure due to InvalidPacket
> NOTE: Transport connect 172.17.0.28:38604 failure due to InvalidPacket
> NOTE: Transport connect 172.17.0.28:36980 failure due to InvalidPacket
> NOTE: Transport connect 172.17.0.28:37710 failure due to InvalidPacket
> NOTE: Transport connect 172.17.0.28:34469 failure due to InvalidPacket
> ok
> test utp_connections::test::establishing_connection ... ok
> test utp_connections::test::send_receive_data ... ok
> 
> test result: ok. 22 passed; 0 failed; 1 ignored; 0 measured
> 
> 
> Instead for an XFCE environment I see this:
> 
> 
> Running target/debug/crust-935be27542bb08fc
> 
> running 23 tests
> test beacon::test::test_avoid_beacon ... thread 'test_avoid_beacon seek_peers
> 2' panicked at 'index out of bounds: the len is 0 but the index is 0',
> ../src/libcollections/vec.rs:1047
> 
> 
> - which also hangs indefinitely . . I have NO idea why a desktop environment
> should cause this sort of problem - anyone got any ideas?
> 
> Thanks,
> 
> Phil.

This is what I often do to debug these kinds of issues - run each under strace
and compare the difference.  So something like:

RUST_TEST_THREADS=1 strace -f -o /tmp/good cargo test

and /tmp/bad for the failing environment.  Then you have to strip out the
pids, so:

sed -e 's/^[0-9]* //' < /tmp/good > /tmp/good.stripped

Sometimes I also strip out hex addresses with something like
's/0x[0-9a-f]{4,16}//g'.  Then I walk through:

diff /tmp/good.stripped /tmp/bad.stripped | less

 and see where they started to diverge.

HTH

-- 
Orion Poplawski
Technical Manager                     303-415-9701 x222
NWRA, Boulder/CoRA Office             FAX: 303-415-9702
3380 Mitchell Lane                       orion at nwra.com
Boulder, CO 80301                   http://www.nwra.com


More information about the xfce mailing list