/srv/irclogs.ubuntu.com/2015/07/15/#snappy.txt

rsalvetisergiusens: elopio: failed to me even when not empty, this bug sucks00:04
rsalvetiwe need a smarter workaround00:04
sergiusensrsalveti: what failed? snappy-stamp?00:09
rsalvetisergiusens: the fat partition got corrupted even when the stamp is not 000:10
rsalvetiso we need to go with ogra_'s solution00:10
rsalvetito use env + kernel cmdline00:10
rsalvetiand do that under the initrd00:11
sergiusensrsalveti: I guess we can have some logic in lp:snappy to carry this change00:11
rsalvetiright00:11
sergiusensrsalveti: I was just coming in to propose and do something like that for the fatwrite thing00:12
sergiusensrsalveti: I don't understand ogra's solution though; instead of a stamp file the env would be stored on disk? is that it?00:12
sergiusensrsalveti: env being snappy_ab, snappy_mode and snappy-stamp's replacement ?00:13
rsalvetitrying to remember the details00:13
rsalvetibut we can try something different as long we're not writing from the bootloader00:14
rsalvetiwe can read from the bootloader00:14
rsalvetiand pass over arguments via kernel cmdline, for example00:14
rsalvetineed to get off for dinner, try to propose something, otherwise we can talk tomorrow00:15
sergiusensrsalveti: well we need to write from the bootloader when something fails at that level00:15
rsalvetican't you just invert the logic?00:15
rsalvetiif the file is not there, it means the previous boot didn't work00:16
rsalvetibbl00:17
sergiusensrsalveti: I guess, and that is a much simpler fix00:17
sergiusensrsalveti: but we can't reverse the logic at this stage00:17
=== rcj` is now known as rcj
fgimenezgood morning07:09
dholbachgood morning07:13
=== erkules_ is now known as erkules
JamesTaitGood morning all; happy Gummi Worm Day! 😃08:33
=== greyback__ is now known as greyback
ChipacaJamesTait: i'm starting to suspect your days calendar is subsidised in part by haribo09:53
JamesTaitChipaca, now there's an idea!10:18
ChipacaJamesTait: you could save *dozens* on your kids' uni tuition!10:19
ogra_lool, *tickle*10:19
JamesTaitChipaca, who said anything about the kids?10:20
ChipacaJamesTait: I did. Just now. Pay attention!10:27
JamesTaitYes, sire. Sorry, sir.10:27
loologra_: hey10:38
ogra_lool, did your patches for uboot ever make it upstream ?10:38
loologra_: sorry was away yesterday, I see you were discussing some u-boot stuff with ricardo s10:38
ogra_yeah10:38
loolno idea, checking10:38
loolit was a one line patch to the config10:38
ogra_seems fatwrite is constantly corrupting the vfat ... we are looking of the newer uboot from the wily archive could perhaps help10:39
ogra_*if the10:39
loologra_: oh wow, that sucks10:39
ogra_(and in general we'd like to base off an archive package)10:39
loolI dont care about basing on archive TBH10:40
ogra_well, you got everything in one central place there10:40
loologra_: I dont see my patch merged upstream, but it seems to me the config includes were reworked in a way that enables this particular config10:41
loologra_: we dont want to be the central place for firmware IMO10:42
ogra_was it really just config ? i thought you needed some extra stuff for raw initrd10:42
loologra_: no, just a config10:42
loologra_: http://people.canonical.com/~lool/snappy-bbb/0001-Enable-SUPPORT_RAW_INITRD-to-load-initrd.img.patch10:42
ogra_we want to be able to maintain the firmware for our supported imaes10:42
ogra_and having that centralized makes it easier10:42
loolnowadays, include/configs/am335x_evm.h includes include/configs/ti_am335x_common.h which includes include/configs/ti_armv7_common.h which defines CONFIG_SUPPORT_RAW_INITRD10:43
loologra_: I dont think we want to maintain that firmware; also it's ok if we build it once and stop worrying about it10:44
ogra_ah, cool. that was the thing i needed to knwo10:44
loolI know this sounds extreme and contrary to our usual standards10:44
loolbut it's just make work where we have no value10:44
ogra_well, we ship that firmware and we *wnat* to control it ... at least til we know it isnt bugy anymore10:44
* ogra_ needs new kbd (or new fingers)10:45
ogra_for now we only want fatwrite to work or find an alternative though :)10:45
ogra_my idea was to ship a uboot.env by default that carries the values, but that needs some hackery if we want to change them from userspace after boot10:47
loologra_: do you have a recipe to trigger the fatwrite issue?10:47
ogra_lool, doing multiple rollback and update actions on a BBB 15.04 alpha image10:48
ogra_the prob is also that the BBB can fall back to the internal uboot ... which has fatwrite enabled but is 8 months older than what we ship10:48
loologra_: FYI, upstream commit we care about is:10:49
ogra_so might even have other bugs10:49
loolcommit 6440b807399c81c3670f7c9805c917308cfdd5d310:49
loolAuthor: Guillaume GARDET <guillaume.gardet@free.fr>10:49
loolDate:   Mon Nov 3 14:26:17 2014 +010010:49
loolARM: TI: Enable raw initrd support10:49
lool(my patch was produced later but on top of the previous u-boot release10:49
ogra_right10:49
loologra_: what's the symptom of the fatwrite issue?10:50
ogra_corrupt files on the vfat ... kernel or dtb usually10:51
sergiusensmorning10:51
ogra_bug 1474126 is one of the current bugs with it10:51
ubottubug 1474126 in Snappy "failed to rollback from 15.04 alpha #4 to #3" [Critical,Confirmed] https://launchpad.net/bugs/147412610:51
ogra_rsalveti confirmed that he never gets the issue when removing fatwrite from the process and hacking the a/b stuff manually instead10:52
rsalvetimorning10:52
rsalvetiogra_: latest uboot doesn't help10:53
ogra_ah, i feared that10:53
ogra_i didnt see anything about it in the backlog10:53
loolso we've likely found an u-boot bug, or we have a misconception10:53
loolhow do we deal with it?10:54
ogra_i think fatwrite is used so rarely that it still has many bugs10:54
sergiusenslool: that is what is under discussion10:54
sergiusensdealing with it10:54
rsalvetiideally I'd like to not use fatwrite10:54
ogra_lool, as i said, one option would be a uboot.env by default10:54
loolI wonder whether it's by virtue of u-boot touching the MMC at all; that is, the abstraction of the MMC controller doing the writes might just result in corruption (dependent on the SD card brand) and then we need to go back to the drawing board10:54
rsalvetieither invert the logic or get to another solution10:54
ogra_but snappy needs to be able to disassemble and change it10:54
sergiusenslast night rsalveti proposed inverting the logic (file not there for u-boot and file created by snappy)10:55
sergiusensbut that isn't backwards compatible10:55
loolu-boot needs to be able to write some flag10:55
rsalvetisergiusens: I don't think we can do any solution that is backwards compatible10:55
ogra_and wont work for a/b10:55
loolotherwise you have no u-boot retries10:55
ogra_right10:55
rsalvetibecause we can't change the file that does the fatwrite10:55
loolwe can drop the u-boot retries if that's more pain than use10:55
* ogra_ still thinks we should just use a uboot env var10:56
rsalvetiwhat I thought was inverting the logic and giving the u-boot var via kernel cmdline10:56
rsalvetiand touch the file from the initrd10:56
rsalvetifatread is fine, fatwrite is the problem10:56
loolrsalveti: this is not enough10:57
loolrsalveti: I mean, it's less than today10:57
rsalvetiwhy?10:57
rsalvetiwe only check for the file to know if the boot succeeded or not10:58
loolhow do you record that you've attempted the boot?10:58
loolkernel panics, board reboots, you're back to the same bootloader logic, how do you avoid the boot loop?10:58
rsalvetican't use save via env var in uboot?10:58
loolthere is no flash on BBB10:59
loolso it's either over FAT, or we create a new u-boot environment partition on the emmc10:59
loolwe can even have redundant environment!  :-)10:59
loolbut that diverges quite a lot from upstream u-boot10:59
rsalvetiyeah10:59
loolor we debug fatwrite / emmc issue and we find the issue10:59
rsalvetithe only thing I don't like about that is that we'd be enforcing a newer u-boot (or patch) for everyone11:00
ogra_gah, what was that11:01
ogra_the stamp file can actually be touched from initrd, but the snappy_ab var needs to be dynamic and to be set before uboot tries to boot anything11:01
ogra_so the kernel commandline doesnt buy you much11:01
* ogra_ goes to find lunch11:07
sergiusensogra_: lool rsalveti to be fair, we don't have this stamping logic for grub based systems11:10
sergiusensiirc11:10
rsalvetisergiusens: what do we do there?11:10
loolsergiusens: we dont?11:10
sergiusensrsalveti: I'm not sure, wasn't involved (I think nothing), mvo do you know?11:10
loolI thought we were writing to the grub environment and setting a/b from there11:11
loolbut never saw it11:11
sergiusenslool: yes, a/b we set, but we have nothing similar to the stamp file11:11
rsalvetiwe need a way to know that we should not continue trying to boot one specific kernel11:12
sergiusenslool: rsalveti ah, snappy_trial_boot11:12
sergiusensgrubenv11:12
loolthe general problem is as follows: we want to demonstrate product-grade reliability across updates including kernel breakage, that relies on the bootloader being at least able to tell whether it's trying again or not; we're demo-ing on BBB11:12
loolI see two ways out of this11:12
sergiusenspath uboot11:12
sergiusenspatch*11:12
looleither we find another path to track the "retry"; for instance, we could use memory, but that's fragile11:12
lool(e.g. trigger the reboot with some concept, much like "reboot to recovery" on android)11:12
loolor we deliver a firmware which does what we want11:13
looland we drop the "upstream firmware" artificial constraint11:13
ogra_well, we only need to move the backend off the vfat11:13
loolwhich is just a constraint we're imposing on ourselves to be good citizens11:13
ogra_i.e. into a uboot var11:13
loologra_: that's fine with me, but then we need to use a patched bootloader to do this11:14
ogra_why is that ?11:14
loolsergiusens: so GRUB does implement the logic? good to know11:14
ogra_i thought uboot can generally use env blobs11:14
loologra_: hmm, perhaps it does support a raw environment at a fixed SD card offset, that might be a solution11:15
loolanother solution of this kind to consider is to ditch u-boot in favor of edk211:15
ogra_lool, well, more a blob file11:15
rsalvetiI think it supports that11:15
ogra_lool, like on the rpi11:15
rsalvetiogra_: a blob file in a fs or in an offset?11:15
loologra_: a blob file might be more reliable, but not sure11:15
ogra_it doesnt have any requirements on the partitioning11:16
loolI guess u-boot *might* be clever enough to overwrite the same blocks when updating the env file11:16
loolbut this might also be equally unreliable11:16
ogra_you can use saveenv in the uboot script11:16
ogra_it will properly update11:16
rsalvetibut where would we save the blob?11:16
loologra_: the question is whether it's any reliable11:16
ogra_in uboot.env o the vfat11:16
ogra_*on11:16
loolif it's replacing an unreliable solution with another unreliable one, it's not a good deal IMO11:16
rsalvetiright, but not sure if that is reliable11:16
rsalvetistill writing in the fat partition11:17
ogra_i thinnk it is as reliable as the uboot env is in general11:17
ogra_as long as we can safely load that blob file we are fine11:17
loolrsalveti: perhaps we can just add a sync/flush in the u-boot logic to shrink the window where the fs is getting corrupted?11:17
rsalvetiI don't think it's a sync problem11:18
rsalvetibut we can try11:18
loolrsalveti: you sync ;-) it's an actual bug in the fat logic?11:18
loolthat would be worth fixing in any case11:18
* lool notes that everyone focuses on u-boot since I agitated the edk2 broom11:19
rsalvetiyeah, just that this is holding our stable release11:19
* ogra_ already proposed to switch arm to grub yesterday 11:19
rsalvetibut, we're not going to be able to update the bootloader anyway11:19
ogra_:P11:19
rsalvetiso I believe we just release the stable image and try to fix the uboot issue11:19
rsalvetilool: what do you think?11:20
* ogra_ wonders if thats not actually to serious to release with it 11:20
loolrsalveti: I think it's a fine way forward given the other things we need to think about11:20
loolis this only hitting BBB/omap platforms?11:21
loolI wonder whether it would affect the pi211:21
ogra_lool, we dont support upgrades/rollbacks on any others11:21
loolright11:21
ogra_so no way to test11:21
loolI personally like to think we will move to UEFI and replace this with the GRUB logic entirely11:21
ogra_even on armhf ?11:21
ogra_(who would be doing that grub port? )11:22
rsalvetiogra_: lool: problem is, we can't update the bootloader11:22
rsalvetiwe don't have support for that11:22
rsalvetiso even if we find the fix, we'd need someone to manually update it11:23
rsalvetior we add enough logic to handle that11:23
rsalvetiwhich is kind of separating the upgrader from snappy11:23
loolrsalveti: let's do a bootloader update snap11:25
rsalvetithat's kind of the upgrader snap11:25
loolwe could call it update-manager.deb11:25
rsalvetibecause we want to update the upgrader before doing the upgrade11:26
rsalvetito work around issues in the upgrader code11:26
loolrsalveti: well I think it's ok to say "we had a critical issue with BBB reliable updates; we recommend you dump+restore your installation as follows" with 16.0411:26
ogra_well, one of the lessons we learned with the pandaboard is that we should definitely be able to update the bootloader :)11:26
ogra_i wonder why we make the same mistake again11:27
loolbut we need a working solution :-)11:27
rsalvetiogra_: right!11:27
rsalvetiand why did we decide to not be able to update the snappy-update uboot script11:27
rsalvetiwe can have bugs anywhere11:27
ogra_because it is dynamically created by udf today11:28
ogra_but i guess it could just move into the snap11:28
rsalvetiright, which is bad11:29
rsalvetiso will send an email saying we're holding up the stable image until we are able to identify a fix for the bootloader11:30
ogra_going with an env blob would enable us to actually drop all these files and have vars instead11:30
rsalvetiogra_: maybe something you can experiment11:30
ogra_yes11:30
mvo_grub uses the grubenv which is a magic file that can be written from grub11:32
ogra_right, uboot.env would be the same11:32
mvo_and there we do the same try-dance11:32
ogra_the prob is that we need to touch the stamp after boot11:33
ogra_so something in userspaxce needs to be able to modify the blob file11:33
mvo_ogra_: yeah, grub has a save_env function for this11:33
sergiusensrsalveti: ogra_ in rolling snappy-system.txt can be updated fwiw11:33
ogra_how does that work outside of the grub env ?11:33
sergiusensrsalveti: ogra_ just needs to go into the oem/gadget snap11:33
ogra_uboot has a saveenv command too ... but that only works inside uboot11:34
mvo_ogra_: oh, that works in both grub itself and the grub binary afaik11:34
sergiusensogra_: shouldn't fw_saveenv work?11:34
ogra_it might11:34
mvo_ogra_: the implementation seems to be very simple, its a static 1k file, and it will simply update that, i.e. no grow/shrink and no filesystems like zfs where stuff might explode (or is checksumed)11:35
mvo_that might explain why btfs and grubenv might be problematic11:35
ogra_yeah11:35
ogra_thats the idea for uboot.env too11:35
mvo_the alternative idea? or the idea behing fatwrite?11:35
ogra_the idea to replace fatwrite11:36
ogra_theoretically we could even get rid of snappy-system.txt with that11:36
mvo_ogra_: cool. if it works the same way as grub we could write a small helper that modifies the file making the same assumptions as grub11:36
ogra_yeah11:36
mvo_ogra_: i.e. no grow/shrink etc11:36
ogra_i guess thats the missing bit atm11:36
ogra_(beyond proving that the blob on top if a fat doesnt corrupt things as well :P )11:37
ogra_(i assume it doesnt, but this indeed needs testing)11:37
=== dstokes_ is now known as dstokes
rsalvetiogra_: alright, sent the email, on you now :-)11:40
ogra_heh, ok11:40
mvo_ogra_: writing the helper should be straightforward, aiui, the cluster size in fat32 is at least 2k so as long as thats enough we should be able to do the same as grubenv is doing in a single fat32 cluster11:42
mvo_ogra_: but let me refresh my memory by looking at some actual documentation :)11:42
ogra_mvo_, well, the uboot binary blob is a text file with uboot hearder afaik11:45
ogra_we'd just need to remove the header and can edit it ... then re-add the header11:45
ogra_or use fw_saveenv ... but i have to look if thats still working with current uboot ...11:46
mvo_ok11:46
sergiusensogra_: last I tried fw-saveenv wasn't working for me and lool gave me a fancy explanation11:46
sergiusensrsalveti: I say we delay release until this is fixed so new installs have a working solution11:47
sergiusensreduces the possible affected surface11:47
ogra_can we actually change uEnv.txt in the snap (wwill it be upgraded ?)11:48
ogra_since that has the logic to read snappy-system.txt ... so even if we cant update that file in 15.04 we could just leave it around but not use it anymore11:49
sergiusensmvo_: thanks for those tests! where/how to insert the mock partition thing was why I took so long11:51
sergiusensogra_: in rolling yes11:52
sergiusensogra_: in 15.04 no, but I can backport a fix11:52
ogra_sergiusens, ah, what *can* we updae in 15.04 ?11:52
sergiusensnot going to be straightforward due to all the refactoring that happened though11:52
mvo_sergiusens: no problem, thanks for finding the issue, that was the hard part11:52
rsalvetisergiusens: yeah, already sent an email saying we're delaying the release11:53
longsleepi just saw that email, how is fatwrite related to the base image? Is this not a u-boot issue?11:54
longsleepi mean, i had to backport basically the whole fat driver for the ODROID u-boot to get rid of corruption.11:55
ogra_longsleep, well, fatwrite is only used for the rollback/update logic of the core system... yes, it is a uboot issue11:57
* ogra_ lols ... 11:57
ogra_so Commodore sells phones now11:57
ogra_they dont look like breadboxes !11:58
longsleepogra_: yes - so i fail to see how it is related to any release of the base system. U-Boot is specific to the hardware is it not?11:59
ogra_longsleep, we ship our own uboot on the SD11:59
longsleepogra_: Ok - but specific for the BBB right?11:59
ogra_specific to any of the debvices, yes12:00
ogra_*devices12:00
ogra_(every image ships a device specific uboot)12:00
longsleepogra_: and that u-boot does not have the latest fat drivers?12:00
ogra_it does, but still causes corruption on the BBB12:01
longsleepmhm12:01
longsleepi see12:01
ogra_and we want to get rid of the fatwrite bits altogether12:01
longsleepthat sounds good - it gave me lots of trouble :)12:01
ogra_the plan is to have a uboot env in a file instead12:01
longsleepIf it helps, check if the u-boot really has all the commits i merged in https://github.com/longsleep/u-boot-odroidc/commits/master12:01
ogra_so that we can use vars and saveenv instead ...12:02
longsleepi hope very much that these commands are not some "rather" new feature of u-boot :)12:02
ogra_no, the oldest ones :)12:03
jdstrandelopio: hey, in the title and description of 1474658 I think you at times mistyped 'hello-world-fwk' (which doesn't exist) for 'hello-dbus-fwk' (which does). not saying anything about the bug, just saying that reading the report is confusing because of that12:27
elopiogood morning,12:33
elopiojdstrand: yes, at first it was my fault for mistyping it.12:34
elopiothen it turned out to be a real bug. I forgot to update the title.12:34
elopiofrom fgimenez reply, I suppose that the result of search should include the origin.12:35
elopiobut I'm not really sure why it works for hello-world without origin.12:35
jdstrandelopio: I think hello-world has an alias in the store12:41
elopiommm, that would make sense. So I think I would like to see the origin as part of the name in the search output.12:42
Chipacatedg: you around?12:46
* ogra_ is waiting for him too ... for a phone question12:46
Chipacaogra_: canté pri!12:47
* Chipaca has no idea how to translate that12:47
Chipacaogra_: something like "dibs!"12:47
elopiothe translation to costa rican would be: "¡primas!".12:53
Chipacaelopio: i'm not sure where your female cousins come into it, but it sounds like a lot of fun.12:56
elopiopuzzles me too. But I just do as the rest.12:56
Chipacaelopio: this might help:12:57
Chipacahttp://buscon.rae.es/drae/srv/search?id=v0qAEEf8TDXX2jytCRSE|aiJ5mOGSxDXX2KPmUIAG12:57
Chipacaelopio: 20 definitions for "prima"12:57
elopiothe beauty of spanish... ^_^12:58
elopiofgimenez: a little style comment, we probably shouldn't use "get" in the function names:13:22
elopiohttp://golang.org/doc/effective_go.html#Getters13:22
tedgThen how to you get a getter for Git without a getGitGetter function?13:24
tedgmvo_, ICANHAZ your libxcb patch?13:24
elopiotedg: you just can't. go fmt will refactor it to panic.13:25
tedgelopio, That's it, we need to stick with Bazaar then.13:25
elopio+1.13:25
* ogra_ notes that tedg is hiding from the #ubuntu-app-devel channel13:26
tedgOh, didn't realize there was one...13:26
mterryelopio, why are the tests in snappy under a directory called "_integration_tests"?  underscore feels weird13:28
ogra_upperscore is harder to type :P13:28
elopiomterry: I found no way to exclude them from the unit test execution.13:28
mvo_tedg: Chipaca probably has a better version if not I can pass you my original quick diff13:29
Chipaca1 sec13:29
mterryelopio, huh.  you mean "go test" was finding them?13:30
Chipacauh, why did i just edit this :-/13:30
Chipacatedg: http://pastebin.ubuntu.com/11882626/13:32
tedgChipaca, Thanks!13:33
tedgmeep13:33
elopiomterry: yes, go test ./... ignores the dirs beginning with underscore.13:33
elopiobut this was just a quick solution.13:33
mterryelopio, cool, just curious  :)13:34
mterrythanks for explaining  :)13:34
elopiomaybe we can put all the unit tests in the unit package, and use -filter unit13:34
elopioor maybe we can extend gocheck filter to have a -x.13:34
Chipacatedg: point that variable to somewhere you've copied /usr/share/X11/xkb to13:35
Chipacaand it's mvo's patch; the only difference is that he said FOO, and I changed it to the more confusing XKB_CONFIG_ROOT13:36
Chipacawas tempted to make it XKB_RENDER_ENGINE13:36
tedgI'd really like it to be XKB_MEEP13:37
Chipacatedg: XKB_MEEP_MEEP, and we call it the roadrunner patch13:37
elopiomterry: about functional tests for snapcraft, do you think we should install the snap in a snappy machine and run the binaries? or just check that the generated file seems correct?13:40
mterryelopio, so far I've just been testing that the files we would put in the snap are fine.  But I can see the virtue in installing the snap in a snappy machine.  Maybe not for all tests, but certainly when testing our final "make a snap" step13:41
elopiomterry: shouldn't be hard, in this case we just need to deploy a rolling edge snappy, and adt-run takes care of that. I'm thinking about running the examples, at least.13:44
=== __bjf is now known as bjf
mterryelopio, we have some integration tests already, using plainbox (in tests/plainbox)13:47
mterryelopio, but nothing that uses adt-run yet13:47
mterryelopio, for tests that want to download big things (like the go1.4 binary tarball)...  how do we best do that in an automated way?13:47
elopiomterry: many options. But I'm inclined to run the big download at least once. So maybe do unit tests for all the parts faking the download, or one integration tests using a local source. This will be run on each MP.13:51
elopioand then we can have a daily suite that does the real thing, hitting the real server.13:51
ogra_rsalveti, sergiusens, mvo_, so we seems to be missing a setting in the BBB binary ... #define FAT_ENV_FILE"uboot.env"13:53
ogra_that allows it to boot the env blob13:54
ogra_(it is funny, since most other TI targets actually have it set by default ... just am335x_* doesnt)13:57
ogra_oh man13:59
ogra_http://lists.freebsd.org/pipermail/svn-ports-head/2014-December/079896.html13:59
ogra_-+#define FAT_ENV_FILE"uboot.env"14:00
ogra_++#define FAT_ENV_FILE"u-boot.env"14:00
ogra_srysly !14:00
ogra_(yay for standadized names :( ... )14:00
sergiusensogra_: gotta love forks :-)14:15
ogra_yeah... i'm more into spooning than into forking usually though :)14:15
ogra_lool, so where exactly is the source we use for our uboot on the BBB14:16
loologra_: it's 2014.10 + the patch I linked earleir14:16
sergiusensogra_: comes from that readme I gave yesterday14:16
ogra_lool, ah, mailine ?14:16
ogra_*main14:17
sergiusensogra_: http://people.canonical.com/~lool/snappy-bbb/build14:17
ogra_ah, i only had seen the README :P14:17
mterrymvo_, I mentioned in an MR that I think assemble() should only wrap the binaries that are mentioned in package.yaml.  I think I'll make a merge for that, FYI14:31
=== bjf is now known as _jfb
=== _jfb is now known as _fjb
mvo_mterry: yeah, that makes perfect sense14:36
mterrymvo_, when we move the original executable out of the way...  do you like ".real" as a suffix?  or ".snapcraft"?  Or ".orig" maybe?14:36
mvo_mterry: hm, no strong opinion, .snapcraft is so specific it has the least risk of collisions :) but then,  we should protect against this anyway, I don't really mind. .real is good enough for me14:37
mvo_(but .orig is also fine)14:37
mterrymvo_, or we could make a new directory in the snap, snapcraft/ and put a wrapper in there, and modify package.yaml to point at our version14:37
mterryBut maybe other parts of their code have hardcoded relative paths to their executable14:38
mterryBut that should be fine...14:39
mterryThey'd already be running under the right env14:39
mterryWell, .orig is less invasive for now14:39
mvo_mterry: yep14:40
mvo_mterry: silly question, how can I test inside ./snap ? would it make sense to generate the wrappers already in the stage where the ./snap is generated ?14:40
mvo_mterry: I'm snappyfying libreoffice right now for bjoern :)14:41
mterrymvo_, maybe?  I've used "snapcraft shell" to test inside stage/14:41
mterrymvo_, are you kidding?  :)14:41
mvo_mterry: I am - mostly, I use the deb plugin to see how far I can get with just that :)14:41
mterrymvo_, for libreoffice, you'll almost certainly hit the hardcoded path problem14:41
mvo_yeah14:42
mterrymvo_, do we want to add ld_preload logic to snapcraft?  As an interim for the final bindmount/overlayfs solution?14:43
ogra_jdstrand, did you notice the ML ? someone is asking about mounting his USB driver to extend the writable space ... do we have any story for such a use case yet ?14:44
ogra_*drive14:44
mvo_mterry: maybe as a option? its a pretty cool feature14:45
mvo_mterry: just like you said :/ http://paste.ubuntu.com/11882956/14:50
* ogra_ notices elopio has an airtame too ... we need to talk the mir team into supporting that from the phone ;)14:50
jdstrandogra_: it needs to be handle by a storage framework (access to a shared resource). touch is developing one. snappy doesn't have one at this time14:50
mterrymvo_, :(  hardcoded paths are pervasive14:50
elopioogra_: saviq offered on the forums to write an app.14:50
mvo_yep14:50
ogra_jdstrand, ok, i guess we need the same framework on both ... are the people designing that aware of this fact ?14:51
ogra_iven the phone will switch to snappy eventually14:51
jdstrandogra_: or, snappy could define something as part of its FHS and then app-specific rules could be added for the external storage. basically, someone needs to work with the architects to define something14:51
ogra_right14:51
jdstrandogra_: tvoss is designing it. he is on the architects team14:51
ogra_would just be bad to have something on the phone that we have to throw away or re-write14:52
jdstrandogra_: I don't think snappy was explicitly mentioned. this was more of a user-driven interaction type of thing with content-hub14:52
ogra_i assume it would be nice if we could at least provide some hack for users so their device gets into fstab somehow14:53
jdstrandthat with a change to the snappy FHS and we could create security policy for it14:53
ogra_the guy asking actually only wants to use it in docker ... which i guess can be done via some configuration if the device is actually available or mounted14:53
jdstrandthat is my understanding, yes14:54
Chipacamterry: mvo_: hardcoded paths are pervasive, but we don't have to fix them all at once14:55
* ogra_ would also like to use owncloud on his rpi ... 14:55
ogra_(with 1G writable space thats kind of pointless though)14:55
Saviqelopio, yeah, I was even PM'ing with them for a bit about it but they went silent since14:55
ogra_Saviq, well, is Mir even capable of doing such stuff ?14:55
ogra_beyond vnc ...14:56
Saviqogra_, depends what you mean by "such stuff"14:56
ogra_remote desktop ...14:57
ogra_or desktop forwarding14:57
Saviqogra_, but, for what their mobile apps do (streaming content, not remote desktop), no mir support needed14:57
ogra_(or phone forwarding)14:57
ogra_ah14:57
ogra_only content streaming, ok14:57
Saviqogra_, but Mir can do screen sharing, too14:57
Saviqogra_, the troublesome bit there is compression14:58
ogra_well, i know it cant do anything like X11 forwarding ... or ssh X forwarding14:58
Saviqairtame can't, either14:58
Saviqairtame's a video streamer, is all14:58
ogra_doesnt that depend on what you feed it ?14:58
Saviqthe device itself is really just a h264 decoder14:58
ogra_ah14:59
* ogra_ still hasnt used any of his airtames 14:59
ogra_i have two14:59
ogra_(one early adopter version)14:59
Saviqogra_, I did discuss compression with Mir folk before, and FWIW it should be possible to use hardware compression capabilities of the GPU15:00
Saviqwell, SoC15:00
Saviqis what's used for camera video15:00
Saviqs15:00
mterrydholbach, heyo!  I found a weird typo I guess in snappy docs:  https://developer.ubuntu.com/en/snappy/guides/packaging-format-apps/  -- look at the "binaries" example.  The two examples use exec and name differently15:00
Saviqin theory you could feed it your screen15:00
Saviqand stream that to the airtame15:00
ogra_yeah15:01
davidcallemterry, nice catch, thanks15:04
dholbachmterry, very soon we'll have the docs auto imported :)15:07
ogra_and everything will break :)15:07
davidcalleogra_, of course, but isn't this nice ?  http://i.imgur.com/jX4SSJs.png , http://i.imgur.com/qUlDv1q.png :)15:07
ogra_sweet !15:08
davidcallemterry, fixed15:08
sergiusensdavidcalle: it sure is!15:08
mterrydavidcalle, dholbach: awesome, thanks15:08
Chipacai've got to go to the mechanic, will bbl15:27
Chipacatedg: any quesitons or blockers, telegram will work15:27
tedgChipaca, Cool15:28
tedgChipaca, Good luck :-)15:28
elopiosergiusens: I like your proposal for map + Scan, but for the format compliance tests.15:28
elopiowhat we are doing in the integration tests is closer to pattern matching: a user will ignore big chunks of text and care only about some lines. I find regexp and .* to express that nicely.15:28
elopioWe have a card for the format tests, where we will want to check every single line. I'll copy your comment in there.15:28
elopiowhat do you think?15:28
elopiofgimenez: before you go, can you please review https://code.launchpad.net/~elopio/snappy/test_go_install_framework/+merge/264666 ?15:29
elopiothat one blocks some of the others already approved.15:29
fgimenezelopio, sure15:30
sergiusenselopio: it's fine; scanning is also good to see how long a specific message takes to get on screen; but is leagues away15:35
elopiosergiusens: for that I was thinking about gocheck's StartTimer and StopTimer to surround the Exec call. But you are right, that won't work if what we want is to check when the downloading message appears, or when does it end.15:43
elopioDoesn't seem to be that far away, though.15:43
fgimenezelopio, you are working on test_go_install_framework right?15:45
elopiofgimenez: agh, no that's ready.15:46
elopioI left the comment on the wrong branch.15:46
fgimenezelopio, ok np :)15:46
elopiofgimenez: it's ok if I delete the generated control files, right?15:49
fgimenezelopio, sure, we should remove them15:50
elopiook, that makes it easier.15:50
plarselopio: if you have a moment today, can you help me sort out how to run the snappy selftests now? I was running a snapshot of the older adt stuff in lp:~snappy-dev/selftests but I understand it's all in trunk now15:51
elopioplars: yes! I wanted to meet with you after we got all the tests running in bbb, but we are close to that now.15:52
elopioplars: take a look here: http://bazaar.launchpad.net/~snappy-dev/snappy/snappy/view/head:/_integration-tests/README.md15:52
plarselopio: I have a fully automated local setup still for automated provisioning and testing15:54
plarselopio: just landed some more code to support that in a more flexible way, so you can specify how the device gets a hard reset, boot mode selection, and stuff like that through just a config change15:55
plarselopio: that way once the hardware lands in the lab, we can easily support that15:55
elopioplars: nice. And are we going to be able to choose the release, channel and image that gets flashed?15:56
plarselopio: yeah, I looked at that, but I couldn't get it to work, getting stuff like this:15:56
plarshttps://www.irccloud.com/pastebin/jqCr0J8s/15:56
plarselopio: well, it's assuming you provide an image, so that's external to this process15:56
elopioplars: you need to set up the go tree15:57
elopioand export the env vars.15:57
plarselopio: for now, I need to build the image outside and provide a url to download it from (preferably gzipped - downloading a 4GB image to bbb is *really* slow)15:57
elopiothat's explained on the main REAMDE.15:57
plarselopio: yeah, I thought I had all that set up though... I'll look again, maybe I missed one15:57
plarselopio: does this not run easily through adt anymore?15:57
elopioplars: that sounds fine. We are generating the image, we would just need to uplaod it.15:57
plarselopio: it seems like there should be an easy way to run this all from a script15:58
elopioplars: it does run through adt. Easily, that's relative.15:58
elopioplars: your go tree should look like /tmp/scratch/go/src/launchpad.net/snappy.15:58
plarselopio: how would you run it through adt today? I didn't see a debian/tests or anything15:59
elopioplars: once you get it set up as the root README says, and have autopkgtest installed, you can ./run-checks.15:59
kyrofaseb128, how should I give the snappy scope .deb a test run on Ubuntu Personal?15:59
elopioplars: we generate the adt-run control file on-the-fly. And pass the path as  an argument.16:00
seb128kyrofa, build a daily image, boot it (vm or usb stick), mount / rw, install the deb, reboot16:00
elopioplars: we can't really put the tests in debian/tests as they access the internet, and they require an snappy image. If we put them in debian/tests they will run in proposed migration, making a mess.16:00
elopioplars: once we are able to specify this requirements in the control test-class, we could move them to debian/tests. Make a default control file that will have everything we want proposed migration to run.16:01
kyrofaseb128, very good. I know you'll be leaving shortly. Assuming everything works okay, what are the next steps? Since the Ubuntu Personal seed pulls (I assume) from the archives, do I need to set it up to land in the archives somewhere?16:02
elopioplars: anyway, we can meet whenever you want. I would prefer fgimenez to be around, but that would have to wait until friday.16:02
* Chipaca back16:02
elopioif you prefer to do it earlier, we can just fill him in by mail.16:02
seb128kyrofa, it needs to land in Ubuntu first, then to be added to http://bazaar.launchpad.net/~ubuntu-core-dev/ubuntu-seeds/ubuntu-touch.wily/view/head:/desktop16:02
plarselopio: normally, I would use the ssh provider or similar for adt and run something like "adt-run --built-tree /tmp/scratch/selftests --output /tmp/results-0123 --- ssh -d -l ubuntu -P ubuntu -H 192.168.1.14716:02
elopioplars: yeah, no, we had to wrap that in our own script because adt-run works fine for running, but not for provisioning.16:03
plarselopio: the recent changes seem to have made this work very differently from running other tests16:04
plarselopio: oh, I provision it ahead of time16:04
plarselopio: by provisioning you mean installing the snappy image?16:04
elopioplars: go run _integration-tests/main.go --ip  192.168.1.147 would give you that.16:04
plarselopio: right, but that's what requires all the aditional go setup, and not just an adt-run16:04
kyrofaseb128, alright, I'll get that setup16:04
sergiusensogra_: by the way, your 64MiB suggestion for boot won't work, the modules in the kernel add up to 187MiB16:05
elopioplars: if you pass the ip, it does only adt-run, not building the image.16:05
seb128kyrofa, thanks, when you have a sponsoring bug for the new package feel free to subscribe me16:05
sergiusensogra_: but we don't keep that in boot...16:05
elopioplars: but we still need to generate the tests, generate snappy if you want to validate trunk, and some other stuff.16:05
plarselopio: I'm not seeing much about go/path setup in http://bazaar.launchpad.net/~snappy-dev/snappy/snappy/view/head:/_integration-tests/README.md16:06
elopioplars: take a look at that main.go. Is now nice and readable thanks to fgimenez' refactor.16:06
plarselopio: I'm just interested in running the selftests on a device that has already been provisioned16:06
elopioplars: http://bazaar.launchpad.net/~snappy-dev/snappy/snappy/view/head:/README.md16:06
elopioplars: yes, you still have to copy the tests to that provisioned device.16:07
elopiomaybe I should add a pointer to the other README.16:07
plarsah, I see some of the integration tests are in go now... I didn't look one level deeper16:09
plarsI was just seeing the shell ones16:09
elopioplars: hopefully, all of them will be go by the end of this week.16:10
plarsdoing things like this means a lot more requirements on the host side need to be supported, but if they have to be in go, I'm not sure there's a great way to do it16:11
plarsI can see the problem16:11
elopioplars: what kind of requirements do you think we need?16:11
=== Abhishek__ is now known as Abhishek_
plarselopio: just all the go stuff to get it building on the host, paths set up, etc... not as simple as the adt-run we did previously16:12
elopioplars: right, that's because previously you were running the tests on the published image.16:12
elopiowe need to run the tests before an image is published. So we have to build snappy and get it into the image.16:12
plarselopio: I got as far as go build working, but the test run bit doesn't work16:13
plarsit just drops a binary for snappy itself in /tmp16:13
sergiusensogra_: rsalveti btw, bind mounting modules.img to /lib/modules worked like a charm :-)16:13
elopioplars: can you paste the output?16:13
plarselopio: I did, it was the previous pastebin16:14
elopioplars: on the previous pastebin you didn't have the proper go path, that's why it doesn't find the gocheck module.16:14
sergiusensplars: godeps -u dependencies.tsv16:15
plars$ echo $GOPATH16:15
plars/home/plars/go/work16:15
plarselopio: under that, it seems to have downloaded all the necessary bits16:15
plarselopio: but I'd rather it didn't, don't we want it to pull from the branch checked out so it gets what's there?16:15
elopioplars: so cd /home/plars/go/work/src/launchpad.net/snappy and ./run-checks in there.16:16
plarssergiusens: I don't seem to have godeps16:16
elopioplars: not sure what you meant with the last statement.16:16
plarselopio: that's using a downloaded copy from launchpad.net right? how do you tell it to just use what you have checked out (and possibly changed locally)16:18
plarselopio: or do you have to download it with 'go get' and modify the copy in your $GOPATH/src/...16:18
elopioplars: with go get you only download the dependencies.16:19
elopioyou get snappy from the bzr branch.16:19
elopionot yet sure if that's what you are asking though :)16:19
elopiofgimenez: https://code.launchpad.net/~elopio/snappy/test_go_info/+merge/264790 is again ready for review.16:22
fgimenezelopio, ok i'll take a look16:22
elopionot sure if it's already late for you. If so, don't worry, we'll get it on friday.16:22
plarselopio: run-checks seems to be trying to generate the image, which is precisely what I *don't* want to do16:23
elopioplars: I know.16:23
elopiothat's just to check that you have everything in place.16:23
plarselopio: I suppose I would also need to build these for arm right?16:24
elopiono, instead of ./run-checks, do16:24
elopiogo run _integration-tests/main.go --ip {remote-device-ip}16:24
elopioplars: ah, right16:24
elopiogo run _integration-tests/main.go --ip {remote-device-ip} --arch arm16:25
plarsadt-virt-ssh: error: unrecognized arguments: --reboot16:26
plarselopio: I guess I need a different version of adt-run?16:26
elopioplars: you need the latest one.16:26
plarsI just have 3.13 from vivid16:26
elopioon the _integration-tests/REAMDE you'll find the link.16:26
plarsah, I see16:26
elopioplars: the one for wily is ok, but sometimes pitti fixes something for us so even that one can be outdated.16:27
plarsyeah16:28
elopioplars: https://trello.com/c/KHFqlCce/157-make-sure-that-the-machines-running-the-tests-have-the-latest-adt-run16:28
plarselopio: ok, it's getting farther... I'll see what I can do with this. Thanks a lot for the help!16:28
plarselopio: which test beds is that aimed at? something you have set up somewhere?16:29
elopioplars: just in general. Everything we use as a test host needs the latest adt-run.16:29
elopiowe are currently playing with a canonistack machine that will deploy other canonistack machines as testbed. And locally from our dev machines.16:30
fgimenezelopio, done with test_go_info, dropped a comment16:30
plarsah, ok. so a pre-run check16:30
fgimeneznice evening everyone o/16:32
elopioplars: yes.16:33
sergiusensmvo_: do you know what creates /lib/firmware?16:33
sergiusensmvo_: oh, nevermind, I'll fix the 500 binary task to not remove the dir :-)16:34
elopioplars: so, when you get this bbbs running from the lab, we will extend main.go to run the tests in there in addition to in kvms.16:34
elopiowe'll give you an image path, and you'll return us an ip. Everything will then just work (tm).16:35
plarselopio: well, the image really needs to feed into it before you call main.go16:40
=== vmayoral|pc is now known as vmayoral
elopioplars: why is that?16:41
plarselopio: so we can just call ubuntu-device-flash somewhere else, build the image and push it to a download site, then the provisioner makes sure the device is stable and flashes it, boots into the image, then the script to run the test is called16:41
elopioplars: I think we need to start that whole process from main.go.16:42
plarselopio: it's already a very weird process from everything else, but that's the only sane thing I can think of to do16:42
plarselopio: that's going to be a problem I'm afraid16:42
plarselopio: the provisioning is handling a lot more than building an image, and in fact doesn't even build the image16:42
plarsit needs the image handed to it16:42
plarselopio: it also handles detecting if the device is even available, or if it needs to be recovered to some working state16:43
elopioplars: ok, we can call main.go to an already generated and provisioned device.16:43
elopioplars: but I'd like two things:16:43
elopio1. tarmac notices a new merge proposal is ready for review, so it triggers the whole test suite in kvm and bbb.16:43
plarshah, watching adt-run complain about apparmor rules and autopilot introspection in this context is a bit funny16:44
elopio2. something notices that there's a new image in the channel and triggers the whole suite in kvm and bbb.16:44
elopioI think you are thinking about giving us 2, which is useful. But 1 it's more important atm.16:45
plarselopio: that part is on your side like all other teams, we just provide the hardware :)16:45
plarselopio: you really should sync up with the ci (ols) team and start taking a look at what they are working on16:46
sergiusensplars: that ci is not the thing we need; I don't think they are doing source level ci which is what elopio wants; in any case, once we have webhooks and we can talk to this hardware somehow, it won't be a problem16:49
plarssergiusens: I'd like to understand how that works, I would imagine that someone wants to test on hardware?16:51
beunoelopio, plars, sergiusens, CI is *only* focusing on product testing. That is, testing an image with one or many snaps, and their test suite however that's defined16:53
beunounit tests on branches it out of scope for the CI work being done, or planned to be done16:53
beunothe entry point is a built snap16:53
elopiobeuno: yes, this is not unit testing. This is testing snappy as-installed.16:55
elopionow, if snappy is a deb, not a snap. So, that's out of your scope?16:55
plarsbeuno: right, and this may be very different from the tarmac stuff they want to do right now, but if anyone wants to use the selftests as we have done before for testing snappy images, it would need to fit into that process somehow16:55
beunoelopio, we start off from a pre-built image, and can put snaps on top. CI won't care how that image is put together16:56
beunoelopio, once it's all snaps, it will be able to compose images on-the-fly16:57
beunoplars, yeah, we have uses cases for testing snaps before putting them in the store (or publishing them to any channel). Is that what you had in mind?16:57
beunoit's still a snap as a starting point16:58
elopiook, so everything will just work. We just need to plug everything.16:58
beunoelopio, correct16:58
elopioonce I know who to get a bbb provisioned, I'll add it.16:58
elopioand once I know how to define a test as part of a snapp, I'll add it.16:58
beunoelopio, the first MVP will be able to take a URL for an image, trigger test runs in jenkinses controlled by you and in hardware controlled by plars16:58
beunoreport back16:58
elopioand once I know how to generate a image on the fly, I'll add it.16:59
beunosecond MVP, that, but also install a snap16:59
elopiosounds easy :)16:59
beunoelopio, I expect plars to sort out bbb provisioning for you16:59
beunohe owns the lab16:59
beunoand you just focus on where and how to run tests16:59
beunoyou slap on a small agent to the jenkinses and CI takes over in driving tests and reporting back16:59
elopiobeuno: yes, all good.17:02
elopiohowever, I expect we will start having problems when the boundaries between runner, provisioning and test are blurry.17:02
elopiofor example, we'll run the whole suite on a given image, that's the easy case.17:02
plarsbeuno: as I understand it, a test request can be made with or without a new snap. It just needs to be provided with a image to install and a test payload17:02
elopiothen we will want to specify image 15.04 alpha -1. Update it, reboot and then run more tests.17:02
beunoplars, correct17:02
elopiothat's harder. But we'll get to it after solving the first case.17:02
plarsbeuno: BBB provisioning is sorted out locally, and as soon as the hardware we've ordered arrives, it will be sorted in the lab17:03
beunoelopio, indeed. So provisioning will need to support that, and there's plenty of places to collaborate17:03
beunoplars, awesome. The good thing about our current model is that we could run it on your bbb and elopio's until we do  :)17:03
plarsbeuno: my concern here was that provisioning needs an image, not a go binary to try to handle everything fo rit17:03
elopioplars: so, for now, we just need an ip from you.17:04
elopiowe will adt-run into that ip.17:04
plarsbeuno: indeed! I'm sitting next to a breadboard with relays and a BBB fully instrumented right now :)17:04
plarselopio: but you don't know how to drive those relays, the control mechanism, hard power on/off, etc17:04
plarselopio: that's why I need to have the local provisioning agent handle that17:04
elopioplars: what you need is make an adt-run controller that knows how to handle that.17:05
plarselopio: it's not that your scripts can't be taught to do that, but it's configured locally per device, so there's no way to know how to do that in a generic way for any device in any environment17:05
elopiobut in our current tests, we don't need hard power. Not yet.17:05
plarselopio: I do, for provisioning and recovery17:05
elopiothat's only needed on your side, after a test ends.17:05
plarselopio: that's why the hard poweroff is needed17:05
plarselopio: no17:05
plarselopio: for provisioning, the bbb needs to boot either into emmc or sd17:06
elopioplars: but that's on your side too.17:06
plarselopio: you can never assume that the image on there before was ok to boot from17:06
plarselopio: exactly, that's why you *should* want me to handle provisioning, not your tests, and definitely not adt17:06
elopiowe will give you an image, you provision however you want and we'll wait.17:06
plarsthat's way too late in the process17:06
elopioonce we get the ip, we run the tetsts.17:06
plarsand there's no way to make it generic enough for those to handle it17:06
plarsit's a local device problem to solve17:06
plarsthat way you can just say "here's the image, you sort out how to get it on the device"17:07
elopioplars: you are saying just what I'm saying, I don't understand why you say it's too late.17:07
elopiowe will give you the image, somehow.17:07
plarselopio: then that's fine17:08
elopioyou put it in a device, somehow.17:08
elopiowhen that's ready, you give us an ip, and we adt-run into that ip.17:08
plarssort of...17:08
plarsyou would tell us where the test payload lives, which we need to figure out17:08
elopioplars: adt-run takes care of setting up the tests, through ssh.17:09
plarsthen a local script would probably have to detect that it's this selftest thing, not a regular adt test, and set up the go environment, call your main.go with the ip of $device17:09
elopioyou don't need to know anything about the tests.17:09
plarsthen save off the results somewhere you can get to them17:09
plarselopio: well, sadly I do now17:09
plarselopio: because I can't treat it as a regular adt-run17:09
elopionot yet, at least. Once we want to test hardware power-off, then it's harder. But again, we'll figure it out later.17:09
elopioplars: adt-run takes care of collecting the results, through ssh again.17:10
plarsoff the device... then what?17:10
plarselopio: you don't have access to the local setup, and all that is going to get destroyed locally, not kept forever17:10
elopiowhy can't you treat them as regular adt-run?17:10
plarselopio: you said I couldn't17:10
elopioplars: yes, but you destroy it after the test finished. After adt-run collected everything.17:10
plarselopio: you said I had to set up the go build environment and build it first17:10
elopioplars: oh, I meant not as regular dep8 tests.17:11
plarsright :)17:11
elopiothese are not normal debian package tests, because they can't run in any debian, they need to run in a snappy.17:11
plarselopio: so at that point the tests are sitting on a host system half-way around the world... I assume you'd like to get at them somehow?17:11
elopioplars: so, the host is my machine, and the test bed is a bbb in the lab.17:12
plarselopio: sure, the previous selftest could run directly from adt-run though, and didn't require building and setup ahead of time, that's what I meant17:12
plarselopio: ah, that's where the confusion is17:12
elopioonce I have the ip of the bbb, from my machine I use adt-run to get the tests  into the bbb, to run the tests, and to collect back the results.17:12
plarselopio: your local machine may be the one requesting the test, but it's definitely not the host machine from which adt-run gets called17:12
plarselopio: assume  lab, private network, etc17:13
elopioplars: it has to be either my machine, or the tarmac machine, or the jenkins machine.17:14
plarselopio: otherwise, if you want to instrument beaglebones and run them all locally, that's an option17:14
plarselopio: why?17:14
plarselopio: this is not that different to the problem on phones... you need something that manages that resource, connects to it locally, etc17:14
plarsif it's in a lab, it needs to be something there, providing a service that lets you request provisioning, testing, etc. and feeds you back the results17:15
plarselopio: otherwise there's no way to stop you from stomping on stuff others are doing, or stop them from messing up your stuff17:15
plarselopio: now if it's something sitting locally on your desk, that's not a shared device and you can locally control access to it17:16
plarselopio: but the automated provisioning has to be handled locally, or else done manually17:16
elopioplars: yes, so you will have in the lab a tarmac machine that will ./run-checks from a snappy branch. And that will request a bbb and run tests in there.17:16
elopiothat tarmac machine will take care of collecting the results, and  posting them to launchpad.17:16
elopioev, let me paste the log for you.17:18
evthanks17:19
elopiothought I feel that we are going in circles. Once there's an API I can call, everything will be easier.17:19
evI'll read over it after lunch17:19
beunoI think it's all fine, FWIW, and this will be clear once we have the first piece in place17:21
beunobut the journey of the conversation was super valuable17:21
plarsindeed, I think it will make a lot more sense as soon as some of those pieces land17:23
plarselopio: for you, I think the process will work something roughly like: request $test on $image_url, receive a unique id, poll $somewhere for results (including a link to details result tarball and pass/fail status), download $results_url17:25
plarselopio: from that, if it's tarmac, it could use that to make a decision on the MP landing for example17:25
plarselopio: there's a lot of flexibility here17:25
elopioev: noise][: http://paste.ubuntu.com/11883742/17:26
noise][elopio: thx17:27
elopioplars: and can that request $test look like: request "bzr branch lp:snappy && ./run-checks"?17:28
plarselopio: for now, I don't think so.  It's going to need some wrapper to help it find the device, ensure the host environment doesn't get trashed, etc17:29
plarselopio: in the beginning, I have good support for adt-run on some branch (I was using the old selftests as a prototype actually!)17:29
plarselopio: and I was planning to add plainbox to that soon, so it could see some sort of test_type or something, and figure out which thing to call17:30
plarselopio: I'm sure we can support a special one for you, it's just too bad that it can't just be adt-run directly on the branch17:30
plarselopio: now if it's a snap that's already in the image, then I would bet it could work that way17:31
elopioif we can't specify the branch we want to test, then it's useful, yes, but we will get results too late.17:31
elopioplars: it can't be adt-run directly on the branch to run all the tests we want, at the moment we want to run them.17:31
elopiobut it's possible for a subset of the tests, sure.17:31
elopioagain, just give me the specs that the test needs to meet. And we will make it happen.17:32
plarselopio: I think specifying the branch would be just fine, it can be part of that test payload17:33
plarselopio: in fact, I was counting on it :)17:33
elopioplars: ok, but then how are you planning to build the branch?17:34
elopioyou can't just bzr-bd, because you will end up with a .deb that you can't install on the snappy image.17:34
plarselopio: as I said, I can treat this as a 3rd "type" of test, and it would need to set up GOPATH, go get $something, and run it17:35
plarselopio: go run _integration-tests/main.go --ip $THIS_DEVICE_IP --arch arm17:35
elopioplars: ok, that's fine. I just started by saying that this "test from snappy build from a branch" is our main goal, it's what gives us more useful information.17:36
elopioa "test from snappy already published in an image" is useful, but not that much as the results will arrive a day late.17:36
plarselopio: incidentally, where can I find the output dir after running that?17:37
kyrofaseb128, I've got the .deb installed, but I'm not sure how to launch it. I can't seem to be able to drag up from the launcher17:37
plarselopio: well you have to build the image somehow? can't you pull the branch and build the image from that, then give me the url for it?17:37
elopioplars: not yet. Currently we depend on launchpad for building the image.17:38
plarselopio: and ./run_checks does that somehow?17:38
elopioogra_ will work on rootstock to give us a quick way to build it locally, and beuno's team will at some point work on giving us images built on-the-fly.17:39
plarselopio: I'm assuming *something* can get the image you really want to check17:39
elopioplars: no, the trick run-checks does is that it puts the build snappy binary in the PATH, so instead of running the installed one, it runs the one from the branch.17:39
plarspublished, unpublished, or otherwise17:39
elopiothat's also a temporary workaround that should be adjusted once more testability features start landing.17:40
elopioplars: the restuls are in /tmp/snappy-tests17:40
elopio/tmp/snappy-test17:40
kyrofakgunn, have you gotten up and running with a recent Ubuntu Personal image?17:40
plarselopio: cool, found it. I got a bunch of failures, but to be fair this was an old image I was running it on. I'd like to do a newer one and try again at some point17:41
elopioplars: yes, and we haven't landed the branch that makes all the tests pass in bbb.17:42
elopio...because we still have to make that branch :)17:42
plarselopio: ah, cool. Please let me know when that branch lands, that one will be interesting to watch for :)17:42
elopiocurrently it passes 100% only on kvm, 90% on canonistack.17:42
plarselopio: sure, understandable17:42
elopiobbb, I'm not sure now. I'll get back to it tomorrow.17:43
plarsa lot of stuff does pass too btw17:43
plarsso hopefully it's not *too* far off17:43
elopioplars: many tests are quite simple. The problem is with the failover ones.17:44
plarsoh.. yeah17:44
elopiothere are some real bugs, and there are some things that work differently on the board.17:44
elopiobut yeah, we are close.17:44
elopioearly next week, tops.17:44
* rsalveti reading the huge backlog17:56
rsalvetielopio: yeah, the way I see the main difference to when we're testing the landings with image testing is that for the first case we'd be generating the image by hand17:58
rsalvetiand giving that to CI17:58
rsalvetiplars: so where is the real lab going to be, in taiwan?17:59
plarsrsalveti: yes18:02
rsalvetiplars: so we need a real amd64 box in order to do the same tests but for kvm18:03
rsalvetisince we can't do nested kvm easily18:03
rsalvetiI was trying to get a machine so we could drive such testing, but that might still take a bit of time18:03
rsalvetiplars: so wonder if we could just have a real box in there that could run such kvm testing18:04
rsalvetiso we can follow the same testing path/logic for both kvm and bbb18:04
plarsrsalveti: hmm, I'll have to talk to my manager about that. It's not something we were planning for right now.18:04
rsalvetiand then drive the jobs by a custom jenkins or something along that line18:04
plarsrsalveti: I wonder though, could you use a cloud instance instead of hardware+kvm?18:04
rsalvetiplars: problem is nested kvm18:04
plarsrsalveti: right, I don't mean run kvm on the instance, I mean the instance running snappy itself18:05
rsalvetiso the host would need to be bare metal18:05
rsalvetithat's kind of what elopio and federico are doing, but wonder if it will be fast enough18:06
rsalvetielopio: how are you planning on feeding the images on that case?18:06
elopiorsalveti: for our cloud testing so far, we are just taking the latest image in canonistack.18:07
elopioputting on top of that the built snappy from the branch and updating the PATH.18:08
rsalvetiright, to test our own images we'd need to have a way to feed images18:08
plarselopio: the ci team had code to build an image with ubuntu-device-flash, convert it, and upload to glance18:08
rsalvetiis that something we can do?18:08
plarsand it even ran snappy selftests on it iirc :)18:08
elopioplars: /me wants!18:08
plarsbut just the old one18:08
plarselopio: hang on, there's even a microservice for it18:08
rsalvetiplars: but on canonistack?18:09
beunoplars, how about maas + hardware in the lab?18:10
beunoto provision images for x8618:10
beunoI'm sure we can either find the hardware or get some18:10
plarsbeuno: we *may* have something like this for our own sanity, but very likely not for test hardware directly18:10
* beuno nods18:10
* beuno lets plars figure out how to make computers dance18:11
* elopio C< lunch.18:16
mterryMy snappy-rolling install still has python3.  I thought we dropped that?18:29
mterryah18:29
mterryI'm not really rolling18:29
mterry15.04/edge18:29
kgunnkyrofa: i did last week, but haven't done much with it since18:31
kgunnwhat's up?18:31
sergiusensmterry: no, rolling still has python318:37
mterrysergiusens, guh18:37
sergiusensmterry: we need to drop system-image first and get a new cloud-init18:37
rsalvetiyeah18:41
=== davmor2_ is now known as davmor2
rsalvetihopefully we can drop system-image soon18:41
rsalvetiat least18:41
kyrofakgunn, I can't swipe up on the app scope to get access to other scopes, so I can't test mine out, haha18:41
kyrofakgunn, can you?18:42
kyrofakgunn, swipe up, I mean18:42
kgunnlemme check kyrofa18:42
kgunngimme a sec to build a new img18:43
kyrofakgunn, thank you :)18:44
kyrofakgunn, mine is a bit old at this point too... maybe I should do that18:44
kgunnkyrofa: you still using this incantation ?18:45
kgunnu-d-f personal rolling --channel edge --output wily.img18:45
* kgunn checks cause you never know what changes in a week :)18:45
kyrofakgunn, yessir!18:46
mterrybarry, got a sec for python import questions?  If I installed python2 into /usr/local as well as a python module into /usr/local (but otherwise the same way ubuntu does), would python2 know how to find that module without any env vars?19:21
barrymterry: depends on where in /usr/local :)19:22
mterrybarry, I'm testing a snap with python2 installed19:22
mterrybarry, inside the snap. I also put a module in there19:22
barrymterry: you can always tell for sure by running `python -c "import sys; print(sys.path)"19:22
mterrybarry, and somehow python2 is finding the module, I wouldn't have expected that19:22
mterrygood point, /me tries that19:23
barrymterry: this is a python built for ubuntu right?  (it will have different default paths than a built-from-upstream-source version)19:23
mterrybarry, this is ubuntu python, yeah19:23
mterry(amd64)ubuntu@localhost:~$ spongeshaker.sha3sum /usr/bin/env['/apps/spongeshaker.sideload/0/bin', '/apps/spongeshaker.sideload/0', '/apps/spongeshaker.sideload/0/usr/lib/python2.7', '/apps/spongeshaker.sideload/0/usr/lib/python2.7/plat-x86_64-linux-gnu', '/apps/spongeshaker.sideload/0/usr/lib/python2.7/lib-tk', '/apps/spongeshaker.sideload/0/usr/lib/python2.7/lib-old', '/apps/spongeshaker.sideload/0/usr/lib/python2.7/lib-dynload', '/apps/spongeshaker19:23
mterry.sideload/0/usr/lib/python2.7/dist-packages']19:23
mterrybarry, ^ looks like it finds it alright, along with a bunch of other weird stuff19:24
barrymterry: weird (well, the spongeshaker prefixes).  i haven't yet had time to follow your work here too closely19:25
mterrybarry, ignore the silly spongeshaker stuff19:25
mterrybarry, that's just the name of the snap I'm testing with19:26
barrymterry: cool, the lib-tk, lib-old, lib-dynload are expected19:26
barryas is the plat triplet19:26
mterrybarry, and the dist-packages presumably19:26
mterrybarry, so our python2 looks at where it's being run from, and assumes the prefix from that?19:26
barrymterry: yep, that's the debian-ism19:26
mterrybarry, that's pleasantly progressive of it19:26
mterrybarry, considering we know we're always running from /usr19:26
mterrybarry, well, usually  ;)19:27
barrymterry: python generally looks for some landmarks and crafts its default sys.path from those19:27
barryi don't remember the landmark, it's changed a few times.  could be os.py these days19:27
beunojdstrand, o/   I want to make my automated blinds thing a proper snap I can submit to the store. Is the hardware permissions story in 15.04 at all, or should I target (and install) rolling instead?19:35
beunomy code is all sudo this and sudo that atm  :)19:35
kgunnkyrofa: ok, had a little 'puter trouble, back now and got my unity8 personal up...what exactly were you experiencing trouble with ?19:36
kyrofaWell, on the phone, I can drag up from the bottom to get access to all installed scopes. That default window in Ubuntu Personal looks the same, but I'm unable to drag that little arrow up from the bottom to get access to other scopes19:37
kyrofakgunn, ^^19:37
kgunnah19:37
kgunnone sec19:37
kgunnyeah...having the same prob19:38
kgunni suspect some issue with pointer events in window mode19:38
kyrofakgunn, hmm... tough to test scopes out that way. I don't know another way to launch them. Any ideas?19:39
kgunnmzanetti: ^ any ideas ? is there a cli maybe to reveal the manage dash ?19:40
kgunnseems on personal image (windowed mode unity8 in a vm) that bottom edge of dash is either impossible or close to impossible19:41
kyrofacihelp: I have a package that's running in jenkins and autolanding. I need the configuration changed so that I can land it in the archives. What do I do?19:54
kyrofaOops... wrong room19:54
kyrofaAhem...19:54
mzanettikgunn, kyrofa: try launching it with "-mousetouch"20:06
mzanettithat should convert all mouse input to touch events and allow activating those touch-only drag areas20:06
kyrofakgunn, do we have a terminal we can do that ^^ in?20:07
kyrofamzanetti, , not sure how mir displays work, but I assume I can't do that on SSH and expect it to work20:08
mzanettikyrofa, how do you launch the dash? is it autostarted?20:08
kyrofamzanetti, yeah, autostarted20:09
mzanettithen I think you can edit /usr/share/upstart/sessions/unity8-dash.qml20:09
mzanettiand add some args there somewhere20:09
mzanettiuse "restart unity8-dash"20:09
kgunnmmm...20:10
kgunnbut can we flip to vt1 ?20:10
kgunnthink there's a bug maybe20:10
kgunnah...it worked20:11
kyrofakgunn, I can get there20:11
kgunnnice20:11
kyrofakgunn, ah, good20:11
kgunn:)20:11
mzanettito use "restart unity8-dash" you need to have session variables exported tho...20:11
kyrofamzanetti, how about a reboot?20:12
mzanettiyeah, that would work too :)20:12
mzanettihere's a terminal for unity8... http://notyetthere.org/data/com.ubuntu.terminal_0.7.latest_amd64_rev015.click20:12
mzanettiI found that quite useful20:12
kyrofamzanetti, awesome, thank you!20:13
mzanettinp20:13
tedgkyrofa, I just used a session upstart job. Copied the /usr/share/upstart/sessions one to ~/.config/upstart and then added the -mouse touch parameter.20:13
kyrofatedg, good call, thanks20:21
kyrofatedg, just add the -mousetouch at the end of the exec line?20:24
kyrofaIt's not working for me. Perhaps I'm putting that param in the wrong place20:26
tedgkyrofa, I did it for unity8 not the dash, not sure if they work differently.20:34
jdstrandbeuno: everything that is in rolling is in 15.04 afaik. so hw-assign works and so does assign via the oem snap20:37
jdstrandbeuno: you might talk to snappy core guys for updates. I do know that it isn't documented well and there is a bug on that20:38
kirklanddoes icon.png have to be a specific dimension?21:04
tedgI think that icons can only be SVGs21:08
evelopio: for what it's worth (after that whole discussion earlier), you don't have to work strictly in images. We have a potential use case in testing pre-snappy phones. Because you never pass along an actual image but instead a reference to an image (a URL or whatever text you want), this can be ubuntu-device-flash --do-stuff or whatever.21:26
evAlso, the core of this system is product based testing with clear separation between three actors: test authors, labs, and promotion. CI purposefully knows nothing about the tests. They can be written in DEP8 or Haskell for all we care. However, the tests should not reach beyond their role: they shouldn't manage the lifecycle of the device under test, as21:26
evthat's a property of the lab. They need to be able to ensure that you're not phoning them up complaining about BBBs being wedged.21:26
evWe're going to follow this up with happy shiny documentation to explain it more eloquently than I can over IRC21:27
=== _fjb is now known as bjf
elopiomy quassel is angry at me again.22:27
elopioev: sounds good. The test experiment we are doing on writing the test in go is awesome because it's self contained, it's just a binary you run and it will have all the dependencies.22:29
elopiofor that part, we only need to know what is the api and the format expected from us, and we'll compy.22:29
elopiothere's one detail that's hard, and we don't yet know how to solve, and that's generating an image without waiting for launchpad to do it for us.22:29
elopiobut even that it's a problem that we can solve as we go. Worst case scenario, we keep our hack with the PATH which is OK for now.22:30
elopiobut I'm sure the solution will be a lot better than the worst case scenario.22:31
evelopio: image composition is something we're being mindful of, but exists outside of the CI product: https://docs.google.com/presentation/d/1Ds08fWyDkd-oddA7LMuj0iO6iHa2OyqsIWHGg5_4mv8/edit#slide=id.gb43807a7b_0_497 and https://docs.google.com/document/d/1aIKRneZWge6U6BuuchGE7MWBYE67dog900zWqJU0zi8/edit (grep for img_composer)22:35
evelopio: might I recommend IRCCloud ;)22:36
evit almost makes IRC tolerable22:36
elopioev: I love quassel, despite all its tantrums. Generally it works on my desktop when it fails on my laptop, like today :)22:55
elopioev: we are close to finish our first goal for the test suite. Then, focus will be on running the tests often, so I'll soon send a calendar appointment with you and plars to re-sync.22:56
elopiofor now, I think we are good enough. If you or somebody from your team could run the snappy _integration-test locally to get a sense of what we are doing, that would be awesome.22:57
evelopio: that's more for you to do directly. This is self-service CI. We purposefully don't have knowledge of the tests, how they're ultimately run, or how to interpret the results.23:33
evThe team is working on documenting how to submit results, how to (work with plars) to configure the agent's provisioner, and where to poll for results.23:33
evI'll reach out to you once those docs are in place to review our progress towards the story of validating the core snappy product23:33
ev(that's slides 2-4 in https://docs.google.com/presentation/d/1Ds08fWyDkd-oddA7LMuj0iO6iHa2OyqsIWHGg5_4mv8/edit#slide=id.gb43807a7b_0_366 )23:39
evs,how to submit results,how to submit new test opportunities,23:42
evthis, incidentally, means you have more freedom to do what you need, but at present it requires that you drive the process (until we hook up to the firehose of the store)23:44
beuno*cough* public channel *cough*23:49

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!