[00:00] kyrofa: of course they do :) [00:00] nacc, they're essentially dynamically-created channels. Perfect for creating a snap of "this" pull request [00:01] nacc, they're ephemeral, though, and expire after a month [00:01] kyrofa: ah i see [00:01] (unless published to again) [00:01] kyrofa: interesting, will read up on it tmrw [00:01] kyrofa: snaps feel like such a moving target sometimes :) [00:01] nacc, yeah I feel ya [00:02] oooh, i think i know how to make the keygen tests quicker [00:02] Chipaca, what the heck man, were you asleep and awoke with a genius idea? [00:02] … don't we all? [00:02] Yes :P [00:04] kyrofa: also, manchester explosion has me woke [00:04] * kyrofa googles manchester explosion [00:05] Dang [00:06] Chipaca, you're not close, I hope [00:06] nor is any of my family as far as i know [00:07] Good [00:12] need to check with samuele wrt sanity, but this makes the key generation step of the tests ~20× faster [01:55] PR snapd#3383 opened: Fix spread flaky tests linode [02:50] PR snapcraft#1327 opened: tests: small updates for manual kernel tests === chihchun_afk is now known as chihchun === pbek_ is now known as pbek [04:58] I had a question regarding sanitisation of snap interfaces: https://forum.snapcraft.io/t/sanitisation-of-snaps-requested-interfaces/739 [05:43] PR snapd#3382 closed: daemon,overlord/auth: store from model assertion wins [05:49] PR snapd#3379 closed: cmd/snap,tests: show the snap id if available in snap info [06:16] PR snapd#3226 closed: snap-repair: add `snap-repair run` [06:37] good morning [06:38] mvo: hey [06:38] mvo: just to give you some more context for my message yesterday [06:38] mvo: gustavo reviewed the way we convey meta-data for interfaces and wanted to make some changes [06:38] mvo: we had a quick brainstorm session and the bottom line is that the current rest API has to be reverted to what it was before meta-data layer was merged [06:39] mvo: and the meta-data must move to a new endpoint "interface" (vs "interfaces" currently) [06:39] mvo: I will work on this and the CE blocker today [06:39] mvo: when do you plan to release? [07:11] zyga: morning! [07:14] morphis: good morning [07:15] morning [07:21] Hello, I'm not following snap development closely. I'm wondering on why the OS snap ubuntu-core was renamed to core? [07:30] mvo, zyga, pedronis, Pharaoh_Atem, niemeyer: can you guys look into https://github.com/snapcore/snapd/pull/3222 again today? Would like to get that merged soon [07:30] PR snapd#3222: many: fix test cases to work with different DistroLibExecDir [07:32] hello palasso! this was mainly to avoid confusion about cross-distro support [07:32] ty pstolowski for the answer [07:50] can it be that Linode/spread is pretty unreliable these days? Trying to get a green light on a PR which touches nothing which is tested anywhere but running into a lot of timeout issues: https://github.com/snapcore/snapd/pull/3371 [07:50] PR snapd#3371: packaging: import packaging bits for opensuse [08:04] morphis: yeah, looks like it, maybe worth poking the store people about: "DEBUG: The retry loop for https://assertions.ubuntu.com/v1/assertions/snap-declaration/16/99T7MUlRhtI3U0QFgl5mXXESAiSwt776?max-format=2 finished after 4 retries, elapsed time=40.008154662s, status: Get https://assertions.ubuntu.com/v1/assertions/snap-declaration/16/99T7MUlRhtI3U0QFgl5mXXESAiSwt776?max-format=2: net/http: request canceled while waiting for connection (Client [08:04] .Timeout exceeded while awaiting headers)" [08:05] morphis: 40s and 4 retries is a pretty long wait [08:05] hi morphis in that build you had a lot of connectivity problems, seems that between linode instances and the store, at least two "dial tcp 162.213.33.92:443: getsockopt: no route to host" (162.213.33.92 is public.apps.ubuntu.com), "dial tcp 162.213.33.92:443: i/o timeout", timeouts awaiting for headers from assertions.ubuntu.com, the tests/main/completion error seems to be related to connectivity too, maybe the store was down or all the instances [08:05] involved (more than one had errors) lose connection [08:11] yeah [08:11] is pretty nasty and it looks like I am getting similar problems with all my PRs [08:12] mvo: what is a good place to poke on the store people? [08:14] kyrofa: not yet; at the time when we were adding publish-to-track support to LP, branches were only defined for stable, and automatic jobs shouldn't be publishing directly to stable. Some of the assumptions here may have changed since though [08:15] re [08:17] geez, firefox ate 3GB of ram on 4 tabs open [08:36] my 2.27 PRs need reviews [08:39] pedronis: hiya [08:46] PR snapd#3384 opened: tests: use pollinate to seed the rng [08:46] hi Chipaca, could you please take a look at ^^^? never use pollinate before, seems to be working fine with a plain call [08:51] fgimenez: yup [08:52] fgimenez: i also want to check with samuele about what happens if we use a gpg in testing that clamps keys to 1024 bits [08:55] Chipaca: great thanks! [08:59] Chipaca: where? we check that the keys we get have the expected length [08:59] pedronis: we do? where? [09:00] snap create-key seemed to be happy with them [09:00] pedronis: good morning! [09:01] Chipaca: well, when you try to sign with it, it won't (maybe that test doesn't use the key it makes, but as a general strategy across all tests doesn't work) [09:02] Chipaca: here, https://github.com/snapcore/snapd/blob/master/asserts/crypto.go#L367 [09:04] * Chipaca pokes at his internet [09:13] pedronis: sadface [09:13] pedronis: maybe i should override gpg and then un-override it when tests break :-) [09:14] Chipaca: override it with what anyway ? [09:16] pedronis: sed and more gpg :-) [09:16] Chipaca: anyway we do have a snap-sign test [09:16] zyga: step 1, CI passes on https://github.com/snapcore/snapd/pull/3365 :-) [09:16] PR snapd#3365: tests,packaging: add package build support for Fedora for our spread setup [09:16] pedronis: yeah, that's the one i was poking around in last night [09:16] Chipaca: which funnily I never seen fail [09:17] pedronis: oh, i did [09:17] pedronis: I'd point you at https://s3.amazonaws.com/archive.travis-ci.org/jobs/234990914/log.txt?X-Amz-Expires=30&X-Amz-Date=20170523T012508Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJRYRXRSVGNKPKO5A/20170523/us-east-1/s3/aws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=2f9a55bec2d1b61a8c23f3b46d7c955155fc8e2f719cb66e788743bc7181c36a but travis has already been "helpful" [09:17] Chipaca: anyway what you could do is merge create-key into snap-sign [09:17] so you need less overall entropy [09:17] pedronis: the entropy doesn't seem to be the problem afaict [09:17] Chipaca: what is the problem then? [09:18] pedronis: at least, every time i've looked we've had ~3k of entropy [09:18] doesn't compute [09:18] why would create-key take forever if not that [09:18] pedronis: I'm guessing here but we might be getting penalized [09:18] for heavy cpu use [09:19] anyway my point stand [09:19] yep [09:19] we would use less CPU if we create less keys :) [09:19] don't get me wrong, we might also be running out of entropy [09:19] and i think we need to add that to the debug output [09:20] so we can see [09:20] (also to the regular output! but that's going to be harder) [09:20] Chipaca: so mergeing snap-sign create-key and the key completion test into one [09:22] [ 12.818573] F2FS-fs (sda): Can't find valid F2FS filesystem in 1th superblock [09:22] [ 12.829425] F2FS-fs (sda): Can't find valid F2FS filesystem in 2th superblock [09:22] hmpf [09:22] i wonder if we cant quieten f2fs on a kernel level [09:23] augh [09:23] who writes that code :-( [09:23] who writes "%dth" and thinks that's a good idea [09:23] someone who doesnt know about english numbering ? [09:24] but then there's like 5 other people that looked at that code and thought "fine whatever" and let it pass :-/ [09:24] yeah [09:24] anyway [09:24] always too easy to criticise other projects [09:24] * Chipaca shuts up [09:25] well, i'm sure whatever code there is probes all possible filesystems ... but only f2fs prints that stuff [09:26] apw, do you think we could quieten such f2fs messages ? [09:27] ogra_, why do you care about two lines in your dmesg ? [09:27] apw: users (actually, device developers) see them and freak out [09:27] ogra_, and indeed what is triggering them from userspace [09:27] apw, dunno, i'm german :P [09:27] Chipaca, i think device developers need to develop thicker skin :) [09:28] apw, snapd checks all attached non rootfs devices for possible snap assertions on boot ... so it mounts them once ... [09:28] * apw sticks several fingers in each of his ears ... [09:29] apw, we used to include ramdisks in that... when we did that i have about 30 of these messages ... now i get them for the one atttached usb device only ... but still only f2fs (which we never used) prints that stuff [09:29] * Chipaca wonders how apw types with several fingers in several ears [09:29] s/i have/i had/ [09:29] Chipaca, with my feet, the only way [09:29] pedal keyboards ftw [09:29] ogra_, surely we do not try all the possible filesystem types though [09:29] ogra_, that way lies _vast_ attack surface [09:30] apw, well, we just call mount i guess ... the rest is kernel [09:30] (or internal logic of mount) [09:30] ogra_, they kernel does not guess you filesystem type, that would be mount [09:30] ogra_: do we explicitly load f2fs? === pachulo_ is now known as pachulo [09:30] Chipaca, nope [09:31] ogra_, so what is on that stick which triggers that error [09:31] Chipaca, i think it is compiled in [09:31] ogra_: at least here it's a module [09:31] apw, a vfat fs [09:31] dunno on other arches etc [09:31] ogra_, ie what does blkid say on it [09:31] Chnot in xenial [09:32] Chipaca, ^ [09:32] as one would expect mount to ask what it is and then mount that specific type [09:32] ogra_: chtotally in xenial [09:32] ogra@pi3:~$ lsmod|grep f2fs [09:32] ogra@pi3:~$ grep f2fs /proc/filesystems [09:32] f2fs [09:32] ogra@pi3:~$ [09:33] ogra@pi3:~$ sudo blkid /dev/sda1 [09:33] ogra@pi3:~$ [09:33] bah [09:33] /dev/sda1: UUID="72AD-5403" TYPE="vfat" PARTUUID="7524a7a6-01" [09:33] silly IRC [09:33] ogra_: try: modinfo f2fs [09:33] heh, so why the heck is f2fs being used against it [09:33] apw, dunno, why was it being used on all the ramdisks before [09:34] ogra_, can you manually try mounting it with mount /dev/sda2 /mnt [09:34] this isnt new or anything ... [09:34] and with mount -t vfat /dev/sda2 /mnt [09:34] sort of thing [09:34] and see if the latter is quieter [09:34] * apw would suggest we should be using blkid and only attempting to mount if it is one of a very very limited set of formats, ones we are willing to work hard to keep security good on [09:35] else i could format it as some utterly nasty format and you will mount it, w [09:35] which is just asking to be attacked [09:35] i would vote for one format if i was involved, perhaps vfat [09:36] apw, neirther mount nr mount -t vfat print anything [09:36] ogra_, nothing in dmesg you mean ? [09:36] right [09:36] then you have a new mystery, who the heck is triggering that [09:36] are you using some magical go helper [09:37] pedronis, mvo, ^^^ does snapd rotate over filesystems when mounting a device to lok for assertions ? [09:37] *look [09:39] no clue, that's really for mvo [09:42] re [09:42] morphis: that's great :) [09:42] I need to catch up with PRs but first I need to prepare two important things for 2.27 for mvo [09:43] looks like this is the mount code https://github.com/snapcore/snapd/blob/master/cmd/snap/cmd_auto_import.go [09:43] zyga: do that [09:43] cmd := exec.Command("mount", "-o", "ro", "--make-private", deviceName, tmpMountTarget) [09:43] nothing fancy regarding filesystems [09:47] hmm hmm [09:47] those are two distinct mount syscalls AFAIK [09:49] because of the --make-private ?? [09:49] yes [09:49] first you do mount -o ro deviceName tmpMountTarget [09:49] then mount --make-private [09:49] it's not atomic [09:49] (mount-the-command does that internally) [09:50] mount(8) does not read fstab(5) when a --make-* operation is requested. All necessary information has to be specified on the command [09:50] line. [09:50] hmm [09:50] how do you un-duplicate a bug? [09:50] Chipaca, iirc somewhere in the target bug [09:50] ah [09:55] ogra_: I'm not sure what rotate over filesystems means, but it does look at block devices for assertions, yes [09:56] apw: aha, just finished reading backlog - sure, we can make this smarter to only mount ext{2,3,4} and vfat or maybe even only vfat [09:58] mvo: we may even do more, register a GUID [09:58] mvo: that is unique to snapd [09:58] PR snapd#3385 opened: cmd: add stub new snap-repair command and add timer [09:58] mvo: (not partition ID, but partition *type* ID) [09:59] mvo: then you can make a stick, with any filesystem, and snapd will recognize it [09:59] zyga, you don't want it to support "any" anything, if any device will mount and consume it on b [10:00] zyga, boot. that is just asking for people to exploit every possible filesystme bug [10:00] (you can still add extra requirements, but the guid makes it distinct even before we mount it) [10:00] zyga: maybe, but OTOH anything that makes it harder for people to use this feature is not ideal IMO, I like the simplicify of the current: grab random-usb-stick, copy file, done [10:00] apw: I agree [10:00] mvo: it all depends on tooling [10:00] easy is the antithisys of secure [10:01] zyga: well, yes, but its still at least one extra step: find the right tool for your $OS, download, run [10:01] mvo: more like "make disk image" website [10:01] apw: you think even limiting to vfat would be an issue? [10:01] mvo: but I agree [10:02] mvo, i would cirtainly recommend limititing it to something vfat might be that thing [10:02] apw, zyga: once I finished with my current branch I will do that then [10:02] mvo, though i would ask the security team for a recomendation if anything [10:02] apw: good point [10:09] PR snapd#3386 opened: interfaces, osutil: move flock code from interfaces/mount to osutil [10:12] PR snapd#3387 opened: cmd: auto import assertions only from vfat file systems [10:13] mvo: thank you for moving the flock code [10:15] zyga: thanks for writing it :) [10:17] mvo: what is the `wrong prefix` test from? [10:18] ah [10:18] I misread [10:18] that's just a comment [10:27] mvo, s/rotate/loop/ :) [10:27] apw, still though, why do the fs drivers print such stuff at all ... this is similar to the ext2/3 messages you get when mounting an ext4 fs, that also spills a lot scary messages [10:28] i.e. [10:28] [ 6.720679] EXT4-fs (mmcblk0p2): couldn't mount as ext3 due to feature incompatibilities [10:28] [ 6.729695] EXT4-fs (mmcblk0p2): couldn't mount as ext2 due to feature incompatibilities [10:28] [ 6.755923] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: errors=remount-ro [10:28] guys, i've a longer power outage today. i'm using my cellphone as a hotspot, but going for a lunch now and will be offline for ~1h [10:28] ogra_, so that you can diagnose why a mount fails, as all you get in user space is EINVAL [10:29] hmm [10:29] they are not scarey they are informative and useful if a mount you intended to make fails [10:29] they are scary for someone not understanding them [10:29] someone not understanding them is unlikely to be able to find them [10:30] * ogra_ had enough bugs from users that got confused by these messages over the years [10:30] that is why they are not on the screen, but in a hidden kernel buffer [10:30] yes users will always find somethign to be confused about, but in this context it is unlikely a user can even see this buffer [10:31] dmesg shows it prominently as does syslog and the kern.log file [10:31] so if an illiterate user has a prob he looks at it and reacts with "OMG filesystem errors" ... [10:31] few illiterate users know about any of those logs, or how to find them [10:32] well [10:32] and a semi-literate user will always be scared by everything [10:32] and if you don't record them, their literate friend they go and ask [10:32] will have literally nothing to work with [10:32] heh, k [10:32] computer equipement should have "no user servicable parts" on the front :) [10:33] lol [10:33] we log a lot more of that kind of thing than necessary because we are lazy in usersapce and [10:33] try things because we know the kernel will fail to do things which are silly [10:33] instead of only asking it to do things we want to do [10:34] * apw goes back to punching docker repeatedly wishing it _would_ log something useful [10:37] apw: punch harder? [10:37] if only i could punch it hard enough [10:38] maybe a hydraulic punch [10:45] PR snapcraft#1328 opened: qmake plugin: set default qt version [10:52] mvo: made a comment about snap-reapir branch, my explanation yesterday might have been confused, I still owe to update the forum entry [10:52] s/confused/confusing/ [10:54] pedronis: I requested changes on one of your PRs, so it all evens out [10:54] Chipaca: seems we have not tests for snap info directory fwiw [10:54] pedronis: there are [10:54] pedronis: just not with --verbose [10:55] so we have no ---verbose tests? [10:56] certainly none for ---verbose :-p and only a rather bare local check for --verbose [10:56] wait [10:56] taht might be yours [10:56] :-) [10:56] so, no, no tests for --verbose [10:56] Chipaca: I added it [10:57] pedronis: yeah [10:57] pedronis: any reason not to also show the sha3 for remote snaps in info? [10:58] Chipaca: we don't have that info around [10:58] ah remote ones [10:58] pedronis: it's in DownloadInfo [10:58] but not locals? [10:58] pedronis: ¯\_(ツ)_/¯ [10:59] because that needs thinking, if we want local too [10:59] it's strange that we don't store it in state [10:59] i guess it's somewhere in the asserts db? [10:59] it's in the assert db [10:59] thinking is hard [10:59] let's have lunch [11:00] pedronis: to be clear, i'm not saying this is in any way a blocker to the pr you have up [11:00] but every time i look at snap info i want to make it better :) [11:00] and then i remember making it better starts by looking at goyaml [11:01] Chipaca: anyway that's not a snap info problem, we need to think how to put the ash back into api.go [11:01] then info is easy [11:01] yup [11:01] there's remote, local unasserted, and local asserted [11:02] to consider [11:11] <_28Kb> why there's no php7 server snap? [11:14] _28Kb: what's a php7 server? [11:15] <_28Kb> like one in XAMPP [11:17] _28Kb: I don't think there's a reason [11:18] PR snapcraft#1329 opened: tour: use https for source urls [11:19] mvo: have you seen the travis error on snapd#3374? [11:19] PR snapd#3374: partition: add directory sync to the save uboot.env file code [11:19] <_28Kb> i need apache, php and mysql for my ubuntu core.. [11:20] mvo: (hint: it goes “can't load package: package github.com/mvo5/uboot-go/uenv: [...]”) [11:20] <_28Kb> i got only this nextcloud option offered [11:24] _28Kb: out of curiosity, why do you need a snap with these things? [11:24] <_28Kb> i got snappy core, so i need snaps i guess [11:25] _28Kb: _for what_? [11:25] _28Kb: that is, you don't need a server, nobody needs a server. Servers are for building services with. What service are you building? [11:26] <_28Kb> service which i could access from outside the box [11:26] _28Kb: and this is for a single box, your box, not for building a bunch of boxes that use this? [11:26] <_28Kb> through websocket for example [11:27] <_28Kb> i can't build one.. bunch is for distant future :) [11:28] PR snapd#3377 closed: asserts: simplify and adjust repair assertion definition [11:28] Chipaca, pedronis, zyga, mvo is any of you working on retry for deltas? if not, I'll do it today [11:29] _28Kb: it should be fairly straightforward to build a snap like that; nobody's done it because they haven't felt the need i guess? all the needed bits are there [11:29] pstolowski: retry in which sense? [11:29] but no [11:29] <_28Kb> ok, i see [11:31] pstolowski: i can confirm that I am not working on retry for deltas [11:32] in fact, I'm going to start working on lunch. [11:33] pedronis, ah, nvm... I thought we don't retry deltas after a quick look yesterday when we failed in the tests on travis, but looking again now and we actually do retry [12:05] PR snapd#3380 closed: cmd/snap,tests: show the sha3-384 of the snap for snap info --verbose SNAP-FILE [12:07] Chipaca: about info and sha3-384, proably leaving it out for unasserted local snaps would be ok or desired, so that would make it relatively doable [12:12] pedronis: well, snap info _could_ cheat and go look at the .snap in that case :-) [12:13] Chipaca: yes, it could but not as I said it could be argued that it doesn't make sense [12:13] s/but not/but/ [12:14] PR snapd#3388 opened: osutil: add non-blocking flock [12:16] PR snapd#3384 closed: tests: use pollinate to seed the rng [12:17] PR snapd#3378 closed: tests: fixes for executions using the staging store [12:39] mvo, hmm, your uboot change failed all tests ... something still looks for github.com/mvo5/uboot-go/uenv somewhere [12:39] ogra_: checking [12:53] PR snapd#3389 opened: overlord/snapstate: have an explicit code path last-refresh unset/zero => immediatey refresh try [12:55] mvo: small PR of something I mentioned/we discussed ^ (also forum https://forum.snapcraft.io/t/refresh-schedule-via-core-config/434/9 ) [12:55] zyga: any progress on the work for seccomp constants resolving (the things we talked about yesterday) btw? [12:56] PR core#47 closed: keep version Makefile in sync with version-script [12:57] pedronis: very nice, thanks a lot [13:03] niemeyer: can you snapshot spread-61 as opensuse-42.2-64 when you have a minute? :-) [13:13] Is there anything apart from the "camera" plug I need to request for camera access? I'm currently running a Qt app on a computer without a camera and get the following error: [13:13] defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.camera" [13:35] fgimenez: how much were you giggling while adding "pollinate" [13:36] * Chipaca just realised it might be funny in Spain [13:39] Chipaca: :D yes something you wouldn't hear from your grandmother [13:41] niemeyer: this is the PR  I mentioned: https://github.com/snapcore/snapd/pull/3375 (also I pointed to it from aliases topic) [13:41] PR snapd#3375: snapstate,many: implement snap install --unaliased [13:42] pedronis: Thanks for the pointer [13:42] one more review wanted for snapd#3342 please [13:42] PR snapd#3342: many: refactor in preparation for 'snap start' [13:42] Chipaca: Will look into it too [13:43] niemeyer: taw [13:53] It's sad we're still blocked from using our neat state patching mechanism... [13:55] It'd be nice to be able to drag comments to different lines before the review has been delivered [13:58] niemeyer: as opposed to cut, delete, recomment? [13:58] Chipaca: Yeah [13:58] (like a caveman) [13:58] Exactly :) [13:58] niemeyer: drop wossisname a tweet [14:00] Chipaca: Who's that? [14:00] niemeyer: back when pyconar and pyconbr worked together one of the guests we brought was this github guy [14:01] (i don't even know if he's still at github :-) ) [14:01] Chipaca: The account on Twitter seems dead [14:02] ah well [14:04] PR snapd#3389 closed: overlord/snapstate: have an explicit code path last-refresh unset/zero => immediately refresh try [14:07] mvo: thanks for merging ^ it also cuts down snapstate tests to <1s (go test displayed time) here [14:07] Chipaca: Reviewed [14:07] pedronis: Too [14:07] niemeyer: thanks, saw that, trying to add the tests John asked for [14:07] pedronis: neat [14:09] niemeyer: thanks! [14:09] PR snapd#3342 closed: many: refactor in preparation for 'snap start' [14:09] mvo: “snap log -p” ftw [14:12] mvo: also https://github.com/golang/go/issues/6123 [14:12] (which didn't get anywhere, but that's neither here nor there) [14:13] Chipaca: ok, if everyone is happy with TryLock I will rename it [14:13] having said all this, remember: don't trust me with names :-) [14:13] niemeyer: defunkt! [14:13] niemeyer: are you ok with FLock.{Lock,TryLock} for a blocking and non-blocking file lock ? [14:14] mvo: before i forget this is the error on the docker test execution https://travis-ci.org/snapcore/spread-cron/builds/235061721#L452 (only failed on amd64) [14:14] mvo: As in, introducing such a type with those methods? Didn't we have flocking somewhere already? [14:15] niemeyer: yeah, we had blocking flock so far, we are brainstorming names for the non-blocking variant of this [14:15] PR snapcraft#1330 opened: storeapi: log download retries [14:16] fgimenez: interessting and strange, especially if it only failed on a single arch [14:16] mvo: TryLock sounds nice [14:17] mvo: i'm trying to reproduce locally, will let you know how it goes [14:17] mvo: perhaps FileLock rather than FLock [14:17] niemeyer: great, I will make this happen, thanks for your input! [14:18] mvo: Thanks for working on it.. are we flocking something new? [14:19] niemeyer: yes, snap-repair [14:19] niemeyer: we want only a single snap-repair running, this is the prereq for this [14:20] mvo: Cool.. should be safe enough, assuming the snap-repair process itself doesn't get frozen for whatever reason :) [14:21] niemeyer: yeah, that would be bad(tm) [14:23] cjwatson, indeed, I only just discovered that branches only exist on stable [14:23] mvo: should probably grow into something lockfileish if it's a concern [14:25] as in, write the pid when locking, and then other lockers get to kill you if you take too long [14:28] Chipaca: yeah [14:29] * Chipaca gives reviews in bites [14:29] Chipaca: pushed some more tests to snapd#3375 [14:29] PR snapd#3375: snapstate,many: implement snap install --unaliased [14:30] pedronis: yep, looking now [14:35] PR core-build#11 closed: remove cruft from the writable-paths [14:36] PR core-build#11 opened: remove cruft from the writable-paths [14:41] mvo: boooo to returning errno :-) [14:42] (yes sure it knows its an errno so .Error() gives you "resource temporarily unavailable", but it's still 0xb) [14:42] PR snapd#3390 opened: tests: remove additional setup for docker on core [14:48] * ogra_ is dizzy ... u-boot all around me ... [14:50] * zyga has food poisoning; sorry guys, will be back some other time today [15:02] zyga: I ate tomato sauce that was out all night, and _you_get food poisoning? [15:02] zyga: something is wrong [15:03] niemeyer: you saw my message about labeling a spread node for opensuse? [15:03] mvo: can you merge https://github.com/snapcore/snapd/pull/3357 now that CI passes? [15:03] PR snapd#3357: tests/lib: abstract build dependency installation a bit more [15:11] niemeyer, pedronis: bug #1692866 might be something you guys can follow and have useful input on (i don't feel i can given it's juju which i know next to nothing about) [15:11] Bug #1692866: /snap/bin not in path for juju run/juju ssh [15:12] morphis: I haven't seen it [15:12] niemeyer: ok, here it comes again: need spread-61 tagged as opensuse-42.2-64 [15:12] morphis: You mean a new image snapshot out of it, right? [15:13] niemeyer: yes [15:13] PR for spread-images is coming now [15:13] morphis: Cool, thanks. Will do that first thing after lunch. [15:15] niemeyer: thanks! [15:16] Chipaca, you ate tomato sauce that went clubbing ? doesnt all that dancing turn it into "salsa" anyway ? [15:16] ogra_: you're saying this as if it were a bad thing? [15:16] nah, not a bad thing at all [15:17] In file included from include/common.h:22:0, [15:17] from lib/asm-offsets.c:15: [15:17] include/errno.h:12:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘extern’ [15:17] extern int errno; [15:17] *that* is a bad thing :( [15:21] ogra_: I agree. Get your cat off your keyboard. [15:30] zyga: are you available to discuss that "cannot change profile for the next exec call: No such file or directory" bug from yesterday? [15:30] I attempted the suggested fix (no classic installation), but it's still happening [15:31] I also checked /var/lib/snapd/seccomp/profiles/snap.etcd.etcd (http://paste.ubuntu.com/24634459/) to see if it was indeed not being installed classically, and it seems to check out. (I assume I'm looking for the absence of @unrestricted at the top?) [15:33] ah, I see he's out sick [15:34] ^ Anyone else want to take a swing at it? :) [15:45] no, but i'll take a swing at a cuppa tea [15:45] such a "danceish" day ... [15:46] swing and salsa ... [15:53] I have two snaps in my account I really don't care about anymore (gatertest and gatedtest) since they were used for OLS development. However, neither one has the trashcan icon to delete it. Can any of you people delete them? [15:54] They are https://dashboard.snapcraft.io/dev/snaps/6115/ and https://dashboard.snapcraft.io/dev/snaps/6114/ [15:55] GRRRRR [15:56] * ogra_ curses u-boot ... [15:56] finally got 2017.01 building for the hummingborat ... now the SPL doesnt init it ... :( [16:06] ralsina, I don't know if that's possible after they got releases... [16:06] Facu: hmmm ok, that's very annoying [16:07] make them private, then nobody will be able to see them at least [16:07] ralsina, mmm... I have this package, with a release to edge, and I can delete it! https://dashboard.snapcraft.io/dev/snaps/7466/ [16:08] morphis: The image is way too large at the moment, at 2.8GB [16:08] this one I can not delete: https://dashboard.snapcraft.io/dev/snaps/7544/ [16:08] Facu: can't unpublish it either, or can't see how to, even when the help says I can "unpublish at any time" [16:09] ralsina: have you tried `snapcraft close `? [16:10] ralsina, that what sergiusens says [16:10] sergiusens: nevwer thought I needed to use the command line to make something go away on a website [16:10] ralsina, I unpublished everything in https://dashboard.snapcraft.io/dev/snaps/7544/ and still can not delete it [16:10] nessita, may you know what makes a package "undeleteable"? [16:10] "Your account lacks permission to close channels for this snap." [16:11] Facu: somebody installing it, is what i was told way back [16:11] Chipaca, "in the process of installing it"? mmm [16:11] oh, well, who cares [16:11] ralsina: but since you're here [16:11] ralsina: (hola!) [16:11] niemeyer: hm [16:11] I'll rename them zzzzzfoo and zzzzzbar since they are in the middle of two snaps I actually care about :-P [16:11] hola Chipaca! [16:11] ralsina: what was that about you not being able to publish to edge from travis? [16:12] niemeyer: you killed the instance? [16:12] ah no you didn't [16:12] Chipaca: not travis, build.snapcraft.io [16:12] morphis: Yeah, still there [16:12] Chipaca: it builds every commit, and then doesn't actually have a knob to make it release to edge [16:12] ralsina, build.snapcraft.io pushes to edge every 'fades' release [16:13] niemeyer: hm, looks like I forgot to do the cleanup on the new install I spawned up this afternoon after my previous one got removed [16:13] Facu: how? [16:13] ralsina, don't remember doing anything special === chihchun is now known as chihchun_afk [16:13] Facu: the only things the UI lets you configure is the repo and the package name [16:13] I updated the relevant bug; if anyone could assist me with finding a fix or workaround, that would be awesome. https://bugs.launchpad.net/snappy/+bug/1687079 [16:13] Bug #1687079: cannot change profile for the next exec call: No such file or directory [16:14] ralsina, I had something in edge before setting up build.s.io [16:14] ralsina, does your package? maybe that's a detail? === heber is now known as heber_lunch [16:36] PR snapd#3387 closed: cmd: auto import assertions only from ext4,vfat file systems [16:50] PR snapd#3391 opened: tests: reboot after upgrading to snapd on the -proposed pocket [16:54] niemeyer: running out of time, will ping you tomorrow again [16:54] morphis: Sounds good, thanks! [17:01] Facu: yeah, had stuff in all channels, really [17:20] seems timeouts are really trying to stop me from landing snapd#3375 :( [17:20] PR snapd#3375: snapstate,many: implement snap install --unaliased === heber_lunch is now known as heber [17:37] PR snapd#3386 closed: interfaces, osutil: move flock code from interfaces/mount to osutil [17:39] PR snapd#3357 closed: tests/lib: abstract build dependency installation a bit more === cachio_ is now known as cachio [18:13] niemeyer, after review many errors in travis, I think basd on the errors that are causing the fails perhaps we could adopt a different strategy to deal with flaky tests [18:14] cachio: That's a bit too general to correlate.. what's the issue, what's the first approach, what's the different approach, etc? :) [18:14] cachio: Sounds like a forum topic.. it'll quickly go out of hand here [18:14] niemeyer, have you ever read this post https://testing.googleblog.com/2016/05/flaky-tests-at-google-and-how-we.html ? [18:14] niemeyer, agree with that, I'll move out to the forum [18:15] cachio: We need data about what's going on.. not a blog post :) [18:15] niemeyer, of course, i am caollecting data [18:15] cachio: I suggest starting small.. take one single test that you'd like to fix and explain what is happening and how you'd like to fix it [18:15] cachio: Rather than trying to solve the world at once [18:16] niemeyer, i am doing that, but i see that some tests are failing because of external dependencies such as internet connection [18:17] niemeyer, just to clarify, I am not saying that we dont have to fix tests [18:18] niemeyer, I'll start a forum thread, better :) [18:18] cachio: Yeah, I get it.. I'm just suggesting to start with small but solid incremental steps [18:18] sigh, anyone else getting proxy errors for LP to the store? [18:18] i'll wait a bit and retry, but just wondering if it's a known issue [18:18] cachio: Thanks! [18:25] * zyga feels terrible but returned to the office for his laptop [18:48] PR snapcraft#1331 opened: integrations: use the snapcore/snapcraft docker image in travis [18:49] well for sure we have now a category of tests where prepare usually takes less than the timeout but sometimes more [18:51] PR snapd#3375 closed: snapstate,many: implement snap install --unaliased [18:54] pedronis: fgimenez has a branch bumping the timeout.. did we merge this? [18:57] niemeyer: it was bumped to 20mins, but I still saw prepare kill-timeout failures [18:57] today [19:04] anyway now that I have green run I don't see anythin taking more than 1000s, so it's either load or network when they take that really long time === ondra- is now known as ondra [19:20] pedronis: 20 minutes preparing? That ought to be something frozen [19:30] niemeyer, do you know the configuration needed to run tests in fedore? [19:30] fedora? [19:32] cachio: I wouldn't worry too much about anything that is not already enabled in Linode on master [19:32] niemeyer, ok === cachio is now known as cachio_afk [20:01] PR snapd#3392 opened: interfaces: add minimal seccomp resolver to avoid backward compatiblity issues [20:04] Bug #1693016 opened: snap install conjure-up fails if juju snap installed [20:28] store... proxy errors.... [20:33] PR snapcraft#1332 opened: cli: provide a whoami command [20:37] noise][, I'm having trouble installing the snap I just released into a branch. `snapcraft status` shows it's there. Is this a cache issue? [20:37] It's been about ten minutes now [20:44] kyrofa: not a cache issue, but let me see if someone can help investigate [20:46] noise][, alright, thanks. Snapcraft show me http://pastebin.ubuntu.com/24637022/ , but when I install I get http://pastebin.ubuntu.com/24637027/ [20:46] Note that pr-283 works fine, however [20:47] hola kyrofa [20:47] Hey Facu :) [20:52] kyrofa: refresh into the branch works [20:53] noise][, weird... how can that be? [20:53] noise][, but install fails? [20:53] different endpoints, might be a bug in details (used for install), but if so clearly we are missing a big test! [20:57] noise][, you say that a refresh from the branch worked, while installing from that branch didn't? [20:58] yes: https://pastebin.ubuntu.com/ [20:59] and although the output doesn't show it, it did change to the proper revision [21:05] noise][, wrong link, I think :P [21:05] woops [21:06] https://pastebin.ubuntu.com/24637178/ [21:06] kyrofa, would you please tell me the snap_id of that package? [21:07] Facu, njObIbGQEaVx1H4nyWxchk1i8opy4h54 [21:07] kyrofa, thanks! [21:10] Bug #1693037 opened: Can’t start a snap app [21:11] kyrofa, it's strange, indeed [21:13] Facu, yeah, weird. Any ideas? [21:14] kyrofa, not yet, and I need to run now :(, but I'll grab this until I figure it out, can I get to you tomorrow about this? [21:15] (if somebody didn't get to you with this before) === cachio_afk is now known as cachio [21:19] kyrofa: I'll take a look after I'm out of this call [21:19] thomi, alright I appreciate it, thank you. [21:19] np [21:56] kyrofa: OK, I'm out of the call. Just to make sure I understand the problem, you have some branches that you can refresh into, but you can't install from? [21:56] thomi, one, yes. The other branches work fine [21:56] it's the 283 branch that you can't install from? [21:56] 284 [21:57] 283 works [21:57] ahh ok. Thanks. [21:57] I'll investigate. When's your EOD, and how should I let you know what I find if it's late? [22:10] wgrant: So the branch kyrofa is looking for doesn't exist in snaprevs: https://pastebin.canonical.com/188993/ I guess this may be an SCA integration issue? [22:11] thomi, in about an hour or so, but this is standing in the way of some stuff so I'll be checking back periodically-- feel free to just ping me here [22:11] kyrofa: ok, thanks [22:12] thomi: Yeah, I think it's a combination of SCA and snapd bugs. [22:12] thomi: Bret's refresh worked because snapd doesn't always parse out the branch [22:13] but you think it's not actually getting a revision from that branch? [22:13] I cna't see hwo it could, if we don't have that branch in our db [22:13] ugh. typoing [22:13] wow... [22:14] Well, there could easily be a bug in snapdevicegw that caused this [22:14] But the code in this case is pretty clear, and looking at snapd HTTP requests the client is doing some weird stuff. [22:14] Trying to work out exactly what [22:15] Hm. I just told it to refresh to "lalala", it made a query for "lalala/stable" which is correct, got an empty response as expected, but then said it upgraded [22:16] And before I told it to refresh to "stable/1234" and it asked for edge. [22:18] Yikes [22:18] Oh, no, that latter one was a typo. [22:19] But it still says the snap was refreshed even if the server returns nothing at all for the channel. [22:19] So Bret's test doesn't reveal anything, really. The only real issue here is that the branch never got pushed for some reason. [22:20] wgrant: want me to file a snapd bug for the poor UX around refreshing, while you investigate the push issue? [22:20] thomi: Sounds reasonable. [22:20] The really confusing thing is that it prints the version and says it was refreshed, even if nothing changed. [22:21] And also even if the server doesn't give anything to suggest that the requested channel actually exists. [22:21] wgrant although note that snapcraft thinks it does: http://pastebin.ubuntu.com/24637022/ . [22:21] what's the ux around refreshing that's bad? [22:22] and what is the weird stuff you see snapd doing? [22:22] kyrofa: Right, somehow it didn't make it from dashboard to the services that serve devices. [22:22] Chipaca: wgrant@lamuella:~$ sudo snap refresh core --channel=totally/bogus [22:22] core (totally/bogus) 16-2.26.3+git204.1bc8375 from 'canonical' refreshed [22:22] wgrant, ah, right [22:22] huh [22:22] wgrant: what's worrying is what snapd shows if you do 'snap info core' after that [22:22] yeap, that's a bug [22:23] I'm filing the bug now... [22:23] May 24 08:22:27 lamuella /usr/lib/snapd/snapd[12917]: logger.go:75: DEBUG: < "HTTP/1.1 200 OK\r\nContent-Length: 40\r\nContent-Type: application/json\r\nDate: Tue, 23 May 2017 22:22:27 GMT\r\nServer: gunicorn/19.7.1\r\nStrict-Transport-Security: max-age=2592000\r\nX-Request-Id: e8ab92e3-449f-4531-9cf1-60933ff2f0b1\r\nX-Vcs-Revision: 51cfdf0\r\n\r\n{\"_embedded\":{\"clickindex:package\":[]}}\n" [22:23] So the server correctly returned nothing. [22:23] thomi: so it changes the tracking channel, indeed [22:23] :-( [22:23] thomi: wgrant: nice catch [22:24] hmmmm [22:24] wait [22:24] I don't think this can be a server-side change. [22:24] why is the store not saying something like "404"? [22:24] But let me check. [22:25] Chipaca: It's a metadata request. [22:25] It takes multiple snaps, so can't 404. [22:25] right [22:25] Unless it's meant to, that'd be weird and a bug in the new services. [22:25] Well, a bug in the API [22:25] And a bug in the new services for not emulating that API bug [22:25] :-) [22:26] I didn't remember metadata requests started with the _embedded/clickindex:package thing, thought that was just search [22:26] https://bugs.launchpad.net/snapd/+bug/1693042 filed [22:26] Bug #1693042: snapd will refresh to a channel that does not exist [22:26] sadly it's everything that CPI used to return. [22:26] so, about the message, that's the correct message for when you switch to a channel that has the same snap revision as you already have [22:27] ie if you then do "snap refresh --channel=" it'll say refreshed [22:27] Chipaca: but you agree that it's the wrong message for the case where the channel you're switching to doesn't exist? [22:27] yeah, that makes sense to me [22:27] thomi: the bug is that it switches successfully to a channel that doesn't exist, indeed [22:27] I must remember to refresh my core back to a channel that exists :D [22:29] Chipaca, thomi: Confirmed that the same thing happens on CPI, so it's not a regression. [22:30] Good. [22:30] There is a slight behaviour change in that CPI didn't include _embedded/clickindex:package at all if it was empty, but snapd doesn't care about that. [22:31] oh, are you sure? I could imagine perhaps snapd would fail to parse the json of that was missing, resulting in a different error path [22:31] I just tested. [22:31] ahh ok [22:31] Overriding SNAPPY_FORCE_CPI_URL=http://cpisnap.ols.internal/api/v1/ [22:32] so, here's one thing i don't understand [22:32] wgrant: ahh [22:32] the metadata response is supposed to be [22:32] a json document with 'snaps' and 'fields' [22:32] e.g. something that starts {\"snaps\":[{\"snap_id\":\".... [22:33] and that's what you get when you refresh to 'beta' [22:34] actually, give me a bit [22:34] You might think that [22:34] * Chipaca 's not too bright right now [22:34] snapd probably strips the extra wrapping pretty early. [22:34] But checking. [22:35] it's parsed in store.go [22:35] type searchResults struct { [22:35] Payload struct { [22:35] Packages []snapDetails `json:"clickindex:package"` [22:35] the log is from the wire, directly [22:35] } `json:"_embedded"` [22:35] } [22:35] which is what i'm looking at [22:35] That's used for metadata as well [22:35] Chipaca: The *request* looks like what you pasted [22:35] The response is not. [22:35] ah, sorry then [22:36] i should redo this without the macaroon; it makes it very hard to read the logs [22:38] does the same thing happen when refreshing more than one snap i wonder? [22:38] (yes it's a different codepath) [22:38] (shut up) [22:39] Chipaca: It's not possible to override the channel for a multi-snap refresh, but I imagine so. [22:39] ah, of course it won't happen [22:39] because you can't set channel in the other codepath [22:39] (that's why the single snap codepath exists and is different) [22:39] If they were already on an invalid channel they'd erroneously think they were up to date, though. [22:40] wgrant: they'd think that because we told them so, you mean? :-) [22:40] Chipaca: Well, ish. [22:40] Chipaca: Long term we probably want the server to be able to report "hey, this channel doesn't exist any more, you should probably warn your user" [22:40] Which makes the distinction between "there is no update" and "there is nothing at all" important. [22:41] Even on non-switching refresh [22:41] ah that reminds me [22:41] And bulk refresh [22:41] niemeyer: is there anywhere i can read about the reasoning behind not having snapd boot a system of a branch when the branch closes? [22:42] Chipaca: Probably not in the depth you'd like to hear about, but I'm happy to provide the proper rationale here or in the forum [22:43] niemeyer: and perhaps more importantly, a branch that closes can't ever be re-used, right? [22:43] Chipaca: It can, and that's one side of the argument.. we have existing behavior in that regard [22:44] Chipaca: Think beta closing [22:44] well.. beta has a defined meaning around risk [22:44] hotfix, a lot less so [22:45] and my hotfix could well be my neighbour's nightmare [22:45] Chipaca: Interestingly and neatly, the behavior is exactly the same in both cases as far as channels are concerned [22:46] Chipaca: beta falls back to candidate once closed.. the branch falls back to its underlying risk level [22:46] niemeyer: I can see the mechanics at our end being the same and that being nice and consistent, but I fear the two things are going to be used very differently and that's going to get users into trouble [22:47] Chipaca: In my mind it's quite the opposite.. It sounds terrible to fiddle with configuration behind the administrator's back [22:47] basically the scenario where today there's a stable/hotfix for problem A, that's incorporated into stable and hotfix is closed, and then that makes problem B happen, so a hotfix for that is put out that reverts [22:48] i'm _just_ talking about letting branches be reused [22:48] thomi, wgrant so the refresh versus install test wasn't real. The real issue with my branch not showing up is a communications breakdown between the dashboard and the backend? [22:48] Chipaca: Okay, I don't understand the case you just described [22:48] (it's bad in both cases, the reverting-to-underlying and the non-reverting-to-underlying) [22:48] (for different but similar reasons) [22:48] aww [22:48] kyrofa: that's a reasonable summary, yes [22:49] Chipaca: If stable/fix-terrible-problem is closed because stable has the fix, it will fallback to stable.. end of story? [22:49] niemeyer: i need a way to just dump my brain state somewhere for you to look at [22:49] writing is too much work [22:49] Chipaca: :D [22:50] niemeyer: the way i imagine branches being used is to address urgent problems with particular users (or classes of users) [22:50] Chipaca: Yeah, that's one reasonable use case [22:50] thomi, if I release to another branch, will that interfere with your debugging? [22:50] e.g. you put out a stable, a week later it's discovered it's quietly corrupting rpi3s that have a particular wifi card [22:51] you can't bump roll back the release for x reason [22:51] you can't tell them to jump to beta for some other reason [22:51] so you put out a hotfix for them [22:51] kyrofa: should be fine [22:51] niemeyer: then you fix the underlying problem (or you think you do!) and close the hotfix branch after the next release to stable [22:52] Okay, so far with you [22:52] niemeyer: so now the users that are on hotfix are tracking stable again [22:52] Yeah, woohay [22:52] Bug fixed, people are back into the normal line [22:53] niemeyer: but now you find out that what you thought was a fix from the above problem is now making printers on people that have a particular bluetooth card on rpi 2s print nasty messages [22:53] niemeyer: so, you put out a hotfix for those users [22:53] the hotfix is basically undoing what you thought was a fix (but not quite, because of other unrelated changes) [22:54] niemeyer: with me so far? [22:54] Okay.. the problem there is that the branch name was reused, which is a very bad idea if you are convey two opposite meanings to the same content [22:54] Even snapd aside, people might end up installing the wrong thing because they've read someone's blog post abou tit [22:55] So, IMO a case of "doctor, it hurts!" [22:57] niemeyer: so how would this play out, in your view? what's the bit that went wrong? [22:58] Chipaca: Reusing the branch name for something that is not intended to be a real sequence.. [22:58] niemeyer: right, how is that being explained/communicated/enforced? [22:58] thomi, alright, done. I'm now unblocked [22:59] Chipaca: This is just like any other channel.. when we put two sequential things into a channel, we need to have in mind that people might install the first, the second, or both in succession.. [22:59] kyrofa: \o/ [22:59] thomi, wgrant, spotted where we mess up i think (still digging though) [22:59] Chipaca: and again, this is not specific to branches.. every channel behaves like that [22:59] kyrofa: Releasing to another branch would have actually run into the same problem, but we've fixed both now. [22:59] kyrofa: Your missing branches are no longer missing. [23:00] kyrofa: We're investigating how this happened. [23:00] wgrant, thanks for that [23:00] niemeyer: ok, i need to think about this some more. you're probably right, but something has me uneasy [23:00] Chipaca: Thanks for trying to find out what it is.. sometimes we do find curious edge cases with those conversations [23:10] fwiw, i'm in total agreement with niemeyer here on the branch behavior [23:11] publishers can absolutely screw their users if they repurpose a branch name for different cases, so they shouldn't do that, and we should make it clear in the docs [23:11] but there's absolutely cases where you'd want to re-open a closed branch [23:26] kyrofa: We're still investigating how nextcloud got into that bad state, but it looks like it might be a race in dashboard.snapcraft.io's automatic review process. The new store infrastructure noticed the data inconsistency and refused to accept the channel updates. We'll get alerted if it happens again, and we have a button to fix it immediately.