capsule-rs / capsule

A framework for network function development. Written in Rust, inspired by NetBricks and built on DPDK.
Apache License 2.0
393 stars 35 forks source link

Move to Rust 1.50 #129

Closed zeeshanlakhani closed 3 years ago

zeeshanlakhani commented 3 years ago
codecov[bot] commented 3 years ago

Codecov Report

Merging #129 (e3c8792) into master (8dd1dd9) will increase coverage by 0.01%. The diff coverage is 46.15%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #129      +/-   ##
==========================================
+ Coverage   68.40%   68.41%   +0.01%     
==========================================
  Files          66       66              
  Lines        5973     5972       -1     
==========================================
  Hits         4086     4086              
+ Misses       1887     1886       -1     
Impacted Files Coverage Δ
core/src/dpdk/kni.rs 0.00% <0.00%> (ø)
core/src/dpdk/port.rs 0.00% <0.00%> (ø)
core/src/dpdk/stats.rs 0.00% <0.00%> (ø)
core/src/runtime/mod.rs 0.00% <0.00%> (ø)
core/src/dpdk/mbuf.rs 85.03% <50.00%> (ø)
core/src/pcap.rs 65.62% <61.53%> (-0.27%) :arrow_down:
core/src/dpdk/mod.rs 28.35% <75.00%> (+1.08%) :arrow_up:
core/src/ffi.rs 40.90% <80.00%> (ø)
core/src/dpdk/mempool.rs 32.55% <100.00%> (ø)
core/src/testils/proptest/strategy.rs 82.71% <0.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 8dd1dd9...e3c8792. Read the comment docs.

zeeshanlakhani commented 3 years ago

@drunkirishcoder now seeing a leak, but this may be coming from a lib (like last time)? I didn't encounter it running off our sandbox Vm.

Direct leak of 481 byte(s) in 13 object(s) allocated from:
    #0 0x55b739039904  (/home/capsule/target/x86_64-unknown-linux-gnu/debug/ping4d+0x298904)
    #1 0x7ff47fa07ef7  (/usr/local/lib/x86_64-linux-gnu/librte_bus_vmbus.so.20.0+0x4ef7)
    #2 0x7ff47fa0833e  (/usr/local/lib/x86_64-linux-gnu/librte_bus_vmbus.so.20.0+0x533e)
    #3 0x7ff483074603  (/usr/local/lib/x86_64-linux-gnu/librte_eal.so.20.0+0xa603)
    #4 0x7ff4830adc36  (/usr/local/lib/x86_64-linux-gnu/librte_eal.so.20.0+0x43c36)
    #5 0x55b739598dfb  (/home/capsule/target/x86_64-unknown-linux-gnu/debug/ping4d+0x7f7dfb)
    #6 0x55b73929b81b  (/home/capsule/target/x86_64-unknown-linux-gnu/debug/ping4d+0x4fa81b)
    #7 0x55b73909ace4  (/home/capsule/target/x86_64-unknown-linux-gnu/debug/ping4d+0x2f9ce4)
    #8 0x55b7390b1f0a  (/home/capsule/target/x86_64-unknown-linux-gnu/debug/ping4d+0x310f0a)
    #9 0x55b7390a2513  (/home/capsule/target/x86_64-unknown-linux-gnu/debug/ping4d+0x301513)
    #10 0x55b73a737bbe  (/home/capsule/target/x86_64-unknown-linux-gnu/debug/ping4d+0x1996bbe)
    #11 0x55b73a73cbfc  (/home/capsule/target/x86_64-unknown-linux-gnu/debug/ping4d+0x199bbfc)
    #12 0x55b73a7ef5c9  (/home/capsule/target/x86_64-unknown-linux-gnu/debug/ping4d+0x1a4e5c9)
    #13 0x55b73a883169  (/home/capsule/target/x86_64-unknown-linux-gnu/debug/ping4d+0x1ae2169)
    #14 0x55b7390a247f  (/home/capsule/target/x86_64-unknown-linux-gnu/debug/ping4d+0x30147f)
    #15 0x55b73909b50b  (/home/capsule/target/x86_64-unknown-linux-gnu/debug/ping4d+0x2fa50b)
