Age | Commit message (Collapse) | Author |
|
... by explicitly catching any possible exception. Mainly to make clang-tidy
happy.
...
|
|
...in creating Git tree from filesystem directory.
|
|
|
|
|
|
...in methods that should not report at error level themselves,
but let this be handled by its callers.
While there, remove an unneeded path manipulation in a defferent
set of log messages.
|
|
...while also removing some unneeded one.
Do not implicitly trust that the third-party code called in these
methods is non-throwing and instead properly handle any exception
that might arise. Also remove the specifiers from some anonymous
namespace methods where a try-catch would be overkill and let
their callers handle any exceptions instead.
|
|
...and fix inconsistent capitalisation.
|
|
Do not implicitly trust that the third-party code called in these
methods is non-throwing and instead properly handle any exception
that might arise.
|
|
|
|
|
|
In particular, ensure that Git roots check for, e.g., upwards
symlinks, before returning blobs and trees. To ensure that only the
bear minimum extra work is performed for this purpose, Git roots
now keep also the root's GitTreeEntry as a field, allowing the
validity check of root source trees to take place only once and
only if required.
|
|
|
|
|
|
...with respect to rejecting invalid entries such as upwards
symlinks. Also ensure that valid trees are only checked once by
remebering known valid tress though marker files in local storage.
|
|
...through marker files kept in storage under generation regime.
These can be used to allow valid source trees, i.e., those free of
upwards symlinks, to be cached in a persistent manner over multiple
builds.
|
|
This is useful when the caller already knows that the tree to look
up is valid, and thus the extra check step can be safely skipped.
|
|
This removes a scenario where otherwise successful (exit code 0)
calls to just and just-mr would result in an error-level log
message.
|
|
|
|
Match behaviour of reading trees, which always checks for invalid
entries, also for reading blobs.
|
|
This allows individual blobs read to be checked, e.g., for upwards
symlinks, also when not part of a tree, which performs such a
validation for its entries during its parsing into a GitTree.
|
|
|
|
|
|
...in all return paths, including in reporting caught exceptions.
In this way give the opportunity for any calling AsyncMap to
receive an expected fatal logger call on failure and thus be able
to shut down gracefully. This is in line with the AsyncMap design,
where the loggers are assumed to be safe to call by a consumer.
|
|
|
|
|
|
|
|
At various places in the build tool, we try to read files from various
CASes and caches. The absence of a file there is normal; therefore,
reduce log level in order to not overload the debug-level log.
|
|
|
|
... by using the write-rename dance. This allows processes
waiting for pid or similar files to rely on the information
being available as soon as the file is available.
|
|
|
|
Do not emit errors when it does not lead to build failures. Callers
handle the log level at which failures of this method should be
logged.
|
|
|
|
|
|
... and rename appropriately to reflect contents more precisely
than the generic "common". This separation also disentangles
dependencies a bit.
|
|
Although references give an additional information about ownership, they introduce additional design difficulties.
|
|
|
|
...to remove the unnecessary link between folder name and the logic
of resolve_symlinks_map.
|
|
|
|
Trying to access a git object return a recoverable failure, hence
the failure to find the object in the git object database should
be logged at warning level at most. Moreover, in some cases we
should log that event at an even lower level, e.g., if we're just
checking the presence of the object in the local git cas to avoid
unnecessary network access.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
...that is an abstract representation of roots that must be computed before the start of the main build.
|
|
|