snappy:tweak/main-writable-data-2016-todo

Last commit made on 2024-04-25
Get this branch:
git clone -b tweak/main-writable-data-2016-todo https://git.launchpad.net/snappy

Branch merges

Branch information

Name:
tweak/main-writable-data-2016-todo
Repository:
lp:snappy

Recent commits

5763ef0... by Zygmunt Krynicki

tests: implement TODO in main/writable-areas from 2016

Apparently we never enabled the code to check if we can write to
SNAP_USER_COMMON. Better late than never.

Signed-off-by: Zygmunt Krynicki <email address hidden>

7a30e8e... by Maciej Borzecki

o/snapstate: fix race in fake store operations

Uncovered with -race:
```
==================
WARNING: DATA RACE
Read at 0x00c0003b13e0 by goroutine 2273:
  github.com/snapcore/snapd/overlord/snapstate_test.(*fakeStore).Download()
      /home/maciek/work/canonical/snapd/overlord/snapstate/backend_test.go:744 +0x23d
  github.com/snapcore/snapd/overlord/snapstate.(*SnapManager).doPreDownloadSnap.func1()
      /home/maciek/work/canonical/snapd/overlord/snapstate/handlers.go:842 +0x241
  github.com/snapcore/snapd/timings.Run()
      /home/maciek/work/canonical/snapd/timings/helpers.go:26 +0x7e
  github.com/snapcore/snapd/overlord/snapstate.(*SnapManager).doPreDownloadSnap()
      /home/maciek/work/canonical/snapd/overlord/snapstate/handlers.go:841 +0x574
  github.com/snapcore/snapd/overlord/snapstate.(*SnapManager).doPreDownloadSnap-fm()
      <autogenerated>:1 +0x47
  github.com/snapcore/snapd/overlord/state.(*TaskRunner).run.func1()
      /home/maciek/work/canonical/snapd/overlord/state/taskrunner.go:220 +0xa2
  gopkg.in/tomb%2ev2.(*Tomb).run()
      /home/maciek/work/canonical/snapd/vendor/gopkg.in/tomb.v2/tomb.go:163 +0x3b
  gopkg.in/tomb%2ev2.(*Tomb).Go.gowrap2()
      /home/maciek/work/canonical/snapd/vendor/gopkg.in/tomb.v2/tomb.go:159 +0x44

Previous write at 0x00c0003b13e0 by goroutine 2274:
  github.com/snapcore/snapd/overlord/snapstate_test.(*fakeStore).Download()
      /home/maciek/work/canonical/snapd/overlord/snapstate/backend_test.go:744 +0x331
  github.com/snapcore/snapd/overlord/snapstate.(*SnapManager).doPreDownloadSnap.func1()
      /home/maciek/work/canonical/snapd/overlord/snapstate/handlers.go:842 +0x241
  github.com/snapcore/snapd/timings.Run()
      /home/maciek/work/canonical/snapd/timings/helpers.go:26 +0x7e
  github.com/snapcore/snapd/overlord/snapstate.(*SnapManager).doPreDownloadSnap()
      /home/maciek/work/canonical/snapd/overlord/snapstate/handlers.go:841 +0x574
  github.com/snapcore/snapd/overlord/snapstate.(*SnapManager).doPreDownloadSnap-fm()
      <autogenerated>:1 +0x47
  github.com/snapcore/snapd/overlord/state.(*TaskRunner).run.func1()
      /home/maciek/work/canonical/snapd/overlord/state/taskrunner.go:220 +0xa2
  gopkg.in/tomb%2ev2.(*Tomb).run()
      /home/maciek/work/canonical/snapd/vendor/gopkg.in/tomb.v2/tomb.go:163 +0x3b
  gopkg.in/tomb%2ev2.(*Tomb).Go.gowrap2()
      /home/maciek/work/canonical/snapd/vendor/gopkg.in/tomb.v2/tomb.go:159 +0x44
```

Signed-off-by: Maciej Borzecki <email address hidden>

7c118e7... by Maciej Borzecki

o/snapstate: fix more racy operation in fake backend

Fix a race when appending an operations during failure scenarios in fake
backend's LinkSnap.

Reported by -race:

