Summary:
This code is 100% UB and no longer compiles in Rust 1.73.
```
error: casting `&T` to `&mut T` is undefined behavior, even if the reference is unused, consider instead using an `UnsafeCell`
--> fbcode/hermetic_infra/reverie/experimental/reverie-sabre/src/thread.rs:652:32
|
652 | let slot_map_mut = &mut *((&*SLOT_MAP as *const _) as *mut _);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[deny(invalid_reference_casting)]` on by default
```
Reviewed By: JakobDegen
Differential Revision: D50488164
fbshipit-source-id: ea649d97f47ccc329a44650aff5dc467ed12b48c
Summary:
anyhow-1.0.73 [uses][1] the new `Error::provide` API. This API is
available starting in Rust 1.73. This means that if you want backtraces,
you need one:
- anyhow-1.0.72 & Rust 1.72
- anyhow-1.0.73 & Rust 1.73
Since we're still on 1.72, pin the version to avoid accidentally losing
backtraces.
There are no real changes between anyhow-1.0.71 and anyhow-1.0.72. But
update to anyhow-1.0.72 so that we're right up until the point where we
get backtrace support.
[1]: https://github.com/dtolnay/anyhow/pull/319
Reviewed By: shayne-fletcher
Differential Revision: D49970958
fbshipit-source-id: 1193611e6d16bc840e63b689e932ea3d33562152
Summary:
- Fix top level dirs:
- frl_ee_infra
- fbcode_devx
- hermetic_infra
- hphp/hack
- remote_execution
- service_capacity/projection_framework
Going to need to lean on people to help test here once CI passes ...
Reviewed By: aijayadams
Differential Revision: D49899458
fbshipit-source-id: 4eaa7c3b07bfcf5d23c4ed71a9050ffa2b9ac777
Summary:
- Want to update to use with monitord >= 0.7.0
- Had to add fixup to ignore build file
- All it did was make sure we're Linux ... we already do that elsewhere ...
- Will add monitord in a stacked diff (trying to make this as small as possible - Although - Not that small)
Reviewed By: aijayadams
Differential Revision: D49848114
fbshipit-source-id: d95f0784b284ad7915fc948b827531e0a1652a61
Summary:
On ARM64 I have been seeing test failures:
```
test vdso::tests::vdso_can_find_symbols_info ... FAILED
test vdso::tests::vdso_patch_info_is_valid ... FAILED
```
Looking closer, this was caused by the debug assertion in vdso_get_symbols_info() which asserts that all symbols found in the VDSO are ELF STT_FUNC symbols. Unfortunately, this is not the case on ARM64, because the VDSO's `__kernel_rt_sigreturn` is special and does appear as STT_NONE symbol.
Fixup the debug assertion by special-casing for this special function.
Note: I shortly considered adding an expected symbol type to the `VDSO_SYMBOLS` hashes, but that didn't seem to make sense just to fix this one special case.
Pull Request resolved: https://github.com/facebookexperimental/reverie/pull/24
Reviewed By: VladimirMakaev
Differential Revision: D49291487
Pulled By: jasonwhite
fbshipit-source-id: 87bf810f590238493603ad9d62421b330bfe0f9d
Summary:
Fixes all current clippy warnings[1] so CI is green again.
Fixing the warning `clippy::needless_pass_by_ref_mut` became a little involved. The internal version of clippy isn't recent enough to have this warning and so just doing `#[allow(clippy::needless_pass_by_ref_mut)]` leads to another error. The resulting change fixes the clippy warning and gets rid of some of the shenanigans I was doing to avoid allocating path buffers within the child process.
[1]: https://github.com/facebookexperimental/reverie/actions/runs/6164196219/job/16729396694
Pull Request resolved: https://github.com/facebookexperimental/reverie/pull/23
Reviewed By: VladimirMakaev
Differential Revision: D49209202
Pulled By: jasonwhite
fbshipit-source-id: b03ff432783910bef11fc239d146659dc2c0db30
Summary:
The code that is injected into the tracee processes' VDSO needs to be 8 byte aligned in order to satisfy conditions imposed by the ptrace interface on 64 bit architectures. There have been reproducible reports of that not always being the case:
https://github.com/facebookexperimental/hermit/issues/41. Use an explicitly aligned data structure to enforce this.
Pull Request resolved: https://github.com/facebookexperimental/reverie/pull/22
Reviewed By: VladimirMakaev
Differential Revision: D49195126
Pulled By: jasonwhite
fbshipit-source-id: 8e21cd4306ee2bf75ec321b21e40137be5292f9f
Summary:
* Looking at `fbcode/PLATFORM.bzl` and per-directory `PACKAGE` files, from the `rust-toolchain.toml` files touched in D47672894, migrate ones that can be migrated to `rust/llvm-fb-15`
* Fix 1 `platform009` strangler (lol) and remove 1 that does not have a `Cargo.toml` file since D46411801
Reviewed By: zertosh
Differential Revision: D47930524
fbshipit-source-id: 52f0a8ba5c42dc2d8541ad57a2c043bdcbf19a30
Summary: The default opt-level was recently lowered from 1 to 0. `syscalls::syscall!(...)` has one branch to check the error code while `syscalls::raw_syscall!()` does not. Presumably, this branch was getting optimized out when opt-level=1, but not when opt-level=0 and thus started causing the highly-sensitive timer tests to start failing.
Reviewed By: VladimirMakaev
Differential Revision: D47892355
fbshipit-source-id: 9d19d4a1a1e0521650ffcb46a93f4a61a07bcae1
Summary:
Update num_cpus to version 1.16.0. We need this version as it is a requirement
of libbpf-sys v1.2.1+v1.2.0, which is to be imported subsequently.
Reviewed By: zertosh
Differential Revision: D47380958
fbshipit-source-id: d1fa12a1c8a974686d70d47876e990da4a73b839
Summary:
The clippy action has been in a broken state since 1438ff0f2e. This fixes the GitHub action and all of the clippy warnings.
Pull Request resolved: https://github.com/facebookexperimental/reverie/pull/20
Reviewed By: VladimirMakaev
Differential Revision: D47322336
Pulled By: jasonwhite
fbshipit-source-id: 88f8d16cc81269448c2425d8b56bcc3623e04b31
Summary:
This fixes a bug related to bare carriage returns that caused D47318798 to fail in `third-party-rust-verification`. The `schemafy_core` crate contains a file that uses carriage returns which are not followed by newlines 🤮. When that file fails to parse, Reindeer falls back to using non-precise srcs, which produced the following difference to the generated output.
```
diff --git a/third-party/rust/BUCK b/third-party/rust/BUCK
--- a/third-party/rust/BUCK
+++ b/third-party/rust/BUCK
@@ -77047,6 +77047,7 @@
name = "schemafy_core-0.5.1",
srcs = [
"vendor/schemafy_core-0.5.1/src/lib.rs",
+ "vendor/schemafy_core-0.5.1/src/main.rs",
"vendor/schemafy_core-0.5.1/src/one_or_many.rs",
],
crate = "schemafy_core",
```
Reviewed By: zertosh
Differential Revision: D47318928
fbshipit-source-id: 086b96393cc43371b724ac95e841990385576432
Summary: This supports new syntax added in the past months, including `c"..."` CStr literals.
Reviewed By: shayne-fletcher
Differential Revision: D47316927
fbshipit-source-id: ac0e514ca89dad282e64decd01d3a94b3bff8490
Summary:
fbcode is migrating to LLVM-15 for safer and more up-to-date code and new compiler features. All contbuilds in your directory have passed our build test with LLVM-15, and your directory does not house any packages. This diff will migrate it to LLVM-15.
If you approve of this diff, please use the "Accept & Ship" button. If you have a blocker on building with LLVM 15, please comment on this diff. All fbcode directories will move to LLVM 15, so please start working on the fixes, testing and canary ASAP. If all tests are green, we will land this on Friday 06/23/2023.
See the [FAQ post](https://fb.workplace.com/groups/llvm15platform010/posts/749154386769776/)! Please also direct any questions to [this group](https://fb.workplace.com/groups/llvm15platform010).
- If you approve of this diff, please use the "Accept & Ship" button :-)
Build directives:
Reviewed By: palmje
Differential Revision: D46861414
fbshipit-source-id: 29e309e6ef24248aa49bbdd4491c3be23056411f
Summary:
first in a set of diffs with the intent of removing `lazy_static!` from fbcode.
this diff changes `std::sync::Mutex` and `parking_lot::Mutex` to plain `static` initializations where possible.
Reviewed By: zertosh
Differential Revision: D46335784
fbshipit-source-id: 105848f38dcb8083be77a4ad4db267058081fe53
Summary: upgrade parking_lot from version 0.11.2 to version 0.12.1
Reviewed By: zertosh, diliop, dtolnay
Differential Revision: D46398501
fbshipit-source-id: ffae0ea188abad5253f1524216dd18ce9a53a74c
Summary:
rustls 0.21.0 finally has support for IP addresses in certs.
Lots of other crates have (in)direct dependencies on rustls so I have to upgrade those too:
* hyper, reqwest, and auxiliary crates for those have been updated
* tonic has been updated and our local patch removed (since the relevant PR was merged upstream)
Reviewed By: zertosh
Differential Revision: D45989949
fbshipit-source-id: 658c11d29859d6d36368a412dab05e3c99313ee0
Summary: The version we're using is > 1 year old. I noticed the old version doesn't allow to override `assert_eq!` in a form of `use pretty_assertions::assert_eq`
Reviewed By: asm89
Differential Revision: D46010319
fbshipit-source-id: b48678e76fe907bdfbc6709ab438db992eb8d674
Summary:
Basically `arc lint -e extra --take RUSTFIX --apply-patches` over all of
fbcode. Actually done with
`fbcode/common/rust/tools/rustfix2/scripts/rustfix_codemod`.
Some of these fixes don't actually convey the intent of the code, but I
am applying them anyway because they've been outstanding forever. This
diff actually fixes all machine fixable rustfix issues.
Manual changes:
- `fbcode/security/tools/sush2/src/lib/tw.rs` because the pattern match
on a variable is not a thing. (There's a good Learning Rust question
with a good answer on this)
- `fbcode/zippydb/lib/rust/rodos/lib.rs` needed the `#[cfg(test)]`,
otherwise too many unused imports would be removed.
Reviewed By: dtolnay
Differential Revision: D44823936
fbshipit-source-id: 20a35e4977dc362f71b4f88b93b8c2b9a4a7c06a
Summary:
Note: this is a re-land of D44623815, which was was reverted because of a land race with D44626072
In particular this fixes `FlattenUnordered` having a nasty deadlock, but also
some other bugs:
```
# 0.3.28 - 2023-03-30
* Update to syn 2. This raises MSRV of utility crates to 1.56. (#2730, #2733)
* Fix bug in `FlattenUnordered` (#2726, #2728)
# 0.3.27 - 2023-03-11
* Add `TryFlattenUnordered` (#2577, #2590, #2606, #2607)
* Add `AbortHandle::is_aborted` (#2710)
* Add `AbortRegistration::handle` (#2712)
* Make `BiLock` strict-provenance compatible (#2716)
# 0.3.26 - 2023-01-30
* Add `Either::as_pin_mut` and `Either::as_pin_ref` (#2691)
* Add `Shared::ptr_eq` and `Shared::ptr_hash` (#2691)
* Implement `FusedStream` for `Buffered` (#2676)
* Implement `FusedStream` for all streams in `ReadyChunks` (#2693)
* Fix bug in `FuturesOrdered::push_front` (#2664)
* Remove `Fut::Output: Clone` bounds from some `Shared` methods (#2662)
* Remove `T: Debug` bounds from `Debug` implementations of `mpsc` and `oneshot` types (#2666, #2667)
# 0.3.25 - 2022-10-20
* Fix soundness issue in `join!` and `try_join!` macros (#2649)
* Implement `Clone` for `sink::Drain` (#2650)
# 0.3.24 - 2022-08-29
* Fix incorrect termination of `select_with_strategy` streams (#2635)
# 0.3.23 - 2022-08-14
* Work around MSRV increase due to a cargo bug.
```
Reviewed By: zertosh
Differential Revision: D44632588
fbshipit-source-id: bdd87cb02b3aef63a65b1f9b852579225adfedbd
Summary:
Rust recently changed the default channel implementation, so maybe that's what triggered this failure.
This is a pretty brittle test. :/
Reviewed By: VladimirMakaev
Differential Revision: D44389514
fbshipit-source-id: 65ecc07edcab1aef99eb31dea2343d6ff4a92aa2
Summary: Trying to publish more of our docs and materials.
Reviewed By: VladimirMakaev
Differential Revision: D44387507
fbshipit-source-id: 32cd324db73483ec3f0dd7c2c1b0817f559fa958
Summary:
* Adds a `README.md` file.
* Adds optional features to enable memory access and the async API.
`safeptrace` depends on `reverie-process` and `reverie-memory`, so those will need to be published as crates too.
Reviewed By: VladimirMakaev
Differential Revision: D44386559
fbshipit-source-id: e74c55d5d26239aa09aedac130dca880eb5f1206
Summary:
Removes need for patch.
It had already been updated to 3.4 but this just formalizes it.
Reviewed By: jasonwhite
Differential Revision: D44274378
fbshipit-source-id: d17ecbbee06c7df30f689eb859fb31fdf07d8d44
Summary: I am interested in running clippy under buck2 in CI for https://github.com/dtolnay/cxx, but I need it to be configured with `msrv = "..."` the same as my Cargo builds.
Reviewed By: diliop
Differential Revision: D43991741
fbshipit-source-id: c9a6a923651cebf5f24a48c6cd5daac0631cb763
Summary:
`memmap` is unmaintained and hasn't been changed in over 4 years. `memmap2` is
a fork, which is regularly maintained.
Also bump dependency on `grep` as it removes the last third-party internal
reference to memmap.
Reviewed By: dtolnay
Differential Revision: D43486158
fbshipit-source-id: f763848bd295facf60ec601620afd68dfc655bea