[02:19] PR snapd#4402 opened: tests: save the snapd-state without compression [06:00] morning === pbek_ is now known as pbek [08:05] mornings [08:16] pstolowski: hey [08:16] o/ [08:44] i've pushed some tools to analyze travis logs right here: https://github.com/bboozzoo/snapd-tools === __chip__ is now known as Chipaca [09:14] *yawn* [09:14] gmornin' [09:16] morning Chipaca! [09:21] Chipaca: o/ [09:21] Chipaca: have you found anything interesting in interfaces-many test? [09:30] mborzecki: just that connect takes 4s+, and it does 65 of 'em [09:30] mborzecki: i'm wondering about digging into why it takes that long per connect [09:31] pstolowski: how long does a hook take to execute? [09:32] Chipaca: are there any hooks used in this test? [09:33] mborzecki: I don't think so, but run-hook is still run and still seems to take time [09:33] that's why i'm asking: what's the minimum time run-hook takes, if there is no hook [09:33] this is run-hook that's part of connect-snap [09:34] reporting its ReadyTime - SpawnTime to be an average of 4s also [09:34] well, hooks in the tests are very simple, hookmgr just executes hook script and grabs the output, that's as fast as it can be. unless the hook misbehaves, in which case we can get stuck waiting on 10min timeout [09:34] (ie most of the time is there) [09:34] pstolowski: so that's my question, how fast is "as fast as it can be" [09:35] because if that's 4s then something is wrong [09:35] Chipaca, if there is no hook script present then there is nothing to do.. it's a no-op [09:35] and if it's _not_ 4s, then something else is wrong :-) [09:36] Chipaca, is this about interfaces-many test? [09:36] pstolowski: there are no hook scripts in any of tests/lib/snaps/test-snapd-policy-app-*/ [09:36] pstolowski: and it's taking 4s per hook [09:36] Chipaca, indeed [09:36] pstolowski: so, there's a bug in there somewhere [09:36] when I say "it's taking 4s per hook", what I should say is "it's reporting 4s per hook" [09:36] because the bug could also be in the reported time :-) [09:38] interesting. how do you measure it, do you have a modified code? [09:39] pstolowski: http://paste.ubuntu.com/26187733/ [09:39] pstolowski: just looking at changes [09:39] that is, /v2/changes?select=all, and then print and sort [09:40] to be clear, i am suspecting the times are somehow wrong [09:41] Chipaca, what is the number in parentheses? [09:41] pstolowski: id [09:41] k [09:42] but it doesn't make sense for them to be like this, so it's probably counting spawn time from the change and not the task spawn, or something [09:42] meaning i might need to accumulate time along a change [09:42] hm [09:42] i'll give it a try [09:44] Chipaca, I was going to say exactly that. the times on the left looks like accumulated times from the start [09:49] pstolowski: http://paste.ubuntu.com/26187774/ [09:49] accumulated, now [09:49] that makes more sense [09:50] but it does mean the time is all in connect itself [09:51] i'm going to have to profile this aren't i :-/ [09:51] * Chipaca sighs and gets onto it [09:52] Chipaca, big gap between 8.209555 install-snap(2)/run-hook(14) and 17.577298 install-snap(8)/setup-profiles(54) ? [09:53] pstolowski: are you still looking at the non-deaccummuated one? [09:53] Chipaca, ah gosh, right, I confused the tabs in my browser [09:53] :-) [09:54] * pstolowski closes the old tab to be safe ;) [09:54] pedronis: shouldn't SpawnTime of a change be the time it was run, not the time it was created? [09:54] pedronis: ditto task [09:54] oh wait that's "AtTime" [09:54] which isn't in the client >:-( [09:55] Chipaca, one thing I can say for sure wrt to this test is [09:56] PR snapd#4403 opened: asserts/signtool: support for building tools on top that fill-in/compute some headers [09:56] Chipaca, in the past we had Connect doing multiple connections at once. that was changed to create one task for every connection which in reality adds even more tasks because of hooks [09:56] Chipaca: Gustavo defined it that way, but basically it's creating time, not start of running time, notice that a task can start running many times (because of retry) [09:57] quick, how many definitons of a 'change' struct do we have in our codebase? [09:57] answer: no less than 4 (i wouldn't swear it wasn't more) [09:57] overlord/state has two, client has one, daemon has one [09:58] :-( no wonder theyre out of sync [09:58] pedronis: it makes knowing how long a task took to run quite hard [09:58] it is hard though essentialy [09:58] Chipaca: AtTime is used by retry with a specific time [09:59] pedronis: sorry, i said hard but i meant impossible, strictly [09:59] it is hard, yes [09:59] but with the data exposed we can only guess at it [09:59] gah [09:59] EOY-day should be more puppies and less cockroaches [10:00] :) [10:00] we could have a cumulative run time [10:00] also we have do and undo [10:00] a task is not one-time function [10:02] Issue snapcraft#1695 closed: Refactor meta into package [10:02] PR snapcraft#1804 closed: meta: refactor into a package [10:03] Chipaca: you need to measure stuff from TaskRunnun.run basically [10:03] *TaskRunner [10:04] pedronis: i think i'll open a forum topic [10:04] otherwise it'll bug me [10:05] yay. green ticks next to my PRs again. [10:06] jamesh: oh no you jinxed it [10:06] pedronis: https://forum.snapcraft.io/t/task-accounting/3201 fwiw [10:09] Chipaca: apart from the tests/main/searching bug that was recently fixed, a few times it seems the tests just take too long to run for travis [10:09] jamesh: yeah, we're looking into that -- they shouldn't [10:10] jamesh: there are some things we can do, but we'll wait for the new year as they require a concerted effort [10:10] jamesh: (this is, basically, updating the images to spend less time waiting on the network) [10:10] jamesh: but then, there're still tests that are inexplicably slow; looking into that as well [10:10] or randomly failing [10:10] Chipaca: it'd also be nice if the test output was less verbose: when there is a failure, it takes a while to locate the error message [10:11] jamesh: yeah, gustavo was going to turn off a lot of the output [10:17] kyrofa elopio you both added non actionable comments to https://github.com/snapcore/snapcraft/pull/1786 please address that [10:17] PR snapcraft#1786: lxd: always install squashfuse [10:18] Chipaca: I added to backlog at least otherwise it will get forgotten, Doing the simplest possible thing shouldn't be too hard, it might be too simple though. [10:46] unless i'm reading this profile wrong, 2/3 of the (cpu) time is spent doing json encoding [10:52] Chipaca: there might be some kind of for loop Locking/Unlocking state somewhere in there [10:53] any chance of getting https://github.com/snapcore/snapd/pull/4140 merged? [10:53] PR #4140: interfaces: add an interface for gnome-online-accounts D-Bus service [10:56] jamesh: if the interface don't work 14.04 should it not be exported there? [10:56] *doesn't work in [10:57] jamesh: I'm a bit unfraid that without clarity on that it can't be merged [10:59] pedronis: I think the D-Bus API changed between those GNOME versions, but haven't really investigated because we didn't install gnome-online-accounts by default back then (I don't think it is installed in 16.04 either) [11:00] jamesh: where is it installed by default? [11:00] pedronis: 17.10 definitely. We had a different online accounts system in unity7 [11:00] I'm not even sure we have a policy around interfaces that aren't there by default? [11:01] it'd be installed on Ubuntu-GNOME for those older releases though. [11:02] what happens if one installs a snap needing this but the service is not there? does the interface auto-connect? [11:02] ok, it doesn't [11:03] pedronis: if you connected the interface but goa-daemon wasn't present, then the confined app would get a D-Bus error when it tried to contact the service [11:16] pedronis, i've been looking at https://forum.snapcraft.io/t/new-configure-snapd-task-and-reverting/2774/2 in the light of 'auto-connect' task. aborting will make revert fail, no? or do I miss something? [11:17] pstolowski: you miss something, as I said we would need some special casing [11:17] otherwise it doesn't help [11:18] pedronis, indeed. somthing like a 'ignore-me' flag on the task? [11:18] yes [11:18] I thought we discussed that [11:19] given that your case you are splitting the bahavior of a preexisting task it would be ok [11:19] though setup-profiles is complicated [11:23] pedronis, yes, we discussed many aspects of that but i'm sure i missed some of that because of limited understanding of entire picture and edge cases; i'm sure reviews will prove that [11:28] am i the only one getting i/o timeouts all the time when trying to run anything on linode through spread? [11:34] everyone has a superpower ;-) [11:36] yeah, i speak polish, what's your superpower koza.. oh wait :) [11:39] pedronis: spot on. Dropping the unlock/lock in a loop in a loop (in a loop?) drops execution time to nearly nothing [11:39] this is in ifacestate/helpers.go: setupSnapSecurity [11:40] basically it means doing backend.Setup() with the lock held [11:40] is that bad? [11:40] in numbers, the test drops from over 5 minutes to under 1 minute [11:48] impressive [11:54] * cachio afk [12:01] Chipaca: I think over time we are moving away from freeing the lock if all we are doing is disk ops, otoh some backend do systemd stuff I think [12:04] I need to go to the boys school now (and might not make it back for the standup), but i'll look into it when i return [12:21] elopio something is wrong with the nightly, trying to commit to the uncommitable https://travis-ci.org/snapcore/snapcraft/jobs/316767537 === daniellimws is now known as Guest24164 === Guest55974 is now known as daniellimws === daniellimws is now known as Guest97038 === dows is now known as daniellimws [13:05] PR snapcraft#1795 closed: lifecycle: do not include source tarballs from previous runs [13:37] * Chipaca returns [14:22] i wonder if gofmt can find me all the instances of a for loop with a lock/unlock inside it [14:47] Chipaca: I don't think we have a ton of those, we had some in snapstate but I think we removed them [14:52] sergiusens checking the commit... [14:59] Chipaca: we have about 51 Unlock of state/contexts without a defer [15:00] Chipaca: or were you thinking of adding something to run-checks ? [15:01] pedronis: no, was just going to look at current state [15:02] Chipaca: you can probably just look at each of them [15:05] elopio and testing from master fails as transfer.sh is blocked [15:05] pedronis: heh, wrote a thing using parser and ast [15:05] found 10 locks inside loops [15:06] 6 of them not in tests [15:08] one is overlord.Loop, one (two actually) is overlord.Settle, one is TaskRunner.wait, one is devicestate.fetchKeys [15:08] and one in daemon.finishShutdown [15:08] all very boring [15:08] * Chipaca throws the ast away and goes for grep [15:09] Settle is also test only [15:10] Chipaca: notice also that they are much more problematic if the code invoked might change the state [15:11] we shouldn't serialize if there's no write [15:11] serialize as in JSON encode [15:12] elopio mind updating snapcraft#1802 ? [15:12] PR snapcraft#1802: metadata: extract metadata from appstream [15:12] elopio actually, if you have time, let's meet [15:41] sergiusens: on the weekly? [15:42] elopio one sec [15:46] Chipaca: will you propose a PR today? [16:27] pedronis: I fear not: the systemd backend does indeed do weird stuff that can take 10s+ [16:28] what I feared [16:28] pedronis: so i think i need to talk with zyga about it, and there might be a bigger refactor [16:28] * elopio is back [16:28] PR snapd#4404 opened: data/selinux: allow messages from policykit [16:28] also the systemd code is suspicious [16:28] Chipaca: given some control to backends, but we cannot pass state there, we would need an interface [16:29] pedronis: maybe define them as getting a sync.Locker [16:29] not sure [16:29] maybe Setup needs to return a callback to be called without the lock, so it's only frobbed once [16:30] i'm done for today, enjoy your weekend guys [16:30] mborzecki: see you next year! === mbiggers_ is now known as markb1 [16:30] Chipaca: oh, you're not here next week? [16:30] mborzecki: nor the one after that :-D [16:30] haha :) [16:30] mborzecki: i should be back on tuesday the twooth of january [16:31] well, then merry christmas and happy new year :) [16:31] mborzecki: likewise! [16:32] pedronis: or maybe we move to an actual database and this whole thing goes away? [16:32] maybe [16:33] not sure it's the best time to do that (too much other feature work/bugs) [16:34] * Chipaca nods [16:35] * pedronis calls it a year [16:35] happy holidays! [16:37] PR snapd#4405 opened: taskrunner/many: KnownTaskKinds helper [16:39] pedronis: have a good one! see you in 2018 [16:42] happy holidays pedronis! [16:45] enjoy pedronis ! [17:20] ogra_, I can't remember: will removing the classic snap reset the unpacked chroot as well? [17:20] Reset by removing it as well, I guess [17:20] Or is there a special command I need to do that? [17:24] Chipaca, perhaps you know? [17:24] kyrofa: AFAIK removing the snap will remove the chroot [17:24] kyrofa: because AFAIK the classic snap isn't special [17:25] Chipaca, well, it's a devmode snap, so I figure it can put that anywhere it wants [17:25] Removing and crossing my fingers... [17:25] kyrofa: i can check for you if you want :-) [17:26] Chipaca, nah, testing now [17:26] * Chipaca was curious and kicked it off to test [17:26] Chipaca, you were right [17:27] It's "creating classic environment" now. Excellent [17:27] kyrofa: sorry [17:30] sergiusens: we don't yet have any results from the PPA. We are at the bottom of all queues. I think that collecting daily would be alright. We won't necessary get the results of what was triggered the previous day, but we will get the results of the most recent execution. [17:31] there is already one execution for 20171215, so on tonights execution, the results should be collected. I'll keep an eye. [17:31] ok boys and girls, I think I'm done. [17:32] ttfn, and see you next year! [17:36] Hi guys, does anyone know how can I start the snapd with the DEBUG MODE using the binary instead of the service? [17:40] brunosfer: There are instructions for that in HACKING.md [17:40] search for DEBUG [17:42] cjwatson: Thanks [18:03] PR snapcraft#1808 opened: ci: don't fail if the snap transfer fails [18:04] nessita: cprov ^ That's to unblock you. [18:15] PR snapcraft#1809 opened: formatting_utils: add type hints [18:20] elopio, thanks! [18:36] * kyrofa is shooting, responses may be delayed [18:38] snappy-m-o autopkgtest xenial:armhf 1807 [18:38] Computer says nooo. See logs for details: [18:38] Command '['/tmp/tmpcxggf713/retry_autopkgtest.sh', 'xenial:armhf', '1807']' returned non-zero exit status 1 [18:38] snappy-m-o autopkgtest 1807 xenial:armhf [18:39] elopio: I've just triggered your test. [18:39] sergiusens: subscribe to that one ^ [18:39] no need to make a new pr, that one is up-to-date with master, and will run what you are looking for. [18:40] elopio 07 because no one will touch it for a while? :-) [18:42] yup, and it's almost a noop change. [18:56] Uhh... nessita cprov this seems like a problem: https://pastebin.ubuntu.com/26190126/ [18:57] It's working now. Maybe only some endpoints? [18:59] checking [19:01] kyrofa: does it continue to fail ? my systems are not complaining and we haven't changed certs recently, let me dig more [19:02] cprov, it happened twice. Third time it successfully downloaded/installed [19:02] kyrofa, is working for me: curl -s -H 'X-Ubuntu-Store: ubuntu' -H 'X-Ubuntu-Series: 16' -H 'X-Ubuntu-Architecture: amd64' 'https://api.snapcraft.io/api/v1/snaps/details/edukit-bot-kyrofa?channel=edge' [19:10] kyrofa is this an arm device? Check the date [19:11] kyrofa: we have some haproxy "SSL handshake failure", but it's too frequent to not have being noticed before [19:12] Fair enough, just wanted to raise it in case it was an issue. If it happens again I'll let you know [19:18] kyrofa: ah sergiusens is right, your system clock might not be current, https://lists.ubuntu.com/archives/snappy-devel/2015-March/000416.html [19:30] niemeyer, I was researching the connection issue and there is not way to connect to the machines after the connection error [19:31] niemeyer, so, it seems to be a problem in the machine allocation/start process [19:33] niemeyer, today seem to be working better than the previous days, that could be because there is less traffic [19:33] less people creating PRs [19:41] PR snapd#4406 opened: interfaces/dbus: adjust slot policy for listen, accept and accept4 syscalls [20:07] PR snapcraft#1808 closed: ci: don't fail if the snap transfer fails [21:07] elopio this is my endgame, snapcraft#1798 [21:07] PR snapcraft#1798: elf: strip the .note.go.buildid to make room for patching elf [22:05] sergiusens: is it possible to get 'dump' plugin to _just_ dump the file at the url specified by 'source' and put it in the snap? I don't want to unpack. Just dump the file in? [22:09] think i might have to use nil, and wget in install step