[05:23] morning [07:19] morning [07:26] pstolowski: Hi! You are also welcome to join us in libera.chat :-) [07:26] pstolowski: mardy hey [07:27] mardy: the channel has migrated already? [07:32] mardy: i'm there already since last week, it is just still kinda empty ;) [07:36] fwiw registered my nick for now [07:51] just about 20 people there [08:12] mardy: pstolowski: any reviews to look at? [08:13] i remember that pstolowski has his phase 2 bits, but some bits were distilled to separate PRs [08:13] s/bits/changes/ [08:16] mborzecki: yeah, https://github.com/snapcore/snapd/pull/10284 is the distilled part (with some changes from Samuele) [08:16] PR #10284: o/snapstate: introduce minimalInstallInfo interface [08:19] * pstolowski feeling schizophrenic being on libera and freenode at the same time [08:21] don't feel inclined to switch until matrix bridge is up tbh [09:13] mborzecki: do you have anything that's close to land and just needs 2nd review? [09:14] pstolowski: this one probbaly https://github.com/snapcore/snapd/pull/10254 it's a longer one though 🙂 not that i didn't warn you [09:14] PR #10254: overlord/devicestate: tasks for creating recovery systems at runtime [09:14] ok :) i feel warned [09:25] PR snapd#10292 opened: WIP: overlord/servicestate: omit service list if only snap given [10:04] mborzecki: +1, a few nitpicks [10:07] pstolowski: thanks, let me take a quick look at the comments and push patches [10:11] PR snapd#10281 closed: release-tools/changelog.py: implement script to update all the changelog files [10:24] mborzecki: is there a problem landing https://github.com/snapcore/snapd/pull/10241 ? [10:24] PR #10241: tests: set memory limit for snapd [10:25] nb ijohnson has a quota test PR that also triggers oom [10:27] pstolowski: that's slightly different, ian's PRs set quota for services, this one sets a limit for snapd (and the child processes it spawns) [10:27] yeah, just wondering if our restore-prepare needs tweaking [10:29] quota PR is expecting oom [10:43] * pstolowski lunch [11:43] pstolowski: are the unit tests passing for you on master? [11:54] mborzecki: checking [12:03] pstolowski: i've hit https://paste.ubuntu.com/p/pvgRcwVXXy/ with this branch https://github.com/snapcore/snapd/pull/10207 but i guess it's already fixed in master [12:03] PR #10207: vendor: bump github.com/canonical/go-tpm2 revision [12:04] mborzecki: passes here [12:17] mardy: i commented on the cause of the failures with your other approach [12:30] pstolowski: thanks! [12:31] PR snapd#10254 closed: overlord/devicestate: tasks for creating recovery systems at runtime [12:37] yay! something landed finally \o/ [12:46] ahah [12:46] mardy: idk if you've seen https://github.com/snapcore/snapd/pull/10282#discussion_r637882294 json and pointers is (not)fun ;) [12:46] PR #10282: services: remember if acting on the entire snap [12:46] pstolowski: I'm still trying to understand how the information flows, but I noticed that runServiceCommand() takes the list of service names both in its last parameter, and in the Names field of the AppInstruction. [12:48] mardy: yeah it is possible Inst is passed around anyway just for actual instruction etc, there might be some redundancy [12:49] mardy: if you see a way to simplify any of that then feel free to do it [12:49] mborzecki: yes, thanks. So, the idea is that by default a false boolean is considered empty (if not a pointer), right? [12:50] mardy: yes, where empty == default initialization value afaiu [12:50] mardy: fwtw that was part of big refactoring of internal handling of services where we didn't have a central place that actually does the work. some details like this are still not ideal [12:50] now at least we have service-control task as a central place [12:50] mardy: the pointer is only useful if you want to know whether the thing was present in the input data (json in this case) [13:32] ijohnson: i've opened https://github.com/snapcore/snapd/pull/10293 with the patch update for debian sid [13:32] PR #10293: packaging/debian-sid: update locale patch for the latest master [13:36] PR snapd#10293 opened: packaging/debian-sid: update locale patch for the latest master [13:54] thanks bboozzoo taking a look now [13:59] pstolowski: I'm a bit confused about what I should change in getServiceInfos(), because this method is not computing the service list itself: it's getting it as a parameter [14:16] mardy: afaiu it's similar to appInfosFor, only limited to services. in particular it's checking if snap name was passed to mean all services. I think it needs to also set ExplicitlyRequested because if you look at runServiceCommand, it also creates service-control task, so needs to follow same logic [14:17] mardy: it eventually calls serviceControlTs(..) method that you modified [14:18] mardy: (i mean runServiceCommand calls it) [14:20] mardy: esentialy, serviceControlTs() can be called for 'snap stop|start|restart' (which you covered) but also for 'snapctl stop|start|restart' (i.e. from hooks) and runServiceCommand is the starting point for the latter [14:23] mardy: does it make sense? [14:28] pstolowski: yes, I didn't realize that the parameters it gets can also consist of just snap names. Yes, I will do that change, but I don't think it will help for the spread tests. [14:29] for the spread tests, we need to do the opposite (expanding the list of snap services) somewhere later [14:35] mardy: it might actually fix at least services-snapctl failures [14:36] because this tests restarts specific services via snapctl, and since ExplicitlyRequested is never set there, it probavly restarts all of them (?) [15:15] bboozzoo: hey so when using the cmdline.extra file for gadgets, comments and multi-line works the same as for cmdline.full right ? [15:30] experiencing network issues [16:05] ijohnson, mborzecki : in the light of yet another report of download getting stuck while in "download-snap" task handler, i'm wondering about enhancing our debug api with a method that dumps stracktraces of all go routines, do you guys think it makes sense? this might be better than asking someone for kill -abrt ? [16:06] pstolowski: makes sense to me, but remind me does the debug command require auth or root to use ? [16:06] if not, we might want to make sure that only root can do the stacktrace dumping, otherwise we could inadvertently leak secrets that snapd is working on from that endpoint [16:07] ijohnson: yeah we don't require root atm [16:07] pstolowski: could we just make the whole `/debug` endpoint for snapd socket root only ? [16:07] root/auth [16:09] ijohnson: we could, but i don't know about potentially breaking someone with it; otoh this is a debug api and not stable by definition [16:10] yeah I'm fine breaking someone relying on the debug endpoint being user accessible [16:10] I mean obvs let's run it by mvo/pedronis when they are back, but you have my +1 ⭕️ [16:10] whoops meant 😀 [16:11] indeed; thanks :) [16:24] ijohnson: yes, comments & multline in cmdline.extra is handled identically to cmdline.full [16:24] nice [16:24] iow it's done by the same bit of code [16:24] right, that's what I thought, thanks for confirming [16:25] ijohnson: as for downloads, hmm we have a profiling endpoint exposed over debug api, you can dump a trace of what's happening there [16:31] hmm maybe we should make that root now then [16:32] ijohnson: take a look at tests/main/debug-pprof, there should be an example, for trace you can run `curl -s -o snapd.trace --unix-socket /run/snapd.socket 'http://localhost/v2/debug/pprof/trace?seconds=30` to grab 30s and so on [16:32] then `go tool trace snapd.trace` will open a browser [16:32] nice, pstolowski ^ [16:32] and it is root only [16:33] ah perfect it is already root only [16:33] i played a bit with adding custom traces too such that you could track which task is being executed [16:46] ijohnson: had to force push an update to https://github.com/snapcore/snapd/pull/10293 [16:46] PR #10293: packaging/debian-sid: update locale patch for the latest master [19:23] PR snapd#10294 opened: release-tools/changelog.py: refactor regexp + file reading/writing [19:51] PR snapcraft#3527 closed: ua manager: install ubuntu-advantage-tools as needed (CRAFT-67)