Skip to content

v2.4.0

Compare
Choose a tag to compare
@robgjansen robgjansen released this 25 Jan 15:43
· 1799 commits to main since this release
v2.4.0
264a05b

Summary

In this release, we continue our transition from C to Rust. Most of the changes included in the release are backend changes that support our continued Rust migration. However, we also fixed many bugs and made some other changes to improve the experience for users as described below.

We intend additional work following this release to focus on changes to some of Shadow's core networking components, including the TCP stack and other facilities for forwarding packets between nodes. This is somewhat higher risk work that could result in bugs that affect Shadow's network performance and stability. We are issuing this v2.4.0 release now to ensure that users have a stable version of Shadow that they can use while we work on the high risk networking code.

Primary user-facing changes since v2.3.0

  • Fixed an uncommon memory leak in epoll_ctl. #2586
  • Tests that use shadow and tgen now use the binaries from $PATH and not
    ~/.local/bin. #2572
  • Shadow now forces the use of a specific Rust version using a
    rust-toolchain.toml file. #2614
  • Added official support for Fedora 37. #2687
  • Fixed a bug that could leak closed UDP sockets. #2594
  • Emulate sched_{get,set}affinity syscalls. #2602
  • Emulate reading from /sys/devices/system/cpu/possible and
    /sys/devices/system/cpu/online. #2602
  • Fixed the TCP header sizes in pcap files. #2620
  • Various minor improvements to the experimental strace logger (improved
    formatting of strings, buffers, and socket addresses, added logging of
    vdso-handled syscalls, etc).
  • Added etcd and wget2 examples to the examples/ directory. #2637, #2659
  • Improved the line styles in plotting script. #2638
  • Support higher-level host-specific log levels. #2645
  • Fixed a bug where a socket can receive packets that were intended for a
    different socket. #2593

All Merged Pull Requests

New Contributors

Full Changelog: v2.3.0...v2.4.0