Summary:
This diff passes the free space information through from
the overlay lock file descriptor back up to the kernel when the
filesystem stats are requested.
This makes the user experience with eg: Finder on macOS nicer.
Reviewed By: chadaustin
Differential Revision: D17255859
fbshipit-source-id: ed9f3b9fd386c5706539879513854a9cd1550d8a
Summary:
Understanding disk usage and cleaning it up is a relatively frequently
asked question, and users are often shocked that "eden is using so much space"
when the reality is that they're just seeing the aggregate from a `du` command
that includes their build artifacts from their bind mounts.
This diff adds `eden du` as a friendly utility that helps to break down the
disk usage into meaningful categories and gives some hints on how to reclaim
space.
Reviewed By: chadaustin
Differential Revision: D17252322
fbshipit-source-id: 7348692c95cd319ca315c5be466b397b4969971d
Summary:
The macos fuse kext will block umount(2) until it gets
a reply to the FUSE_DESTROY opcode, causing `eden stop` to always
end up SIGKILL'ing the process, and thus causing an fsck on the next
startup.
So: let's respond to it after dispatching to the destroy method.
Reviewed By: chadaustin
Differential Revision: D17251386
fbshipit-source-id: 947d2aeb65edadbfbbac8b2673933ade283215b0
Summary: [Thrift] Bake templates into the compiler binary rather than having to package the templates with the compiler.
Reviewed By: stevegury, vitaut
Differential Revision: D16356056
fbshipit-source-id: b971dce7aada8dc2a26587fbf818e661acd0c555
Summary:
This should make it easier to eg: enable fbzmq on macos at a later
time, and also makes things more explicit about what is being built, and
importantly, by listing these in the manifest ensures that we have a
hash change if we change this list; we wouldn't trigger such a change
if the list were encoded solely in builder.py
Reviewed By: chadaustin
Differential Revision: D17133149
fbshipit-source-id: caf0dd45e262188eeefafe0868ef95ad257a4950
Summary: artillery doesn't work in mode/mac, so break the CLI dependency and move it into its own binary.
Reviewed By: simpkins
Differential Revision: D17135496
fbshipit-source-id: 2739560ec6930bfd277fb7cd80bef1588640ac67
Summary:
* Fix a minor issue with `add_fb_python_executable` where it would
emit `--main` even if `MAIN_MODULE` had not been specified
* Introduce the ability to rename python sources in the manifest so
that they have a different install path.
* Note that this changes the DEPENDS parameters to reference abs_sources;
previously these were using relative paths to the sources pulled directly
from the SOURCES arguments, but since those can now contain aliasing
operations we need to pre-process the list. I switched to abs_sources
because that was already being maintained. If for some reason the
DEPENDS list needs to be relative paths, this will need to be adjusted.
Reviewed By: simpkins
Differential Revision: D17147417
fbshipit-source-id: d0825bfbdad6be658c078aaac6645e6926a1530f
Summary:
This diff adds a small abstraction that allows for uploading
and downloading from an artifact cache.
We try to download from this cache at build time, but will only
try to populate it for continuous builds--those are built from
code that has been reviewed and landed on master. This restriction
helps to avoid thrashing the cache with works in progress and
results in a slightly more trustworthy state of the cache contents.
In addition to this, we choose only to cache third party projects.
The rationale is that our first party projects move too quickly to
be worth caching, especially since the cache granularity is for
the whole project rather than just changed elements of a given
project.
In a later diff I will introduce some implementations of the
cache class that work with eg: Travis or Circle CI caching.
Reviewed By: simpkins
Differential Revision: D16873307
fbshipit-source-id: 2bfb69e36615791747b499073586562f2ca48be9
Summary:
Build the hg store on macOS with Buck. This primarily involves putting
ServiceRouter and Rust datapack support behind build switches.
Reviewed By: fanzeyi
Differential Revision: D17106241
fbshipit-source-id: da4643a11d6e5d0a6df23bff1d5e1454ab351abe
Summary:
The Eden macOS build has regressed in a few ways since it's been
broken due to RocksDB changes. Fix those small issues.
Reviewed By: fanzeyi
Differential Revision: D17107209
fbshipit-source-id: ef2e97a84e2403e7b7f36a4a01e2ceecab69106e
Summary:
Update the fsck code to save any orphaned symlink inodes that it finds as
symlinks in the repair archive directory, rather than saving the contents as a
regular file.
Reviewed By: wez
Differential Revision: D17170346
fbshipit-source-id: 4cba8b27233b728114a80a327ab519b039297aea
Summary:
Use the new `OverlayChecker` class to automatically scan for errors and
attempt to repair them if the overlay was not shutdown cleanly the previous
time it was used.
Reviewed By: wez
Differential Revision: D16596601
fbshipit-source-id: 9923565b101ba953e92909e502be6ef5895c5cbd
Summary:
Update the OverlayChecker's `inodes_` map to store `InodeInfo` objects
directly, rather than pointers to `InodeInfo` objects allocated on the heap.
This tweaks some of the error handling code to look up `InodeInfo` objects in
the map in a few places, to avoid storing raw pointers to `InodeInfo` objects.
The `InodeInfo` objects generally shouldn't move once we start performing
error checking, but it seems better to be conservative here and avoid using
raw pointers that are only loosely coupled with the original object's
lifetime.
This probably shouldn't really make much of a performance difference in
practice, since this code is likely to be disk I/O bound anyway. (It does
appear to make a small difference in performance for ASAN-enabled builds when
the inode files are warmed up in the kernel cache.)
Reviewed By: wez
Differential Revision: D16750736
fbshipit-source-id: b089a259cc83ffd2fda6f83b617d95ce4ac467f9
Summary: [OpenSource] Cut `mstch` manifest, which was but is no longer used by `fbthrift`.
Reviewed By: avalonalex, davidtgoldblatt
Differential Revision: D17160816
fbshipit-source-id: 3b96142455d6990870e8ed3e5ce330d339d5a657
Summary:
Feed the first-party oncall data through to the testpilot
invocation. This will set the owner of the test in continuous runs.
The oncall is passed through via the sandcastle module, which means
that you will have to manually pass it through for local testing
(see test plan), but it should automatically get picked up when
sandcastle schedules the `test` step of the job.
Reviewed By: chadaustin
Differential Revision: D17146802
fbshipit-source-id: a4f0e65853a46ed8709594c96db859ede2530b00
Summary: when trying to build openr with `getDeps.py` constant definitions where not available since they were not part of the generated thrift lib. this fixes it.
Reviewed By: chadaustin
Differential Revision: D16064417
fbshipit-source-id: ee2b3e061caf67235f4a873405cf6cd6fb663ef4