| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
* `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.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Per
https://docs.python.org/3/library/asyncio-policy.html#asyncio.AbstractChildWatcher.add_child_handler,
the callback from a child handler must be thread safe. Not all our
callbacks were. This changes all our callbacks to schedule a call for
the next loop iteration instead of executing it directly.
|
|
|
|
|
|
|
|
| |
The documentation
(https://docs.python.org/3/library/asyncio-policy.html#asyncio.AbstractChildWatcher)
is apparently missing this part, but the code mentions that new
processes should only ever be called inside a with block:
https://github.com/python/cpython/blob/99eb70a9eb9493602ff6ad8bb92df4318cf05a3e/Lib/asyncio/unix_events.py#L808
|
|
|
|
| |
We don't need to keep a reference to the watcher, let's remove it.
|
|
|
|
|
|
|
|
|
|
|
|
| |
This delays the call to the re-scheduling of jobs until the current
event loop as terminated.
This is in order to reduce the number of time we call this method per
loop, which should reduce the pressure on the loop and allow faster
event handling
Since the call is now delayed, also ensure we only call it once per loop
iteration.
|
| |
|
|
|
|
|
|
| |
Calling _reset() instead of completely replacing the object fixes
element plugins that use a virtual directory object across Sandbox.run()
calls such as the compose plugin with integration commands.
|
|
|
|
| |
This reinitializes a CASBasedDirectory object from a directory digest.
|
| |
|
|
|
|
|
|
|
|
| |
To protect the local cache of buildbox-casd from corruption without the
use of FUSE, buildbox-casd has to run as a different user.
Use less restrictive umasks in the source determinism tests to allow
buildbox-casd to function when it is running as a separate user.
|
|
|
|
|
| |
This is set to True if buildbox-casd is installed with the set-uid bit
and thus, indicates whether buildbox-casd is running as a separate user.
|
|
|
|
|
|
|
|
|
|
|
| |
By default, Linux doesn't allow creating hardlinks to read-only files of
other users since Linux 3.6 (see /proc/sys/fs/protected_hardlinks).
This fixes staging when buildbox-casd is running as a separate user and
the traditional bubblewrap sandboxing backend is used. This combination
is not recommended, however, it's triggered in CI by docker images that
run buildbox-casd as a separate user and a few test cases that override
BST_FORCE_SANDBOX.
|