| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
The default exception handler of the async event loop bypasses
our custom global exception handler. Ensure that isn't the case,
as these exceptions are BUGS & should cause bst to exit.
|
|
|
|
|
| |
Instead output "junction" in magenta for info. Also include test
in format/junctions.py
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PipelineSelection is one of the few stringy types that weren't
converted to FastEnum, presumably because we lacked a mechanism for
only allowing a sub-set of options as CLI arguments.
We've re-designed this since, and as part of the UI/UX refactor we'd
like to generally clean this, but that is probably still a while out.
Since that hasn't happened, for now, this adds a feature to the
FastEnumType that allows specifying only a subset of values is allowed
for a specific command, so that we can use the type as a proper
enum.
We also get rid of a number of accidental uses of strings, and move
PipelineSelection to buildstream.types so that we don't have a
significant import overhead for it.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`psutil.Process.cpu_affinity` is not available on many non-Linux
platforms, like AIX and Solaris. We already have such a case with Darwin
where we need to resort to using `os.cpu_count()`.
Rather than adding more subclasses and overrides, add that logic as a
fallback in the main `Process` class. `os.cpu_count()` should generally
always be available, so hopefully we will only need to override this in
future too much or at all.
Fixes #1244.
|
|
|
|
|
| |
The chroot sandboxing backend didn't work across platforms and has been
replaced by the buildbox-run sandboxing backend.
|
| |
|
|
|
|
|
| |
In Python 3.8, `ThreadedChildWatcher` is the default watcher that causes
issues with our scheduler. Enforce use of `SafeChildWatcher`.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* `uname -m` is unusable in case of IBM AIX 7 as it reports the serial
number of the machine. As a workaround, special case it and use the
reported processor identifier.
* tests/format/optionos.py: Don't use AIX for unsupported architecture
`AIX` is special-cased in BuildStream, so use a different system for
testing unsupported architectures.
|
|
|
|
|
|
|
|
|
|
|
| |
Some Solaris 11 servers report `uname -m` as `sun4v`. It uses the same
SPARC v9 processor architecture so add an alias for it as we already
support `sparc-v9`.
`uname -a` output for reference:
$ uname -a
SunOS sundev1 5.11 11.3 sun4v sparc sun4v Solaris
|
|
|
|
|
|
|
|
|
|
|
| |
As we handle subprocess termination by pid with an asyncio child
watcher, the multiprocessing.Process object does not get notified when
the process terminates. And as the child watcher reaps the process, the
pid is no longer valid and the Process object is unable to check whether
the process is dead. This results in Process.close() raising a
ValueError.
Fixes: 9c23ce5c ("job.py: Replace message queue with pipe")
|
| |
|
|
|
|
|
| |
The tests are flaky due to non-deterministic timestamps in the output of
`ls -l`. See https://gitlab.com/BuildStream/buildstream/issues/1218
|
| |
|
|
|
|
|
| |
This is required for testing with userchroot to create staging
directories in a system-specific prefix.
|
|
|
|
|
|
|
|
|
| |
If we don't, and encounter a file we don't own, but have permission to
delete, we'll fail with EPERM, since we won't be able to change
permissions but will be able to delete it.
Instead, we now try to change permissions and remove a file *after* we
realize we couldn't at first.
|
| |
|
|
|
|
|
| |
"Ignore submodule" sounds like it could be an action, so this changes the name
to more clearly be a predicate.
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, GitSourceBase would only consider immediate submodules of the
superproject. It now fetches and stages recursively.
To achieve this, this commit somewhat refactors the relationship between
GitMirror and GitSourceBase. Enumerating GitMirrors for the submodules is now
done in GitMirror itself. GitSourceBase recursively iterates these mirror
classes with _recurse_submodules and applies the source configuration with
_configure_submodules.
|
| |
|
| |
|
|
|
|
|
| |
This variable is used only once, when the original is used multiple
times. This only increases the cognitive load
|
|
|
|
|
|
|
|
| |
A lightweight unidirectional pipe is sufficient to pass messages from
the child job process to its parent.
This also avoids the need to access the private `_reader` instance
variable of `multiprocessing.Queue`.
|
| |
|
|
|
|
| |
Replaced by buildbox-run.
|
|
|
|
|
| |
The buildbox-run sandbox is used only if BST_FORCE_SANDBOX is set to
buildbox-run.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
At present it doesn't seem to be possible to use ignore-remote-caches
and also cache cross-junction artifacts in one's own cache. By passing
the parent caches to the junction we ensure that things get cached in
the parent cache.
For a motivating purpose, consider that one may have a (patched)
junction which specifies a cache incompatible with master. This will
throw warnings at every invokation of bst, or you won't cache
cross-junction artifacts.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|