[00:24] ijohnson, hey [00:24] I left a comment in the PR [00:24] the issue can be reproduced [00:35] * cachio dinner [01:02] PR snapd#8150 closed: tests: ask tar to speak English [02:21] PR snapcraft#2951 opened: snap-packaging: remove broken host-compatibility check for runner [03:08] PR snapd#8173 opened: tests: adding arch-linux execution [06:19] morning [06:39] hm https://community.spotify.com/t5/Desktop-Linux/Spotify-Snap-randomly-stopped-working/td-p/4901987 [07:33] PR snapd#8172 closed: snapcraft.yaml: add python3-apt, tzdata as build-deps for the snapd snap [07:34] mvo: hi, can you review or get a review for #8130 ? [07:34] PR #8130: overlord, state: don't abort changes if spawn time before StartOfOperationTime (2/2) [07:40] mborzecki: #8136 needs a 2nd review from you [07:40] PR #8136: boot: write current_kernels in bootstate20, makebootable [07:41] pedronis: hi, will do [07:41] mvo: morning, evdev sucks, golang-evdev and python-evdev are buggy ;) [07:42] i'm not sure how libinput author didn'g go crazy [07:46] pedronis: hey, good morning [07:46] pedronis: sure, let me review this [07:46] mborzecki: uh, oh no [07:47] mborzecki: even for our (relatively) simple use-case it sucks? [07:48] mvo: yeah, good to use different test systems, the laptop keybiard and VM input device behaves completely differntly than my other keyboard [07:48] mborzecki: oh, woah [07:49] mborzecki: I did test with vm and with my thinkpad keyboard and for the simple things I did it was ok but sad to hear that it's so annyoing [07:49] mvo: some devices emit repeated keys, some do not, so we need to sync the initial state, then we have to actually look at key up/down rather than repeating event [07:49] also, golang-evdev SetRepeatRate() is buggy and parameter meaning/order is swapped than what i see in the kernel code that interprets them ;) [07:50] (same for python-evdev) [07:50] nonetheless, SetRepeatRate() does nothing with my other keyboard, there's no repeat at all :P [07:50] mborzecki: does any of this correlate with reported capabilities or it's random? [07:51] I mean can we know from caps if it does repeat or not? [07:51] pedronis: no, there's no capability that states that you get repeat events [07:51] ok [07:51] oh, and libinput ignores kernel autorepat events [07:51] like totally [07:52] yesterady I was reading something and it sounded like there are hardware auto-repeat, and some at higher levels [07:52] https://gitlab.freedesktop.org/libinput/libinput/blob/master/src/evdev-fallback.c#L537 afaict they synthesize their own events [07:52] and they might even interfere [07:53] e->value corrsponds to our KeyHold [07:53] good morning [07:54] pedronis: so i'm refactoring this to get the initial state of the keys as libinput does it, and then observe the up event and look at the time key is held [07:54] zyga: hey [07:54] are we low level input engineers now too? :) [07:54] and, fwiw the golang-evdev does not include a wrapper to get the initial state of keys :P so had to pull out the ioctls and do it myself [07:54] mborzecki: hm, if we only get up/down reliable that would make the UX really not nice [07:55] mvo: right, thus it's check initial state, then observe down if it appears and see if it's down for amount of time [07:56] and the goroutine leaks, bc we have the same problem as with netlink socket [07:56] mborzecki: aha, nice [07:56] mborzecki: that makes sense [07:56] mborzecki: do you want my fix for that? [07:57] mborzecki: which reminds me, can you review #8101 [07:57] zyga: it's not critical, it's a short lived process, but ultimately we'll need a fix, either yours or the Stopper thing [07:57] PR #8101: netlink: fix/support stopping goroutines reading netlink raw sockets [07:57] ack [07:58] oh, and will have to step out for a bit late to some blood tests [08:01] morning [08:02] * zyga recalls he has to do blood tests as well but needs to get an appointment first [08:02] hey pawel [08:05] mborzecki: what's the status of #8081 ? [08:05] PR #8081: tests/main/user-session-env: add test verifying environment variables inside the user session [08:07] pedronis: it should be good to go [08:07] let me merge master there [08:12] mborzecki: so it works in other distros but not ubuntu/debian ? [08:12] pedronis: zsh? yes, there's a lp bug i linked there [08:14] fwiw zsh has a sh compat mode for loading /etc/profile, it's used on fedora, arch and and probably suse too [08:15] the downside is that there's no standard way to do drop-in files for zsh like /etc/profile.d, otherwise we could fix it easily [08:15] yes, that bug doesn't seem to be going anywhere [08:16] and it's been there for a while now [08:21] hmm [08:21] mborzecki: I'm using zsh on my mac for a while [08:21] is there really not standard way? [08:21] * zyga looks at zsh in Ubuntu [08:22] mborzecki: can you please review https://github.com/snapcore/snapd/pull/8171 -- the failover test is still causing some pain [08:22] PR #8171: cmd/snap-failure/snapd: also rm snapd.socket if it still exists [08:28] zyga: added a note https://bugs.launchpad.net/ubuntu/+source/snapd/+bug/1640514/comments/30 [08:28] Bug #1640514: /snap/bin is not added to the PATH when using zsh Xenial):Confirmed> [08:28] doubt this will help the bug move forward [08:29] mmm [08:30] yeah, I see [08:30] man, everything is hard [08:33] * mborzecki has 3 keyboards connected to his pc now [08:33] mvo: I reviewed #8142 [08:33] PR #8142: client: add support for "ResumeToken", "HeaderPeek" to download [08:33] PR snapd#8130 closed: overlord, state: don't abort changes if spawn time before StartOfOperationTime (2/2) [08:35] pedronis: nice, thank you [08:35] yay, thanks for reviews [08:36] pedronis: would you like to take a quick look at https://github.com/snapcore/snapd/pull/8120 or can I land (has +2 already) [08:36] ? [08:36] PR #8120: cmd/snap-preseed: snapd version check for the target [08:36] pstolowski: I did skim it [08:37] pstolowski: related to reviews, can you finish reviewing #8101 [08:37] PR #8101: netlink: fix/support stopping goroutines reading netlink raw sockets [08:38] pedronis: i made 2 or 3 comments there [08:40] pstolowski: I know, do you want to block it on them? [08:40] I need to fetch something, back in 30 [08:41] pedronis: no, it's fine as a potential followup (if the comments make sense at all) [08:41] pstolowski: I expect the gc test to be a bit of a pain to write tbh [08:45] pedronis: i've never played with this aspect in go... wouldn't runtime.GC() make it deterministic for the test? [08:45] pstolowski: possibly, somebody has to try [08:46] about the comment, I'm happy to mention the GC in a follow up, if there no more comments [08:46] I asked mborzecki to review #8101 [08:46] as well [08:46] PR #8101: netlink: fix/support stopping goroutines reading netlink raw sockets [08:49] pstolowski: is not just the GC, is also finalizers, I don't remember in which thread they are run [08:50] pstolowski: the docs have this to say: The finalizer is scheduled to run at some arbitrary time after the program can no longer reach the object to which obj points. [08:57] pedronis: i see, it's tricky, you probably looked at https://medium.com/a-journey-with-go/go-finalizers-786df8e17687 [08:58] pstolowski: I meand, maybe it's trivial, maybe not [09:04] mvo: you have a weird code typo in 8142 now, also made a nitpick suggestion given it needs at least another commit [09:06] pedronis: I just noticed and force pushed the typo thing, sorry for that [09:12] mvo: +1, it needs a 2nd review now, maybe pawel or zygmunt [09:16] hi, is the snapd version which supports default tracks targeted to be in focal? [09:22] pedronis: thank you [09:22] ackk: yes, we plan to go with 2.44 [09:22] mvo, nice, thanks [09:26] * zyga looks forward to end of winter holidays on Monday [09:26] mvo: which branch is that? [09:27] zyga: what branch? [09:27] to review [09:27] PR snapd#8154 closed: tests: reset PS1 before possibly interactive dash [09:27] zyga: 8142 [09:28] mvo, is there an ETA for that? asking since we'd like to have the maas transitional package point to the default track [09:29] hey ackk [09:29] hi zyga [09:29] I heard there is some progress on the issue you were long plagued by [09:29] I hope we can get to the bottom if ot [09:29] *of it [09:30] zyga, the snapfuse one? well I can't reproduce it on another machine with 20.04, I hope I can reinstall my laptop soon w/20.04 and test there [09:31] ackk: 4-5 weeks until it's in stable [09:31] otoh mvo sort of managed to reproduce it [09:31] mvo, will you also upload to focal? or will it just be in the snapd snap ? [09:33] ackk: we plan to upload to focal [09:35] mvo, awesome, thanks [09:40] mvo: done [09:41] zyga: thank you! [09:43] hmm so, the input seems ot be working [09:46] mborzecki: yay [09:47] PR snapd#8101 closed: netlink: fix/support stopping goroutines reading netlink raw sockets [09:49] mvo: heh, it's super ugly ;) [09:55] pstolowski: https://github.com/snapcore/snapd/pull/8170#discussion_r382491439 [09:55] PR #8170: snap-preseed: support for preseeding of snapd and core18 [09:57] zyga: ty [10:03] damn, i'm late for the blood tests, got to go [10:03] pushed the changes to #8156 [10:04] PR #8156: cmd/snap-bootstrap: subcommand to detect UC chooser trigger <β›” Blocked> [10:16] pstolowski: I made a comment in 8170 [10:17] zyga: whats the status of 8133 ? [10:18] pedronis: I think it is non-essential but I want jamie to look at it first [10:18] pedronis: after 7614 lands it is no longer needed [10:18] pedronis: if it doesn't land it may be a factor for device assignment on arch [10:19] pedronis: but I didn't debug deeper to know [10:20] what's the highest priority of these: https://github.com/snapcore/snapd/pulls?utf8=%E2%9C%93&q=is%3Aopen+is%3Apr+review-requested%3Ajdstrand+author%3Azyga [10:21] pedronis: currently 8123 - jamie was looking at yesterday evening but said he will finish in the morning as priority request came in and he had to stop [10:21] then 7614 [10:21] apart from that last one I'm no longer blocked [10:22] I'm iterating on 7825 and it will be ready soon [10:22] I labeled the first and I'm tagging 7614 for 2.45 [10:22] thank you [10:22] that's great [10:23] https://www.irccloud.com/pastebin/eM7kmuRb/ [10:23] FAIL: overlord_test.go:694: overlordSuite.TestEnsureLoopPruneAbortsOld [10:23] ah fun [10:24] pstolowski: ^ [10:24] darn, my shell still sucks [10:24] brb, need to get coffee [10:24] pstolowski: the PR it failed on changes some C code, not related to any overlord bits [10:24] brb [10:25] pedronis,zyga : ah, overlordSuite.TestEnsureLoopPruneAbortsOld seems flaky, checking [10:26] pstolowski switching to take control over the ticker channel is probably the best way forward [10:26] if there's no easy fix [10:27] pedronis: i can prep a quick PR to bump sleep to 1500 (currently 1000) to match all other overlord tests. then will work on proper change in a followup? [10:28] pstolowski: if that helps [10:29] pstolowski: I made another comment in 8170 [10:29] unrelatedly [10:34] pstolowski: I made a nitpick comment in 8210, can be taken care in a follow up, I think it can be merged otherwise [10:35] back with coffee [10:35] pedronis: great, thanks, will do a followup [10:36] ok, let's fix that shell mistake [10:36] and land another big branch :) [10:49] PR snapd#8174 opened: tests: bump sleep time of the new overlord tests [10:51] pstolowski: looking at preseed.sh [10:51] pstolowski: umount_ubuntu_image can be simplified [10:51] pstolowski: you can just umount -l "$IMAGE_MOUNTPOINT/sys" [10:52] pstolowski: or better yet, use mount-tool to iterate over them [10:52] pstolowski: just nitpick on the code [10:52] the part about qemu-nbd is interesting [10:52] I need to look at it closer later today if I can [10:53] pstolowski: and in setup_preseeding, I would add head -n 1 to ensure that find only gives us one result [10:53] zyga: nice, thanks, i can address this when later (and i didn't forget about the other issue you found in error path of service wrapers, on my list) [10:54] s/when// [10:54] pstolowski: sure, just looking at it because it said mount :) [10:54] heh [10:54] and I'm waiting for spread to prepare to see if my new shell expression is better [10:55] PR snapd#8153 closed: [RFC] "snap run --explain" with different formating [10:56] mvo: hey, what's going on with explain there? [10:57] mvo: I should be able to help soon [10:59] mvo: this looks important https://bugs.launchpad.net/snapd/+bug/1864096 [10:59] Bug #1864096: Incomplete search path(s) for xdelta3 executable [10:59] mvo: we may be hitting the store for more downloads than necessary [10:59] pedronis: ^ [10:59] zyga: it's not clear to me how to push this forward or if the pr I just closed is even the right direction so I closed it to avoid wasting ppls time [11:00] zyga: let me look [11:00] mvo: can we chat about it (explain) later today [11:00] mvo: just pull me into a call if you have a moment and feel like it [11:00] zyga: ok [11:01] zyga: do you look into this xdelta thing or should I ? should be a simple fix but yeah, agreed that it's annoying [11:01] mvo: let me, I'm waiting for another cycle of spread [11:01] yeah [11:01] mvo: and something for 2.44 [11:01] to save on all the bits over all the fiber [11:01] mvo: zyga: there's little point discussion explain without me, I don't think mvo PR was too far off, but it's all in the details at this point [11:02] pedronis: aha [11:02] pedronis: is there something we can do to make it progress? [11:02] it's probably best to just sketch the api somewhere with usage examples [11:02] than modify the full PR [11:02] k [11:02] ok [11:04] my issue with the last iteration, is mostly how you had to use explain and start_section independently to into a section, even though conceptually is one thing [11:04] zyga: if you want you have a look at my latest code, maybe you have creative ideas, anyway, we can have a quick brainstorm to sketch some api [11:04] s/to into/to intro/ [11:05] pedronis: right, yeah, that's a problem [11:06] pedronis: there could be a _start_section(text) and "explain_indented()". but probaly needs a bit more time to sketch out something. anyway, having a brainstorm with zyga is probably a good idea and then we can get back to you [11:07] ok [11:09] mvo: also ideally there should be only one function to add a string entry and one for key: value. that probably needs some more state [11:09] zyga: can we close 8113 now that it looks like we go with 8123 ? [11:09] * zyga checks the numbers :) [11:09] I don't remember branch names that well [11:10] mvo: I think so but jamie said he will review both today morning [11:10] mvo: let's wait one more morning please [11:10] mvo: he was looking into it last night but something urgent pulled him [11:11] pedronis: yeah, the in-list could be part of the state, we will explore that [11:11] mvo: the point of that it should be hard to add a non "-" prefixed entry in the middle of a list, etc [11:11] pedronis: ok [11:12] pedronis: https://github.com/snapcore/snapd/pull/7728/files#diff-e4c8d0c72c7b412376e0a04e6ad4db41R37 is an example where this is mixed [11:12] PR #7728: cmd: implement snap run --explain [11:12] i.e. - Creating new per-snap mount namespace [11:12] desired mount profile: /var/lib/snapd/mount/snap.test-snapd-sh.fstab [11:12] pedronis: but maybe the output should change [11:12] but that's by design [11:13] that was what the output was meant to look like [11:13] mvo: I don't understand in which sense it's mixed [11:13] there's a list that containts k: v sections [11:14] these thing need to next to some extent [11:14] s/next/nest/ [11:16] pedronis: the list-item has a different indent than the following line, that's what I mean [11:17] mvo: I'm probably being obtuse, I still don't understand [11:18] pedronis: let me look at your suggestions with fresh eyes I'm probably just haven't thought it through yet [11:21] mvo: I can try to write down a strawman of api signatures, if that helps [11:30] mvo: https://paste.ubuntu.com/p/qRvD3thMdz/ [11:38] PR snapd#8120 closed: cmd/snap-preseed: snapd version check for the target [11:43] pedronis: thank you [11:51] re [11:54] hey maciek [11:57] hmm [11:58] errtracker tests are failing for me on 20.04 [11:58] * zyga looks [12:00] https://twitter.com/ubuntu/status/1230795310756245505 [12:02] brace yourselves, bug reports are coming? :) [12:04] brb, [12:09] hmm random unit test failure in overlord ensure loop? https://paste.ubuntu.com/p/3sxTTChNzh/ [12:14] hey :-) [12:14] Is there a way, to do something like that: [12:14] ``` [12:14] $ sudo snap install --dangerous --classic <(wget -q -O- https://github.com/sd-hd/runner-snap/releases/download/v2.165.2-19/runner-snap-v2.165.2-19) [12:14] error: cannot open: "/dev/fd/63" [12:14] ``` [12:14] The problem here seems to be `sudo` [12:14] With `root` it works. [12:17] mborzecki: PaweΕ‚ sent a PR for that failure [12:18] ah, cool, my mind is still stuck with input and debuild/dpkg -i snapd & ubuntu-core-initramfs loop [12:25] I can't find a option for sudo, to preserve the file descriptors on fork :-( [12:28] Oh, i found it `sudo -C ` . Now i get `sudo: you are not permitted to use the -C option` [12:28] Thank you. I will figure it out now. [12:32] sdhd-sascha: either way, snap install takes only snap names or filenames, it doesn't install from stdin [12:32] haha, so got the chooser trigger and service into initramfs and in my vm, the initramfs pivots earlier than the trigger is fired ;) [12:32] pedronis the `<( ... )` inside bash, creates a file descriptor [12:33] pedronis: so it's like a local file. But wget is non `sudo/root` but `snap install` is uid=0... [12:34] pedronis if often do this: `diff <(grep ....) <(grep ...) [12:35] pedronis: this is nice: [12:35] ``` [12:35] $ ls -l <(echo "hello world") [12:35] lr-x------ 1 sascha sascha 64 Feb 21 13:34 /dev/fd/63 -> 'pipe:[22821730]' [12:35] ``` [12:35] hmm [12:35] anyone here using 20.04 [12:35] or otherwise, can anyone run errtracker tests? [12:35] they keep failing for me and I cannot see why [12:38] * zyga digs into that [12:41] bah, another spread wasted on prune failure [12:55] pedronis: i got it :-) [12:55] I added this line to /etc/sudoers: `Defaults closefrom_override` [12:55] Then this works: [12:55] `sudo -C 99999 snap install --dangerous --classic <(wget -q -O- https://github.com/sd-hd/runner-snap/releases/download/v2.165.2-19/runner-snap-v2.165.2-19)` [12:55] Thank you :-) [13:08] cachio: hi, have you enabled manual/preseed test in nightly? [13:11] gaah [13:11] I debugged it [13:11] missing mocking [13:17] PR snapcraft#2948 closed: Regenerate the GDK pixbuf loaders cache file if for whatever reason it isn't there (LP: #1863801) [13:19] lp times out [13:19] eh [13:19] ok [13:20] I'm parking this for now: https://bugs.launchpad.net/snapd/+bug/1864197 [13:20] Bug #1864197: errtracker unit tests interact with real whoopsie.service === pedronis_ is now known as pedronis [13:20] Can i give snapcraft a default configuration for a snap? Or better use hooks for setting them ? [13:22] Wait. I ask on #snapcraft. Sorry [13:23] sdhd-sascha: 1) no 2) it could [13:23] zyga: thank you :-) [13:28] PR snapd#8175 opened: store: rely on CommandFromSystem snap to find xdelta3 [13:29] mvo: I opened https://github.com/snapcore/snapd/pull/8175 as draft, I have a small second patch that improves CommandFromSystemSnap but it's not essential [13:29] PR #8175: store: rely on CommandFromSystemSnap to find xdelta3 [13:30] pstolowski: master is broken on TestEnsureLoopPruneAbortsOld [13:30] pstolowski: what's the state of your PR, I see it is yellow [13:30] zyga: PR is already up but fails on random stuff [13:30] which stuff? [13:31] zyga: timed out on prepare [13:31] aha [13:31] oh well :) [13:36] mvo: I did a pass on #8100, the main issue there is how we name things [13:36] PR #8100: httputil: add support for extra snapd certs [13:39] pstolowski: do you know why it got worse? [13:39] I see it now even in travis-ran quick run of tests [13:39] even before spread starts [13:40] what do you see? the failure of TestEnsureLoopPruneAbortsOld? [13:40] yes [13:40] https://github.com/snapcore/snapd/pull/8175 look here https://travis-ci.org/snapcore/snapd/builds/653455121 [13:40] PR #8175: store: rely on CommandFromSystemSnap to find xdelta3 [13:40] zyga: i didn't get worse, it landed yesterday and we probably were lucky. I used 1000ms timeout instead of 1500 like every other test does in this testsuite [13:41] mmmm [13:41] I see [13:41] ok [13:41] let's fix that with spread pass-through maybe [13:41] it's super annoying when master breaks and we restart everything like a stuck computer [13:43] zyga: ok, added the label although i wonder what happens after it already is in progress. perhaps it needs to pass anyway ;). it would only help on opening the pr? [13:43] dunno [13:43] we'll find out [13:43] thank you! :) [13:55] Should `snapctl get ` return an error, if the key does not exist ? Maybe as additional param ? [13:55] `parts/snapd/src/overlord/hookstate/ctlcmd/get.go` [13:55] Then i could use on bash this: `user=$(snapctl get --errror-on-missing || echo "root")` [13:55] i mean: `user=$(snapctl get --errror-on-missing userkey || echo "root")` [14:00] pstolowski: it is in [14:00] zyga: great; did it pass? [14:01] it got green [14:01] PR snapd#8174 closed: tests: bump sleep time of the new overlord tests <⚠ Critical> [14:01] but I didn't look [14:01] I just want it in, we can iterate more now [14:01] pstolowski: it did pass [14:01] pstolowski: it ran a full iteration of tests [14:01] good [14:37] mborzecki: #6708 seems to have a real failure atm [14:37] PR #6708: tests/main/buildmode: verify usability of PIE hardening for deb packages <β›” Blocked> [14:38] ijohnson: what's the status with #8152, will push more to it? should we close it until it's more ready? [14:38] PR #8152: managers_test: add uc20 kernel snap update happy and panic tests [14:38] pedronis: it's fine to close it I need to push more changes to it, but it will likely look different [14:39] ijohnson: then better to close it, there is still quite a chain behind it anyway [14:39] afaiu [14:39] yes, also I'll close 8151 too [14:40] PR snapd#8151 closed: cmd/snap-bootstrap/initramfs-mounts: only write modeenv if it changed [14:40] pedronis: are you going to close it or should I? [14:41] zyga, pedronis: fyi, finish PR 8123 [14:41] PR #8123: interfaces/network-control: bring /var/lib/dhcp from host (approach b) [14:41] jdstrand: ack [14:41] jdstrand: can we close the (a) variant now? [14:41] (I did PR 8113 yesterday) [14:41] PR #8113: cmd/snap-confine: bring /var/lib/dhcp from host, if present (approach a) [14:41] zyga: I think you need to read my PR review :) [14:41] ok [14:42] jdstrand: this PR will create /var/lib/dhcp on the host when it exists [14:42] did you mean to say [14:42] when it not exists? [14:42] or do I parse that wrong? [14:42] zyga: typo, reload [14:42] ok [14:45] so, my opinion on closing 8113 is that it is up to you. 8123 can be made ok, but perhaps it should come later [14:45] I see, I have no strong preference to either - I did (b) based on a comment on (a) - [14:46] zyga: the future is definitely b [14:46] on that agree [14:46] we really want to move to the style of b [14:46] I only have one thing that I feel stronger about - if the interface promises write access to $foo and $foo is a read only empty place-holder in the core snap we have a problem - it needs to be resolved somehow [14:46] zyga: but up to your team's priorities on how to tackle it [14:46] because things in snap-confine don't scale [14:46] I think in this case making the directory is the actual correct thing to do, even if that's perhaps a new thing snapd does [14:47] * ijohnson goes to close #8152 [14:47] PR #8152: managers_test: add uc20 kernel snap update happy and panic tests [14:47] as for the rest, I'll read the feedback carefully [14:47] I'll discuss with pedronis and mvo as to what to do for 2.44 [14:47] and beyond [14:47] zyga: that bit about auto ns rules is just me thinking out loud [14:47] I feel pretty strongly that we shouldn't leak the dir creation to hostfs [14:48] jdstrand: but that's the actual intent, to interact with the host - that's how I understand the interface [14:48] otherwise access to /var/lib/dhcp is meaningless because there is nothing there [14:48] zyga: but the act is hollow. there is nothing on the host looking at /var/lib/dhcp [14:48] PR snapd#8152 closed: managers_test: add uc20 kernel snap update happy and panic tests [14:49] jdstrand: the question is time, yet, perhaps the snap will put files there and users will follow docs to go and find them [14:49] jdstrand: notice though that the directory could be created in the host later than connection time [14:49] jdstrand: perhaps later on classic app goes to loop [14:49] jdstrand: it's not such clear cut IMO [14:49] zyga: the snap can put anything it wants there. the *host* is not looking at them [14:49] zyga: we aren't trying to create an alternate storage location, we're trying to let the snap interact with the host via things in this dir [14:50] jdstrand: perhaps a monitoring solution does, you can install dhcpd from a snap and tie it to something else; I think it's not out of the question that is a possible use case [14:50] zyga: a dhcpd snap is going to use content then [14:50] well the interface gives rw access under there [14:51] I think we need to consider three options: 1) change the interface so that this is not a problem 2) do not create the directory 3) create the directory [14:51] and pick something sensible out of that set [14:51] jdstrand: to be clear not creating it is fine, but what if it gets created in the host after the interface was connected? [14:52] I don't know how else to say it. the apparmor rules are there because at one time they meant something. on a system without /var/lib/dhcp, they don't mean anything [14:52] pedronis: interface connection creates it on the host [14:52] pedronis: it's really visible in /var/lib/dhcp that's the logic of (b) now [14:52] zyga: yes, but jdstrand doesn't want that behavior [14:52] ah [14:52] but what behavior does he want [14:52] sorry, I misunderstood your question [14:52] in that case [14:53] eg, on a system with no /var/lib/dhcp, the snap starts, the dir is created, it puts a lease file in there. *nothing* on the host will do anything with *anything* the snap puts in there [14:53] it is a hollow act [14:53] jdstrand: sure but maybe that's good enough [14:53] jdstrand: because users are trained to look there [14:53] if the dir exists, the monitor might be looking for things in there that will *never* come [14:53] (e.g. admins) [14:53] huh? [14:53] jdstrand: I can install core system [14:53] jdstrand: install a dhcp solution there [14:53] jdstrand: and get it to operate my network [14:53] jdstrand: I can go to /var/lib/dhcp [14:54] and even though it wasn't there before, I see files the snap has put there [14:54] zyga: that is a totally different thing [14:54] logs, leases, etc [14:54] jdstrand: (on second though that system could be either core or classic) [14:54] zyga: this is about implied plugs, you are talking about a slot [14:54] zyga: in a meeting right now, will try to read backlog [14:54] jdstrand: I think I'm talking about neither - just the user experience of installing a snap and seeing lease files in a familiar location [14:54] jdstrand: but perhaps I don't understand your point of view [14:55] jdstrand: because I think I'm saying the same thing now [14:55] zyga: the user experience is already different on a system without a dhcpd solution. there is no /var/lib/dhcpd [14:56] zyga: that is the implied case, which is all network-control implements [14:56] zyga: a slot implementation for dhcpd would either need a new interface or network-control adjusted accordingly to be either implied or slot provided [14:57] jdstrand: I think the question is, if you have no /var/lib/$foo and a snap managing it is installed, should it see a private copy of $foo and the host is not altered or not [14:57] jdstrand: isn't dhcpd just a network socket? you can probably implement one with network-bind already [14:57] jdstrand: I can see a point where /var/lib/$foo is really stored in $SNAP_DATA [14:58] (and layouts can be used to make the per-snap view more familiar) [14:58] but I can also counter that to say that we give snaps host access for a reason (there are specific interfaces and implicit mounts performed by snap confine) [14:59] I really think it's not a correctness POV just a policy of what we want to do [14:59] either way is fine if we are consistent and it is documented well [14:59] jdstrand: anyway, you haven't answered what is your expectation, if the directory gets created host side after a snap is connected. should we just ignore this, should we monitor creation and try to patch the rules and namespace after the fact? [14:59] jdstrand: ime, it doesn't make sense for an *implied* plugs interface to create a dir. the implied interface is about interacting with core or classic. by definition, if /var/lib/dhcp doesn't exist on core/classic, there can be no interaction with core/classic via /var/lib/dhcp [15:00] jdstrand: for the record, it does exist on core but some classic distributions do not have it in the images we use [15:01] pedronis: I put in the PR a suggestion. I think we need the equivalent behavior of .is_optional. ie, at runtime, snap-update-ns sees if it exists, if it does, cool, do what is in the PR now. if not, move along [15:02] zyga: that's fine. it is probably a bug on core if it ships the directory but isn't using it, but that is a different issue [15:02] jdstrand: we can do that, though creation on the host is not monitored by anything so it would not be "plugged" into the app at a later stage until some other mount operation did it by coincidence [15:02] jdstrand: it works on core16 + core16 because of implicit sharing [15:03] jdstrand: it is broken on core18 because then sharing is not automatic (hence (a) was quickly made) [15:03] that's just for context, it's not changing what you said [15:04] zyga: snap-update-ns may need to be updated then, sure. this is getting at why I thought 8113 first would at least fix the bug. we already have thought about this by introducing .is_optional btw. with 8123, we just need to think through what the right implementation would be for when to perform the mount [15:05] jdstrand: I understand, I think for that we'd need a component to monitor directories and react (snapd, inotify, etc) but it's somewhat fragile and racy by its very nature (100% uptime of said component) [15:05] but we could come up with something [15:05] zyga: basically, my suggestion is that the PR is as it is now, but with snap-update-ns being modified to know when to check for dir existence and skip the creation if it doesn't [15:05] I wonder what the snap should see before that directory exists on the host [15:05] an empty directory from the base? [15:05] zyga: I didn't see it as that complicated, but maybe I am being naive [15:05] jdstrand: I understane [15:06] *d [15:06] zyga: eg, snap-update-ns on first run/after discard does the check and skips if not there [15:08] zyga: that would by 'enough' for me to approve the PR. trying to handle avoiding a snap-discard-ns after someone installs dhcpd via deb/rpm could be a later step. of, snap-update-ns notices that it now exists but there is a mount namesapce, so it dtrt [15:08] zyga: I don't think we need to monitor directories until somebody really needs it [15:08] s/of,/or,/ [15:08] dchp is not such a case [15:08] mhm [15:08] pedronis: ? [15:09] I was answering to: zyga> jdstrand: I understand, I think for that we'd need a component to monitor directories and react (snapd, inotify, etc) but it's somewhat fragile and racy by its very nature (100% uptime of said component) [15:09] I don't think we need a monitor [15:10] note that technically handling it like .is_optional is not hard, if that's the semantics we are after I can make the changes easily [15:10] if that's the agreement I will get to work [15:11] I mean maybe we could, it is not that different from connecting a content interface I guess, but it doesn't seem unreasonable to restart the snap if dhcpd is installed after the fact. that is up to you. we don't really doing anything that I am aware of with already running snaps when things change in other things exposed via implied interfaces [15:11] I think it works for now, there may be use cases where it doesn't make sense, but shouldn't stop to progress a bit [15:11] (and by restart the snap, I am saying that is user-driven, not snapd) [15:11] I mean that doing what is_optional does [15:11] ack [15:11] sure, I'll make that happen [15:12] how close is a) to land? [15:12] a) could land now I guess [15:12] I can undo a) in an iteration of b) [15:12] let me double check [15:12] jdstrand: I don't see a review by you in a) ? [15:13] zyga: jdstrand: anyway I would be fine landing a) in 2.44 and trying to aim for b) in 2.45 [15:13] pedronis: I will approve now. I didn't yesterday (I left a comment) because I didn't want a second approval to accidentally imply 'merge me now' [15:13] ok [15:13] assuming a) gets 2 +1 [15:14] that's fine with me, we fix the bug for 2.44 and make it nicer as we move on, most of the code in (b) is good, there's a small improvement on how some bits are computed that Jamie suggested and a few tweaks to implement is_optional semantics [15:14] and a revert of a) [15:14] and we should be able to have it next week [15:14] are we in agreement? [15:14] 8113 is approved [15:15] zyga: note, those auto-rules aren't a requirement. it just feels like a missed opportunity, but maybe with more thought, we can't (or we can only do some safely) [15:16] * jdstrand is fine with whatever you decide in terms of priorities [15:16] I suspect we can. Your comment there was spot on. It will be hard to understand in a short while otherwise [15:17] anyway that comment is why I think it feels like 2.45 material [15:17] that was my feeling as well, but again, I defer [15:17] it would be good to make doing such things reasonable [15:17] /readable [15:17] Yes I think that’s a worthy goal :-) [15:18] Ok I think we are in agreement now [15:18] I take your silence as a yes [15:20] while we are in agreement, I will also mention since you said this is actually a cross-distro thing, that if snapd created /var/lib/dhcp, a fedora/arch/whoever user would probably file a bug asking why snapd is littering the filesystem [15:20] (I can almost read the report in my head ;) [15:20] so it is good to avoid that bug as well :) [15:20] I moved b to 2.45 [15:20] jdstrand: I’m not sure. It’s just the package selection we have. Installing some other bit in those systems would create that directory [15:21] zyga: right, but if they *don't* install it but snapd is just putting it there, I can easily see someone complaining [15:21] Yeah, but only when connecting to something that might use it [15:21] Not just out of the box [15:22] regardless, we are in agreement for other reasons so my thoughts on avoided potential bugs doesn't really mean anything :) [15:22] Yes! [15:22] I’ll get to it after current branches move [15:23] * jdstrand has a *lot* of experience with rather, shall we say, opinionated users in dealing with triaging random bugs flagged as security in Ubuntu ;) [15:23] perhaps I'm jaded... :) [15:24] * cachio lunch [15:25] anyway, cool [15:25] again, sorry it took awhile to get to these. while 8113 and 8123 weren't terribly time consuming, they were behind 7825 and I needed a big hunk of time for that one that was really hard to find [15:26] 7980 needed a fair chunk as well [15:26] anyhoo, past all those. unfortunately, there are other big ones in my list... [15:26] but hey, it is all before 2.44 so... :) [15:28] (not to mention 8165 that floated in. coverity is really awesome, but investigating its findings takes time) [15:32] Oh, about that the Coverity is confusing and there are 3 things from the scan in 2017 [15:32] I’ll fix them next week [15:32] They are shown in a different list [15:54] back from dinner [15:56] PR snapd#8113 closed: cmd/snap-confine: bring /var/lib/dhcp from host, if present (approach a) [15:56] PR snapd#8175 closed: store: rely on CommandFromSystemSnap to find xdelta3 [15:57] jdstrand: one more thing, do you think you can quickly look at https://github.com/snapcore/snapd/pull/8133 and tell me if that's something we should even do - it pops up on arch with apparmor when using device assignment [15:57] PR #8133: cmd/snap-confine: allow snap-confine to load nss libs <β›” Blocked> [15:57] jdstrand: the diff is just 5 lines of snap-confine profile [15:57] yeah, I planned to [15:57] I'm somewhat meh, probably not worth it but I don't have arch and didn't see it myself [15:58] and it will go away with the changes in snap-confine anyway [15:58] thanks! [15:58] * zyga is down to 11 [15:59] zyga: I have an opinion and context for it [15:59] * jdstrand is responding [15:59] thanks! [16:03] https://github.com/snapcore/snapd/pull/8171 needs a 2nd review [16:03] PR #8171: cmd/snap-failure/snapd: also rm snapd.socket if it still exists [16:04] cachio: can you rebase https://github.com/snapcore/snapd/pull/8173 [16:04] PR #8173: tests: adding arch-linux execution [16:07] pedronis: I summarized the discussion on https://github.com/snapcore/snapd/pull/8123#issuecomment-589719128 [16:07] PR #8123: interfaces/network-control: bring /var/lib/dhcp from host (approach b) [16:11] mvo: pedronis: slightly meh, but i added Before=console-conf@tty1 and changes the service to Type=oneshot, consoleconf now waits for trigger to exit, so we don't have to stop it explicitly, the downside its that console-conf start is delayed by the amount of time we wait for the trigger [16:12] PR snapcraft#2951 closed: snap-packaging: remove broken host-compatibility check for runner [16:12] mborzecki: I think that's not too bad, how long do we wait? [16:12] mborzecki: yea, we'll need to rethink this but for now at least is correct [16:13] mvo: i can set the deafult timeout to say 10s, and the key must be held for 2s to trigger the event, upon which it exits right away, so if you hold the key the delay isn't as problematic [16:13] zyga: done [16:14] I read [16:14] thanks [16:14] that's my understanding as well [16:14] I'll flip it around and merge with your implicit approval, is that okay? [16:15] zyga: well, I requested changes. just ping me and I'll scan/approve [16:15] it is still morning here so I'm not going anywhere for a while :) [16:16] jdstrand: ack [16:16] I'll just do it now [16:18] jdstrand: done [16:19] zyga: well, sorry, but I'd prefer them at the every end with the other explicit denials. having it here clutters that section [16:20] jdstrand: sure [16:20] thanks! [16:20] * jdstrand is poised to approve [16:21] done [16:21] cachio: let me know if you want me to remove the changes adding snap-auto-import-asserts-spools, snap-auto-import-asserts and snap-auto-mount tests for ARM devices, I'm happy to enable those later and land #8140 sooner, I'm adding your requested changes now [16:21] PR #8140: tests: enable more tests for UC20/UC18 [16:21] * zyga high-fives jdstrand for fast review cycles :) [16:24] cachio: I made the other changes except for the uc20 arm model names, do we know what those model names will look like? will it be the same as the uc18 ones just with s/18/20/ ? [16:27] PR snapcraft#2950 closed: meta: Snap to_dict() cleanup [16:28] * zyga breaks for a moment to let the laptop charge and back up [16:30] zyga: done [16:30] 5 [16:30] o/ [16:36] :-) [16:45] ijohnson, nice [16:45] yes, I prefer to enable those tests later for arm [16:50] cachio: ack [16:50] Did you see my questing about the name of the arm model [16:52] ijohnson, no yet, I am with amazon linux, I'll see that in 5 minutes [16:53] Sure no rush [16:55] pstolowski: https://github.com/snapcore/snapd/pull/8170/files#diff-eb9825aa18d9bbbcc41ca31728af8157R88 still needs work, right? [16:55] PR #8170: snap-preseed: support for preseeding of snapd and core18 [16:55] I am on child care service now [16:56] fingers crossed she doesn't wake up for a few hours [16:56] $wife and $kids went for groceries now [16:56] zyga: yes, it needs work [16:56] ok [17:07] pedronis: does this ring a bell? [17:07] Feb 20 20:41:39 jbl-ThinkPad-P53 snapd[1101]: stateengine.go:150: state ensure error: devicemgr: cannot resolve prerequisite assertion: account (EH9A6Xg1QtCjYt4v3QlBVTPLAHDvEIn6) [17:08] ijohnson, answered [17:08] zyga: what's the context [17:08] thanks cachio [17:09] but no idea [17:09] pedronis: https://bugs.launchpad.net/ubuntu/+source/snapd/+bug/1864113 [17:09] Bug #1864113: snapd.seeded.service never starts [17:09] pedronis: seeded never completes [17:10] somebody didn't build the seed properly [17:10] this is focal server ISO [17:10] perhaps we need to ping foundations? [17:11] yes [17:11] should I reach out to steve? [17:11] I don't know, it's not snapd bug though [17:11] it's an image bug [17:11] idk if it's related but built core20 and the install got stuck and never completed [17:12] ijohnson, perhaps we could just skip the test on uc20 until we have the names [17:12] cachio: I think I'll just have the test be skipped on uc20 arm [17:13] pedronis: zyga: sounds like the issue that was just reported in #snappy-internal a while ago [17:13] aha, thank you, I'll check [17:15] ijohnson, makes sense, thanks [17:16] wondering whether we should limit the chooser only to specific ttys eg. tty1 & ttyS0 [17:16] mborzecki: that's what I asked [17:17] it should be at least an option at some point [17:18] ok, so i've got the patches for subiquity, ubuntu-core-initramfs, core20 and snapd now [17:19] there's one weird sceanrio when i'm trying to invoke the chooser when the system boots right after install, for some reason the chooser-trigger service does not start consistenty [17:19] but it's just fine on subsequent boots [17:19] nvm, more on monday probably [17:24] PR snapd#7980 closed: packaging,snap-confine: stop being setgid root [17:29] that's in, woot [17:33] nice zyga so that's the last of the opensuse requested changes ? [17:33] ijohnson: close [17:33] ijohnson: there are a few more, I need to revisit [17:33] we need to fix SNAP_COOKIE [17:33] ijohnson: they also asked for a group to control snap-confine executability [17:33] zyga: ah right I remember this now too [17:33] so that it's group executable only [17:33] I think that's a low hanging fruit [17:34] jdstrand: ^ right? snap-confine being root:snapd-users and only g+x [17:34] ijohnson: I may apply that last bit in a suse specific patch though [17:34] and there's the issue of +s snap-confine in core [17:34] otoh, I do seem to remember that [17:35] PR snapd#8176 opened: tests: adding amazon linux to google backend [17:35] 4750 root:something [17:35] I need to look if I can mount core without setuid root [17:35] jdstrand: mhm [17:35] zyga: I fixed SNAP_COOKIE [17:35] pedronis: oh, cool, I didn't know that [17:35] I think [17:35] I'll go through their review next week and update the bug on monday [17:36] but I think this is a hell lot closer now :) [17:36] zyga: we probably need some niceties in snap run to fail gracefully in that environment for people not in the group [17:36] jdstrand: indeed [17:36] zyga: or at least, double check it :) [17:36] jdstrand: but fortunately that's in snap-run so not security critical and can be easily made to be nice [17:36] zyga: jdstrand: https://github.com/snapcore/snapd/blob/master/overlord/snapstate/cookies.go#L152 [17:36] that's great! [17:37] Thanks for the reference, I'll use it in the review of their review [17:37] and https://github.com/snapcore/snapd/blob/master/randutil/crypto.go [17:37] zyga: yep [17:37] * cachio afk - doc appointment [18:27] PR snapcraft#2932 closed: elf: resolve paths in `ldd()` to purge relative path components [19:08] PR snapd#8177 opened: cmd/snap-bootstrap/initramfs-mounts: mount the snapd snap in run-mode too [19:11] PR core20#22 opened: run-snapd-from-snap: don't try to load a snapd snap from the seed anymore [19:23] hello, I'm trying to export a custom variable for a snap but can't find how/where to do that [19:25] sdeziel: you mean in a snap you are developing? [19:30] ijohnson: no, sorry I was not clear. I want to export it in a snap I *use* (chromium to be precise) [19:30] can you just do `VAR=thing chromium` ? [19:30] err is there a reason you can't just do that ? [19:30] ideally, it would work when I click the chromium's icon [19:31] ijohnson: I was thinking of something like /etc/environments in the snap's FS [19:31] AFAIK, /etc/environment should work for snaps too [19:32] right but that's system-wide, not snap specific [19:34] Hmm, I don't think we have something like that that's per-snap and per-installation. Since you want it when you click an icon, you might be able to fiddle with the desktop file [19:36] ijohnson: isn't the desktop file recreated on every snap refresh? [19:39] hmm perhaps they are. I'm not super familiar with how desktop files work, perhaps you could ask someone in #ubuntu-desktop ? [19:45] ijohnson: "MESA_GLSL_CACHE_DISABLE=true chromium" didn't run which I would be inclined to think is normal assuming there is some env scrubbing going on [19:45] s/didn't run/didn't work/ [19:46] hmm that's odd [19:46] that works for me: [19:46] https://www.irccloud.com/pastebin/v4uNy7Ru/ [19:46] and if I try that with the chromium snap it works too, at least with --shell. [19:47] it's possible that the chromium snap specifically is doing some sort of env scrubbing [19:47] ijohnson: my bad, I had another chromium instance running which prevented the flag to be picked [19:47] it does work to use that var=$val prefix [19:51] ijohnson: thanks for your help btw [19:52] np happy to help, good luck with the desktop icon thing [19:53] ijohnson: I do have a workaround but I still believe it's not a special edge case to want to export vars per-snap. Any idea where I could make that wishlist request? [19:53] you could file a bug at bugs.launchpad.net/snapd or you could make a forum post at forum.snapcraft.io about it [19:54] thx [20:03] to close the loop: https://bugs.launchpad.net/ubuntu/+source/snapd/+bug/1864240 [20:03] Bug #1864240: [wishlist] allow setting per-snap environment variables [20:04] thanks again ijohnson, have a nice weekend! [20:42] pedronis: what's up with this? Are we getting this in the near future? https://github.com/snapcore/snapd/pull/7490 [20:42] PR #7490: interfaces/app-launch: support confined snaps launching other snaps [20:54] PR snapcraft#2940 closed: build providers: remove use of cloud-init [21:14] I'm having issues with my snaps; It seems that it's not actually registering my apps with their associated file types, even though I have specified the Mime types in the desktop file. Has anyone else gotten this working? [21:29] jdstrand: store rejects new snap-confine mode [21:29] Just FYI [21:29] ah, yes, it would [21:29] * jdstrand adjusts tools [21:30] zyga: where are you seeing this? core? core18? core20? snapd? all of the above? [21:31] I got a mail https://launchpad.net/~snappy-dev/+snap/snapd-master/+build/843779 [21:31] But probably snapd and core need rule updates [21:31] jdstrand: I assume that this will be for just snapd and core snaps, core18 and core20 don't ship snap-confine [21:31] Core18 and core20 are devoid of snapd [21:32] ijohnson: ah, yes. thanks [21:32] Thank you Jamie. I didn’t think about this beforehand [21:41] * cachio afk [21:52] snaps take a while to start up but subsequent launches of the same app are "snappy". does that mean they are held in memory or how does that work? [21:54] kinghat: which snap? [21:59] kinghat: snap install snapd-hacker-toolbelt [21:59] kinghat: time snapd-hacker-toolbelt.busybox true [21:59] kinghat: time snapd-hacker-toolbelt.busybox true [21:59] kinghat: I can answer your questions later if you stay on IRC (or hop back tomorrow) [22:00] as it's 11PM here [22:00] roadmr: most all of them. though i just started htop and it was "snappy". postman wasnt. [22:00] πŸŒƒ [22:01] kinghat: well htop is a CLI application while postman is graphical (IIRC) and there were some issues with e.g. font caches needing regeneration for graphical snaps. So the slow first startup time is due to e.g. fonts being rebuilt, and subsequent runs are faster because fonts are built :) snaps are not cached in memory, at least not beyond possibly OS-managed disk caching [22:01] chromium too. most of my snaps take time to load initially then are fine after until im in a new session. [22:01] kinghat: note I say "were", as I thought it had been fixed [22:02] https://forum.snapcraft.io/t/improving-first-run-performance-of-desktop-app-snaps/2944