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

Philip Rhoades phil at pricom.com.au
Thu Aug 27 21:53:01 UTC 2015


Orion,


On 2015-08-28 07:17, Orion Poplawski wrote:
> 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.


Very nice!  I will give that a shot!

Thanks a lot.

Regards,

Phil.
-- 
Philip Rhoades

PO Box 896
Cowra  NSW  2794
Australia
E-mail:  phil at pricom.com.au


More information about the xfce mailing list