Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge dev into main #1441

Merged
merged 1,763 commits into from Jun 15, 2021
Merged

Merge dev into main #1441

merged 1,763 commits into from Jun 15, 2021

Conversation

robgjansen
Copy link
Member

The day has finally arrived!

robgjansen and others added 30 commits May 12, 2021 16:00
We want the default mode to be that Shadow calculates the number
of processors to use based on the number of hosts specified in the
configuration file. (See #1251.) In this case, we do not want to
run the forkproxy workaround, because the fact that waitpid is O(n)
won't matter when each processor only runs a few pids.

Closes #1261
When notified of process exit, we can't catch the ptrace exit event if
we're not still attached. Trying to do so will instead reap the final
exit status, which will cause the Process to fail to do so.
Disable forkproxy by default

* Disable forkproxy / O(n)-waitpid-workaround by default
* Fix a shutdown bug in thread_ptrace that this exposed
    
Closes #1261
Not clear yet how best to handle these; avoid using them until we do.
Some options

* Avoid ever wrapping them; ideal but maybe difficult.
* Just go ahead and wrap them. bindgen's static assertions *should*
  catch if any structs are a different size than expected. They won't
  catch if fields are reordered, but that's probably unlikely.
* Wrap them as opaque types. This would also protect us from reordering,
  though we'd then need to create C accessors for those fields.
* Dynamically generate bindings instead of checking them in. This would
  guarantee that the types match the types on the machine where it's
  built. It wouldn't help with distributed binaries, though.
Don't ignore unknown topology attributes
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.125 to 1.0.126.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](serde-rs/serde@v1.0.125...v1.0.126)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Add Rust bindings for Host

* Create a Rust type `SimulationTime` to help avoid mixing with other time types.
* Add a Host struct in Rust to wrap host_*, and expose name and IP for logging
* Add methods to Worker to get current host, sim time, and thread-id

Progress on #1301
Renamed topology 'ip' to 'ip_address', and removed the 'asn' and 'packet_loss' node attributes
* Copy file names instead of holding a reference when we also need to
  get a mutable reference. Holding an immutable + mutable reference
  simultaneously would break Rust's soundness contract, and currently
  results in a run-time panic in the C wrappers.
* Fix missing NULL checks for return values of process_getReadablePtr
  and process_getWriteablePtr.
* Remove unnecessary NULL checks for user pointers. The MemoryManager
  functions will themselves return NULL if the user pointer isn't
  accessible.
Fix fstatat

* TypedPluginPtr: make slice method generic over RangeBounds
* MemoryManager.read_ptr: let caller slice instead of taking offset
* MemoryManager: generalize read_ptr -> readv_ptr
* Split MemoryReader.copy to read_some and read_exact
* MemoryReader: split as_ref into ref_some and ref_exact
* Reimplement process_getReadableString using new Reader API
* Add process_readString
* fileat syscalls: fix memory access bugs
* Add test for fstatat

Fixes #1332
robgjansen and others added 15 commits June 14, 2021 15:40
- Rename vertex to node, since gml calls them nodes
- Use host instead of node where appropriate
- Use network node instead of node for clarity
- Replace some use of topology with graph or network graph
Update docs for 2.x

Includes:

- more details about what shadow is and why it's important on the top-level readme
- re-ordered the ToC in docs/readme to better organize contents into sections
- added line breaks to long lines across all docs
- more consistent use of terms like vertices->nodes, topology->graph
- separate tgen example from shadow log parsing

and more...
Bumps [vsprintf](https://github.com/sporksmith/vsprintf) from `ad76219` to `1269b19`.
- [Release notes](https://github.com/sporksmith/vsprintf/releases)
- [Commits](sporksmith/vsprintf@ad76219...1269b19)

---
updated-dependencies:
- dependency-name: vsprintf
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
…printf-1269b19

Bump vsprintf from `ad76219` to `1269b19` in /src/main
Minor updates to top-level readme
@robgjansen robgjansen added Type: Maintenance Refactoring, cleanup, documenation, or process improvements Component: Main Composing the core Shadow executable labels Jun 15, 2021
@robgjansen robgjansen self-assigned this Jun 15, 2021
@robgjansen robgjansen added this to In progress in Next Release v2.0.0 pre.1 via automation Jun 15, 2021
@robgjansen
Copy link
Member Author

Note that the checks that are listed as "required" for the main branch are no longer applicable to the dev branch and will not run here. I'll update the list of required checks on main after merging this PR.

@codecov
Copy link

codecov bot commented Jun 15, 2021

Codecov Report

❗ No coverage uploaded for pull request base (main@8ed573a). Click here to learn what that means.
The diff coverage is n/a.

Impacted file tree graph

@@           Coverage Diff           @@
##             main    #1441   +/-   ##
=======================================
  Coverage        ?   54.10%           
=======================================
  Files           ?      138           
  Lines           ?    20456           
  Branches        ?     5171           
=======================================
  Hits            ?    11067           
  Misses          ?     6468           
  Partials        ?     2921           
Flag Coverage Δ
tests 54.10% <0.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.


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 8ed573a...b125095. Read the comment docs.

Copy link
Contributor

@sporksmith sporksmith left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Careful not to squash ;)

Copy link
Contributor

@stevenengler stevenengler left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I read all 190,000 changed lines and they look good to me! :)

@ahf
Copy link
Contributor

ahf commented Jun 15, 2021

Woh, exciting! 🥳 🎉

@robgjansen robgjansen merged commit 219c42c into shadow:main Jun 15, 2021
Next Release v2.0.0 pre.1 automation moved this from In progress to Done Jun 15, 2021
@robgjansen robgjansen deleted the merge-dev-into-main branch June 15, 2021 20:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component: Main Composing the core Shadow executable Type: Maintenance Refactoring, cleanup, documenation, or process improvements
Projects
No open projects
Development

Successfully merging this pull request may close these issues.

None yet

4 participants