| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|\
| |
| |
| |
| | |
vespa-engine/toregge/fix-format-string-in-tsan-digest
Fix format string in vespa-tsan-digest.
|
| | |
|
|\ \
| | |
| | |
| | |
| | | |
vespa-engine/toregge/include-csignal-to-get-declaration-of-kill
Include csignal to get declaration of kill
|
| |/ |
|
|/ |
|
| |
|
|
|
|
|
|
|
| |
Hide all nitty-gritty details of how capabilities map to internal
bit set positions by making more of Capability private and only
allowing CapabilitySet to see how the sausages are made. Move all
bit set functionality to CapabilitySet, where it really belongs.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adds the following:
* Named capabilities and capability sets that represent (respectively)
a single Vespa access API (such as Document API, search API etc)
or a concrete subset of individual capabilities that make up a
particular Vespa service (such as a content node).
* A new `capabilities` array field to the mTLS authorization policies
that allows for constraining what requests sent over a particular
connection are allowed to actually do. Capabilities are referenced
by name and may include any combination of capability sets and
individual capabilities. If multiple capabilities/sets are configured,
the resulting set of capabilities is the union set of all of them.
* An FRT RPC-level access filter that can be set up as part of RPC
method definitions. If set, filters are invoked prior to RPC methods.
* A new `PERMISSION_DENIED` error code to FRT RPC that is invoked if
an access filter denies a request.
This also GCs the unused `AssumedRoles` concept which is now deprecated
in favor of capabilities.
Note: this is **not yet** a public or stable API, and capability
names/semantics may change at any time.
|
| |
|
|\
| |
| |
| |
| | |
vespa-engine/toregge/remove-array-bounds-warning-in-vespalib
Remove array-bounds warning (vespalib).
|
| | |
|
| | |
|
|/ |
|
|\
| |
| | |
stop passing nullptr
|
| | |
|
| | |
|
| | |
|
|/
|
|
| |
manual allocation.
|
| |
|
|
|
|
|
| |
used in peek/slice to avoid having to convert small numbers to strings
before resolving the enum values.
|
| |
|
|\
| |
| | |
common memory tools
|
| | |
|
| | |
|
|/
|
|
|
| |
- 64 -> 256 partitions
- 99999 -> 9999999 maximum small number
|
| |
|
| |
|
|
|
|
|
|
| |
It is not well-defined to call a pthread function with a thread that
is no longer valid. Remove test and add a precondition comment to
the function that IDs must be valid.
|
| |
|
|\
| |
| |
| |
| | |
vespa-engine/vekterli/dump-stack-of-deadlocked-thread
Let deadlock detector dump stack of potentially deadlocked threads
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Enable cross-thread stack tracing as part of signal handler init
code in both storage and proton daemons.
Make deadlock detector parameters live configurable. Remove existing
`restart` config definition annotations to reflect this.
Remove dumping of bucket DB locks which hasn't really worked for a
long time now.
|
|/ |
|
|\
| |
| |
| |
| | |
vespa-engine/vekterli/add-cross-thread-stack-trace-dumping
Add support for cross-thread stack dumping to vespalib
|
| | |
|
| |
| |
| |
| | |
Name resolving does not necessarily work for static functions.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
Matches the use of seq_cst for the rest of the stack dumping logic.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There's no existing API for conveniently getting the stack trace of any other thread
than your own, so we have to turn things around a bit and make the target thread
dump its own stack in a way that we can then safely access and return it.
We allow for hooking SIGUSR2 at process startup time and use this as our dedicated
stack dump signal internally. The process of stack dumping is then basically:
1. Caller sends SIGUSR2 to the target thread. This happens within a global mutex
that ensures no other callers can attempt to dump stack at the same time. This
is because we use a single, globally shared state between caller and target
(the same signal handler function is used by all threads).
2. Caller acquire-polls (with 1ms sleep) for target thread signal handler completion.
Fancy technologies such as mutexes and condition variables are not safe to use
from within a signal handler and therefore cannot be used.
3. Target thread suddenly finds itself in Narnia (signal handler). Since the
signal is the magical SIGUSR2, it proceeds to dump its stack frame addresses in
a shared buffer. It then toggles completion, with release semantics, before
returning to its regularly scheduled programming.
4. Caller exits poll-loop and assembles a complete stack trace from the frame
addresses in the shared buffer, demangled and shiny.
Signal-safe stack frame dumping currently uses Boost.Stacktrace, which is a
header-only dependency and appears to use libunwind under the hood.
|
|\ \
| | |
| | | |
- Optimize get_tensor_ref optimizing for no branches on happy path.
|
| | |
| | |
| | |
| | |
| | | |
- Also drop check for reference as that is done in the next called method.
- Inline DirectTensorStore::get_tensor.
|
|\ \ \
| | | |
| | | |
| | | |
| | | | |
vespa-engine/toregge/convert-vespalib-rmdir-to-deprecated-shim
Convert vespalib::rmdir to a deprecated shim.
|
| | | | |
|
| | | | |
|
| |/ /
|/| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
than the else branch.
This is based on experience since gcc 2.8 and til today, and is not a definitive truth. Just more likely.
if (criteria) {
most_likely_executed code
} else {
less_likely_executed code
}
While a single branched if is assumed less likely.
|
|/ / |
|
| | |
|
| | |
|