| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
| |
We have a bunch of "failed to throttle: memcache: item not stored" errors in logs.
It seems that the cache item is evicted before we do CompareAndSwap.
|
| |
|
|
|
| |
Also include more information into the output: kernel config and
reproducer links.
|
| | |
|
| | |
|
| |
|
|
|
| |
At peak load times, it can be expected that CAS will require too many
iterations. There's no reason to report it as an error.
|
| |
|
|
|
|
|
|
| |
At the peak times, concurrency at individual keys can be high.
Do the updates more carefully - if we denied the request and another
instance did the same concurrently, there's no point in retrying the
write. The object stored at the key already exceeds the limit.
|
| |
|
|
|
| |
To ensure service stability, let's rate limit incoming requests to our
web endpoints.
|
| |
|
|
|
|
|
|
| |
This is a relatively expensive operation (hundreds of ms) that queries
many types of entities. At the same time, the content does not change
that often.
Cache it for 5 minutes after querying.
|
| |
|
|
| |
This will simplify caching of other dashboard output pieces.
|
| |
|
|
|
|
|
|
|
|
| |
The query may take up to 100ms in some cases, while the result changes
on quite rare occasions.
Let's use a cached version of the data when rendering UI pages.
We don't need extra tests because it's already excercised in existing
tests that trigger web endpoints.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For upstream Linux namespace, it sometimes takes up to 5-10 seconds to
load the main page. That is too much and the reason for this is
datastore not being intended for frequent querying of thousands of
entities from the database.
Let's take a step forward and at least cache the bugs we display on the
main page. Once in a minute, query them for all access levels, compress
and save to the memcached.
Only do it for non-filtered bugs, because otherwise it works fast
enough.
As the next step we could also take care of terminal pages.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We used to have a single global `config` variable and access it
throughout the whole dashboard application.
However, this approach has been more and more complicated test writing
-- sometimes we want the config to be only slightly different, so that
it's not worth it adding new namespaces, sometimes we have to test how
dashboard handles config changes over time.
This has already led to a number of hacky contextWithXXX methods that
mocked various parts of the global variable. The rest of the code had to
sometimes still use `config` directly and sometimes invoke getXXX(c)
methods. This is very inconsistent and prone to errors.
With more and more situations where we need to patch the config
appearing (see #4118), let's refactor the application to always access
config via the getConfig(c) method. This allows us to uniformly patch
the config and be sure that the non-patched copy is not accessible from
anywhere else.
|
| |
|
|
|
|
|
| |
Add a per-namespace page that contains:
1) The list of commits to backport from the trees fuzzed in that
namespace.
2) The list of commits to backport into the namespace.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Let bug labels come in three flavours:
1) Bug labels with multiple values (e.g. `subsystems`).
2) Bug labels with only one value (e.g. `prio`).
3) Flags.
Let users configure bug labels via email by issuing the following
commands:
#syz set subsystems: abc, def
#syz set no-reminders
#syz unset no-reminders
Also let users set tags for invididual bugs in reported bug lists:
#syz set <1> some-tag
|
| |
|
|
|
| |
Count the number of bugs without any subsystem and let users filter bugs
by this criteria.
|
| |
|
|
| |
For each subsystem, collect the number of open, fixed and invalid bugs.
|
| |
|
|
|
|
| |
1. Updated the "include"s.
2. No logs read API in the AppEngine anymore. Replaced by the GCP logging API.
3. Use "GO111MODULE=off gcloud beta app deploy ./dashboard/app/app.yaml --no-promote" to test new deployment.
4. Updated the documentation.
|
| |
|
|
|
|
| |
Building the memcache object with bug stats takes
significant time and periodically slows down user requests.
Update it with cron ahead of time.
|
|
|
We used to show number of fixed bugs at the top of the main page.
However, now with the button nagivation, "fixed" is shown on every page.
Fetching and processing all bugs on every page would be unwise.
Cache these stats in memcache. It will be useful to show more stats in future.
|