Fixed few subtle threading bugs uncovered by stress test and rewrote the test to be model-based (#1157)

* testing: refactored logs directory management

* content: fixed index mutex to be shared across all write sessions

added mutex protection during writecontent/refresh race

* testing: upload log artifacts

* content: bump revision number after index has been added

This fixes a bug where manifest manager in another session for
the same open repository may not see a content added, because they
will prematurely cache the incomplete set of contents.

This took 2 weeks to find.

* manifest: improved log output, fixed unnecessary mutex release

* testing: rewrote stress test to be model-based and more precise
This commit is contained in:
Jarek Kowalski
2021-07-01 21:37:27 -07:00
committed by GitHub
parent d73e0d60ce
commit e64d5b8eab
19 changed files with 929 additions and 336 deletions

View File

@@ -18,3 +18,10 @@ jobs:
run: make test-with-coverage
- name: Publish Coverage Results
run: make ci-publish-coverage
- name: Upload Logs
uses: actions/upload-artifact@v2
with:
name: logs
path: .logs/**/*.log
if-no-files-found: ignore
if: ${{ always() }}