drunkirishcoder commented 3 years ago

not sure what happened with LLVM7 not generating the stacktrace symbols all of a sudden for the newest Rust nightly version 1.52.

llvm-symbolizer: Unknown command line argument '--inlines'.

After some struggle to manually upgrade to a copy of LLVM12 (not fun), got the stacktrace symbols and looks like it could be another regex related leak, not necessarily caused by regex, but by one of the underlying core lib fn it calls.

Direct leak of 16 byte(s) in 1 object(s) allocated from:
    #0 0x56512301fd8d in malloc /rustc/llvm/src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:145:3
    #1 0x565124709923 in std::sys::unix::alloc::_$LT$impl$u20$core..alloc..global..GlobalAlloc$u20$for$u20$std..alloc..System$GT$::alloc::hc2f5c06b7351a27f /usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/unix/alloc.rs:14:13
    #2 0x5651247c118e in __rdl_alloc /usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/alloc.rs:357:13
    #3 0x565124a753db in alloc::alloc::alloc::hcbb042d75fdbfe3b /usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/alloc.rs:86:14
    #4 0x565124a75c42 in alloc::alloc::Global::alloc_impl::h0a370cea187e1ff0 /usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/alloc.rs:166:73
    #5 0x565124a76d90 in _$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$::allocate::hc8a4e09080d0b182 /usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/alloc.rs:226:9
    #6 0x565124a614f5 in alloc::raw_vec::finish_grow::hce83e59f446a64aa /usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/raw_vec.rs:489:9
    #7 0x565123ca1ce5 in alloc::raw_vec::RawVec$LT$T$C$A$GT$::grow_amortized::h535674de33859851 /usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/raw_vec.rs:421:19
    #8 0x565123c97971 in alloc::raw_vec::RawVec$LT$T$C$A$GT$::try_reserve::hd5118a2046d62f82 /usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/raw_vec.rs:325:13
    #9 0x565123c7ed45 in alloc::vec::Vec$LT$T$C$A$GT$::reserve::hfaafa5b3ec571cd3 /usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:772:9
    #10 0x565123bcbc1b in regex::dfa::Fsm::follow_epsilons::hc86ae7d352bfb73a /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/regex-1.4.3/src/dfa.rs:1064:9
    #11 0x565123ccc5af in regex::dfa::Fsm::start_state::h1b62b03d625a63e0 /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/regex-1.4.3/src/dfa.rs:1395:9
    #12 0x565123ccc5af in regex::dfa::Fsm::forward::h1d34a92571eb6ae0 /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/regex-1.4.3/src/dfa.rs:467:19
    #13 0x565123ccc5af in regex::exec::ExecNoSync::shortest_dfa::h6ef26f33bf886cb9 /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/regex-1.4.3/src/exec.rs:790:9
    #14 0x565123ccc5af in _$LT$regex..exec..ExecNoSync$u20$as$u20$regex..re_trait..RegularExpression$GT$::shortest_match_at::h0584fa5035a06b77 /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/regex-1.4.3/src/exec.rs:442:23
    #15 0x565123ccc5af in _$LT$regex..exec..ExecNoSyncStr$u20$as$u20$regex..re_trait..RegularExpression$GT$::shortest_match_at::h70436c69ff54bdb5 /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/regex-1.4.3/src/exec.rs:390:9
    #16 0x565123ccc5af in regex::re_unicode::Regex::shortest_match_at::hdbfe7f7103894101 /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/regex-1.4.3/src/re_unicode.rs:630:9
    #17 0x565123ce410d in regex::re_unicode::Regex::is_match_at::h602fd4dba9170d51 /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/regex-1.4.3/src/re_unicode.rs:640:9
    #18 0x565123cc7b80 in regex::re_unicode::Regex::is_match::he6c8b6532d5f3b56 /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/regex-1.4.3/src/re_unicode.rs:199:9
    #19 0x565123298fa7 in capsule::config::RuntimeConfig::to_eal_args::_$u7b$$u7b$closure$u7d$$u7d$::h31802acce4282eb7 /home/capsule/core/src/config.rs:228:16

the conclusion is problem is not caused by anything in Capsule.