```
==================
WARNING: DATA RACE
Read at 0x00c000160580 by goroutine 24:
  github.com/snapcore/snapd/overlord/snapstate_test.(*fakeSnappyBackend).appendOp()
      /home/runner/work/snapd/snapd/src/github.com/snapcore/snapd/overlord/snapstate/backend_test.go:1506 +0x104
  github.com/snapcore/snapd/overlord/snapstate_test.(*fakeSnappyBackend).UndoCopySnapData()
      /home/runner/work/snapd/snapd/src/github.com/snapcore/snapd/overlord/snapstate/backend_test.go:1267 +0x11a
  github.com/snapcore/snapd/overlord/snapstate.(*SnapManager).undoCopySnapData()
      /home/runner/work/snapd/snapd/src/github.com/snapcore/snapd/overlord/snapstate/handlers.go:1843 +0x8f1
  github.com/snapcore/snapd/overlord/snapstate.(*SnapManager).undoCopySnapData-fm()
      <autogenerated>:1 +0x4d
  github.com/snapcore/snapd/overlord/state.(*TaskRunner).run.func1()
      /home/runner/work/snapd/snapd/src/github.com/snapcore/snapd/overlord/state/taskrunner.go:220 +0xb3
  gopkg.in/tomb%2ev2.(*Tomb).run()
      /home/runner/work/snapd/snapd/src/github.com/snapcore/snapd/vendor/gopkg.in/tomb.v2/tomb.go:163 +0x51
  gopkg.in/tomb%2ev2.(*Tomb).Go.func2()
      /home/runner/work/snapd/snapd/src/github.com/snapcore/snapd/vendor/gopkg.in/tomb.v2/tomb.go:159 +0x47

Previous write at 0x00c000160580 by goroutine 77:
  github.com/snapcore/snapd/overlord/snapstate_test.(*fakeSnappyBackend).RemoveSnapDataDir()
      /home/runner/work/snapd/snapd/src/github.com/snapcore/snapd/overlord/snapstate/backend_test.go:1343 +0x27a
  github.com/snapcore/snapd/overlord/snapstate.(*SnapManager).undoCopySnapData()
      /home/runner/work/snapd/snapd/src/github.com/snapcore/snapd/overlord/snapstate/handlers.go:1865 +0xa4a
  github.com/snapcore/snapd/overlord/snapstate.(*SnapManager).undoCopySnapData-fm()
      <autogenerated>:1 +0x4d
  github.com/snapcore/snapd/overlord/state.(*TaskRunner).run.func1()
      /home/runner/work/snapd/snapd/src/github.com/snapcore/snapd/overlord/state/taskrunner.go:220 +0xb3
  gopkg.in/tomb%2ev2.(*Tomb).run()
      /home/runner/work/snapd/snapd/src/github.com/snapcore/snapd/vendor/gopkg.in/tomb.v2/tomb.go:163 +0x51
  gopkg.in/tomb%2ev2.(*Tomb).Go.func2()
      /home/runner/work/snapd/snapd/src/github.com/snapcore/snapd/vendor/gopkg.in/tomb.v2/tomb.go:159 +0x47
```

Signed-off-by: Maciej Borzecki <email address hidden>

072a120... by Philip Meulengracht

wrappers: use Getuid in unit test to match the SetupTest code

44f8b51... by Maciej Borzecki

o/snapstate: fix race in fake backend operations

Fix a race when appending an operations during failure scenarios in fake
backend's LinkSnap.

Reported by -race:

```
==================
WARNING: DATA RACE
Read at 0x00c0004822c0 by goroutine 1597:
  github.com/snapcore/snapd/overlord/snapstate_test.(*fakeSnappyBackend).appendOp()
      /home/runner/work/snapd/snapd/src/github.com/snapcore/snapd/overlord/snapstate/backend_test.go:1506 +0x104
  github.com/snapcore/snapd/overlord/snapstate_test.(*fakeSnappyBackend).ForeignTask()
      /home/runner/work/snapd/snapd/src/github.com/snapcore/snapd/overlord/snapstate/backend_test.go:1416 +0x1c4
  github.com/snapcore/snapd/overlord/snapstate_test.AddForeignTaskHandlers.func1()
      /home/runner/work/snapd/snapd/src/github.com/snapcore/snapd/overlord/snapstate/snapstate_test.go:366 +0x118
  github.com/snapcore/snapd/overlord/state.(*TaskRunner).run.func1()
      /home/runner/work/snapd/snapd/src/github.com/snapcore/snapd/overlord/state/taskrunner.go:220 +0xa2
  gopkg.in/tomb%2ev2.(*Tomb).run()
      /home/runner/work/snapd/snapd/src/github.com/snapcore/snapd/vendor/gopkg.in/tomb.v2/tomb.go:163 +0x3b
  gopkg.in/tomb%2ev2.(*Tomb).Go.gowrap2()
      /home/runner/work/snapd/snapd/src/github.com/snapcore/snapd/vendor/gopkg.in/tomb.v2/tomb.go:159 +0x44

Previous write at 0x00c0004822c0 by goroutine 1598:
  github.com/snapcore/snapd/overlord/snapstate_test.(*fakeSnappyBackend).LinkSnap()
      /home/runner/work/snapd/snapd/src/github.com/snapcore/snapd/overlord/snapstate/backend_test.go:1163 +0x484
  github.com/snapcore/snapd/overlord/snapstate.(*SnapManager).doLinkSnap()
      /home/runner/work/snapd/snapd/src/github.com/snapcore/snapd/overlord/snapstate/handlers.go:2213 +0x1ca7
  github.com/snapcore/snapd/overlord/snapstate.(*SnapManager).doLinkSnap-fm()
      <autogenerated>:1 +0x47
  github.com/snapcore/snapd/overlord/state.(*TaskRunner).run.func1()
      /home/runner/work/snapd/snapd/src/github.com/snapcore/snapd/overlord/state/taskrunner.go:220 +0xa2
  gopkg.in/tomb%2ev2.(*Tomb).run()
      /home/runner/work/snapd/snapd/src/github.com/snapcore/snapd/vendor/gopkg.in/tomb.v2/tomb.go:163 +0x3b
  gopkg.in/tomb%2ev2.(*Tomb).Go.gowrap2()
      /home/runner/work/snapd/snapd/src/github.com/snapcore/snapd/vendor/gopkg.in/tomb.v2/tomb.go:159
      +0x44
```

Signed-off-by: Maciej Borzecki <email address hidden>

8a2d87d... by Zygmunt Krynicki

tests: document main/try

Signed-off-by: Zygmunt Krynicki <email address hidden>

b64427e... by Zygmunt Krynicki

tests: document main/try-non-fatal

Signed-off-by: Zygmunt Krynicki <email address hidden>

e1857a2... by Zygmunt Krynicki

tests: document main/try-snap-goes-away

Signed-off-by: Zygmunt Krynicki <email address hidden>

2e6149f... by Zygmunt Krynicki

tests: document main/try-snap-is-optional

Signed-off-by: Zygmunt Krynicki <email address hidden>

ace48f4... by Zygmunt Krynicki

tests: document main/try-twice-with-daemon

Signed-off-by: Zygmunt Krynicki <email address hidden>