davecheneyping, anyone OCR today ? http://reviews.vapour.ws/r/4040/00:32
davecheneythumper: i'm currently seeing 1 in 3 landing attempts fail because mongo crashes with the usual bad mac error00:34
anastasiamacdavecheney: OCRs today according to Juju Team calendar r Andrew and Eric00:35
davecheneycmars: thanks00:39
thumperdavecheney: I'm hoping that RSN we will just have mongo 3 where they have fixed that00:50
mupBug #1552469 opened: Credentials are not utilised when creating a hosted model <docteam> <juju-core:New> <https://launchpad.net/bugs/1552469>00:53
davecheneythumper: menn0 https://github.com/juju/juju/pull/461101:06
davecheneyas we talked about yesterday01:06
davecheneythis is part 1 of 201:06
davecheneyto make sure that the apiserver knows all the ways we say that we're in upgrade state01:07
davecheneyand can convert all of them to the right ErrorCode01:07
menn0davecheney: your PR makes me cringe01:19
menn0davecheney: can we not have a well defined "upgrade in progress" error in state01:19
menn0davecheney: which the apiserver knows how to convert to it's "upgrade in progress" error?01:20
menn0davecheney: the reason for state returning "upgrade in progress" are quite different from the error returned by the apiserver.01:23
menn0davecheney: the upgrade in progress error from state is about an attempt to start an upgrade failing because an upgrade is already in progress01:24
menn0davecheney: maybe it should just be a different error?01:25
davecheneymenn0: i agree01:32
davecheneyit's a disaster01:32
davecheneyto be clear, I'm not going to pass state.errUpgradeInProgreess up01:32
davecheneybut there are a bunch of "helper" (using that term very loosely) methods in apiserver/common/errors.go that translate one to the other01:32
perrito666Uh big +1 to that01:36
=== bogdanteleaga_ is now known as bogdanteleaga
=== natefinch_ is now known as natefinch
=== _stowa_ is now known as _stowa
=== bcsaller_ is now known as bcsaller
thumperwallyworld: hey03:27
=== meetingology` is now known as meetingology
=== mup_ is now known as mup
thumperwallyworld: got 5 min for a quick chat?03:27
=== marlinc_ is now known as marlinc
mupBug #1552523 opened: Unable to deploy a wily or precise service with MAAS <maas> <network> <juju-core:Triaged> <juju-core 1.25:Triaged> <https://launchpad.net/bugs/1552523>03:41
=== bradm_ is now known as bradm
wallyworldanastasiamac: you'll hate me, but i'd love a review when you get a moment  http://reviews.vapour.ws/r/4052/04:32
anastasiamacwallyworld: i won't hate u fo asking so nicely :D04:33
wallyworldwait till you see the code :-)04:33
wallyworldanastasiamac: sorry :-( another one if you have time http://reviews.vapour.ws/r/4053/07:03
anastasiamacwallyworld: sure, m hald way thru the 1st... then will look at this one \o/07:03
wallyworldyay, ty07:03
mupBug #1552589 opened: TestProvisionerObservesMachineJobs fails intermittently <intermittent-failure> <juju-core:Triaged by jameinel> <https://launchpad.net/bugs/1552589>07:54
fwereadeanyone free to talk me through the space-discovery login synchronisation a bit?08:39
fwereadefrobware, dooferlad_?08:40
fwereadeactually brb but ping me if you know it08:41
jamquick review: https://github.com/juju/juju/pull/461408:50
fwereadejam, ship it -- the notification is yucky in the first place but it's not worth a rewrite to fix08:52
fwereadefrobware, dooferlad_ : in particular, ISTM that: it runs per-model but limits logins for everything; but works around that by only limiting logins until the first one that runs reports completion; but subverts *that* by always marking completion even when there's an error09:03
fwereadefrobware, dooferlad_ : any insights?09:03
fwereadefrobware, dooferlad_ : in particular my understanding is that this *is* only critical for the controller model (especially given that it's ineffective for later ones): can you think of a reason for me not to move it to the per-controller bit rather than the per-model bit?09:08
fwereadefrobware, dooferlad_ : ah, I'll ask voidspace09:09
voidspacefwereade: ask me what... :-)09:12
fwereadevoidspace, huh, thought I'd PMed you to avoid spam09:13
voidspaceah, you have I just didn't notice09:13
=== dooferlad_ is now known as dooferlad
dooferladvoidspace, fwereade, jam: standup?10:01
=== Odd_Blok1 is now known as Odd_Bloke
voidspacedooferlad: frobware: just finishing a chat with fwereade - be right there10:02
frobwarevoidspace: dooferlad: http://reviews.vapour.ws/r/4055/10:11
perrito666morning all11:03
voidspacefrobware: you still need that review?12:06
frobwarevoidspace: yes please12:06
voidspacefrobware: can you explain to me the change in provider/maas/environ.go12:10
voidspacefrobware: it's relatively esoteric12:10
frobwarevoidspace: when the container starts it has no gateway, so it can start but can't do anything real.12:11
voidspacefrobware: doesn't setting juju_bridge_all_interfaces=0 make the code immediately following unroutable12:11
voidspacefrobware: yeah, that's the bug - I mean what do the changes do specifically?12:12
frobwarevoidspace: we know the bridge-device the container is connected to (the param in the call) so we find the IP address for that specific device and make it the gateway12:12
voidspace(I may have interrupted - sorry if so)12:12
voidspacewhat does this do? uju_networking_preferred_python_binary %[1]q --bridge-prefix=%[2]q --one-time-backup --activate %[4]q12:12
voidspacejuju_ipv4_interface_to_bridge=$(ip -4 route list exact default | head -n1 | cut -d' ' -f5)12:13
frobwarevoidspace: ah, sorry. I was talking about the wrong file. :)12:13
frobwarevoidspace: first bit, bridges all interfaces with the specified bridge prefix, in our case 'br-'12:13
voidspacefrobware: line 1046 in provider/maas/environ.go12:14
voidspacefrobware: won't juju_bridge_all_interfaces always be 0?12:14
frobwarevoidspace: yes, I did that deliberately because if we merge this back from master into maas-spaces2 we should make that 1 in our branch. So, rather than continuously futzing with the changes we can choose the behaviour we want by specifiying 0 or 1.12:15
voidspacefrobware: ah... cool12:15
frobwarevoidspace: the 0 behaviour is what we want on 1.25 too12:16
frobwarevoidspace: so the if .. else ... serves as an example of how to drive the script for bridging all interfaces or just a specific interface.12:16
frobwarevoidspace: I can add a comment for this behaviour.12:18
voidspacefrobware: yeah, that would be cool12:18
voidspacefrobware: not possible to test?12:21
frobwarevoidspace: in terms of bridging all or a specific one?12:25
voidspacefrobware: the change has no test12:25
frobwarevoidspace: there are existing tests cases that exercise the all or one behaviour.12:25
frobwarevoidspace: this is a runtime thing... which I think is difficult to test in any meaningful way. Where & how would we bring interfaes up/down?12:26
voidspacefrobware: well, the finding of the ipv4 address should be testable with some mocking (the discoveryIPv4InterfaceAddress path)12:26
frobwarevoidspace: ah, that one.12:27
frobwarevoidspace: true.12:27
frobwarevoidspace: it's a tradeoff though. this would disappear once we merge maas-spaces2.12:27
voidspacefrobware: you want to land it untested?12:28
frobwarevoidspace: it's been live tested12:28
voidspacefrobware: heh, ok12:28
frobwarevoidspace: let me think about it a bit...12:28
voidspacefrobware: it will live on in 1.2512:29
frobwarevoidspace: nope, master only.12:29
voidspaceah, ok12:29
frobwarevoidspace: and, again, only for as long as we don't merge maas-spaces212:29
voidspacefrobware: you have my LGTM with a comment about the missing test12:29
frobwarevoidspace: ironically, the unit tests did not highlight that there would be a live failure.12:29
frobwarevoidspace: https://bugs.launchpad.net/juju-core/+bug/1549545/comments/812:30
mupBug #1549545: Bundle deploys fail at lxc-start when bridge br-eth1 is created <ci> <deploy> <maas-provider> <test-failure> <juju-core:In Progress by frobware> <https://launchpad.net/bugs/1549545>12:30
voidspaceyeah, I saw12:32
voidspacebasically impossible to unit test all possible networking scenarios12:32
voidspacefrobware: I found out why my tests were failing in a weird way12:34
voidspacefrobware: the maas provider caches the result of checking if spaces are supported on creation12:34
voidspacefrobware: so setting the capabilities after creating the provider has no effect - you have to do it first12:34
voidspacedown to 3 failures now12:35
=== lazypower_ is now known as lazyPower
fwereadevoidspace, hmm, how does discoverspaces work in an HA environment?14:50
fwereadevoidspace, it's in the singular runner, so... will logins ever be unblocked for non-master controllers?14:51
=== rcj` is now known as rcj
fwereadevoidspace, ah, ok, it will, but only because it's not blocked until we start the worker... which surely implies that logging in after that point is a matter of luck?14:57
fwereadevoidspace, I'm starting to think it's impossible without a persistent flag..? and I was really hoping not to have to change the apiserver. ah well15:11
=== icey_ is now known as icey
voidspacefwereade: :-(15:17
voidspaceback shortly, picking up the daughter from school15:18
voidspacefwereade: (not a matter of luck as you bootstrap one machine - which does discovery and is blocked - and then you go HA.)15:21
fwereadevoidspace, what ensures that the client won't connect after the apiserver starts but before the discoverspaces worker starts?15:34
frobwaredooferlad: ping15:45
dooferladfrobware: pong15:46
frobwaredooferlad: can you junp into sapphire HO?15:46
dooferladfrobware: sure15:46
voidspacefwereade: so, nothing stops login before the discoverspaces worker has startedc16:19
voidspacefwereade: the intention of blocking logins was that bootstrap be synchronous so that spaces are available immediately after bootstrap completes16:19
voidspacefwereade: non-master HA controllers never unblocking sounds scary16:21
voidspacefwereade: although it shouldn't happen - as it's in a singular runner the worker shouldn't be started on non-master16:22
voidspacefwereade: and login is only blocked if the worker is started (the channel is set the first time the worker is started)16:22
fwereadevoidspace, right; so, how do we prevent the bootstrapping client from logging in before the discoverspaces worker is started?16:25
voidspacefwereade: hmm... that might explain a bug that frobware has seen that I haven't (bootstrap completing and *then* login being blocked)16:26
voidspacefwereade: I've never seen it, but it's obviously timing related16:26
fwereadevoidspace, yeah, there's nothing stopping that afaict16:26
voidspacethere isn't, setting the channel before the worker is started would be problematic for non-master HA16:26
voidspacefwereade: are you sure you don't want me to own fixing this?16:29
fwereadevoidspace, yeah; and I'm not entirely willing to be certain that we can't have problems if we manage to bring up extra controllers without waiting16:29
voidspacewe need a different way of doing this16:30
fwereadevoidspace, still think it's my problem really -- I'm trying to get my dependency-engine update of startEnvWorkers in16:30
voidspacefwereade: maybe remove the blocking altogether until menno's work is done and then re-introduce16:30
voidspacefwereade: that's only nearly as bad as just doing it for the controller and not per-model16:31
fwereadevoidspace, ...that's terribly tempting actually16:31
voidspacefwereade: if it has to be fixed anyway16:31
fwereadevoidspace, ok, I will try just dropping the notification for now and see where it takes me16:34
fwereadevoidspace, thanks16:34
fwereadevoidspace, I'll let you know where I end up16:34
voidspacefwereade: cool16:35
katconatefinch: hey can you join us in moonstone rq?17:01
mupBug #1552804 opened: worker/metrics: intermittent data race <ci> <intermittent-failure> <juju-core:Triaged> <https://launchpad.net/bugs/1552804>17:01
frobwarecherylj: is bootstrapping xenial a gating issue for 1.25.4?17:04
cheryljfrobware: yes, I would say so.  It came up in the cross team call today17:04
cheryljfrobware: what are you finding?17:04
frobwarecherylj: that seems odd to me as you have to use daily images (i think) and there's a lot of shifting sand if you do that.17:05
frobwarecherylj: I've possibly spent a large part of the day looking at a non problem but last comment in bug #1550306 shows a correlation of xenial cloud-init failing and bootstrap failing17:06
mupBug #1550306: 1.25.3 can't bootstrap xenial environments <landscape> <juju-core:Fix Committed by frobware> <juju-core 1.25:In Progress by frobware> <https://launchpad.net/bugs/1550306>17:06
cheryljfrobware: I'm still trying to get xenial images on my vmaas to test.  The controller ran out of disk space17:07
frobwarecherylj: the issues I saw with /e/n/i yesterday have definitely gone with today's images as /e/n/i is rendered differently. bad timing perhaps. or the curse of shifting sand.17:07
frobwarecherylj: I'm still surprised we would consider 1.25.4 x a-daily-build-of-xenial something that is gating.17:08
frobwarecherylj: as I've seen in the last 24 hours, daily images change...17:08
cheryljfrobware: If we can confirm that it is a problem with xenial, I think we could release and point to whatever bug we've opened against xenial cloud images17:09
bogdanteleagahow do I get rid of all the params redacted thingie in logs?17:09
cheryljbogdanteleaga: to see the redacted params?17:09
cheryljbogdanteleaga: set logging level to trace17:09
cheryljit will show you the contents17:10
frobwarecherylj: I haven't gone beyond bootstrapping today, but with the bridge script fix for xenial (1550306) I can still bootstrap with precise, trusty and wily.17:10
cheryljfrobware: can you deploy?17:10
frobwarecherylj: kinda run out of time now... :(17:10
bogdanteleagacherylj, thanks that did it :)17:11
natefinchrick_h__: I assume the charmstore should have the same contract about push-resource matching the extension?17:13
katconatefinch: ping?17:13
natefinchkatco: yo17:13
katconatefinch: must have missed my previous ping ;p17:13
katconatefinch: join us in moonstone?17:13
natefinchkatco: oh, crap, sorry17:13
katconatefinch: lol nw17:13
natefinchkatco: new IRC client is totally screwing me up17:13
rick_h__natefinch: yes17:25
mupBug #1552815 opened: ability to apply profile/config modifications to lxd containers <juju-core:New> <https://launchpad.net/bugs/1552815>17:31
mattywkatco, ping?17:45
katcomattyw: pong17:48
mattywkatco, hey hey, pinging you as I thought you might have good intuition on this: when I come to destroy controllers I normally forget the name I've given them. I reckon juju status should tell you the name of the controller (and also maybe the model) it's displaying the status of. What do you think?17:50
katcomattyw: hm17:50
katcomattyw: that seems reasonable to me... maybe like a header at the beginning of status?17:50
katcomattyw: especially in a world where you might be flipping between models very often17:51
mattywkatco, yeah, what more or less exactly what I was thinking17:51
katcomattyw: the name of the controller may not carry it's weight since there will likely only ever be 1? what do you think?17:51
mattywkatco, I don't know, I think it would be useful to display it, even if it's only one, since the user has named it17:53
katcomattyw: i mean i'd be fine with it. it's not like it would take up a lot of space17:53
mattywkatco, I'll do it, and see how it looks17:53
katcomattyw: cool17:53
mattywkatco, wanted to get some initial feedback to check it wasn't a totally insane idea17:54
mattywkatco, so thanks17:54
katcomattyw: hth17:54
natefinchericsnow: wondering if ListResources in the charmstore should be ResourceMeta, to match Meta about charms18:38
ericsnownatefinch: we need all the info about the resources, not just the meta portion18:38
natefinchericsnow: it's all meta, except the bytes18:39
ericsnownatefinch: "meta" means the resource info from the charm metadata18:39
ericsnownatefinch: a la resource.Resource vs. resource.Meta18:39
natefinchericsnow: in the charm package, sure.  It could have a different meaning in the charmstore...18:41
natefinchericsnow: we are calling id/meta/resources after all18:41
ericsnownatefinch: naming conflicts aside, ListResources() needs to return the full resource.Resource from the charm store18:42
natefinchericsnow: resource.Resource is all the metadata about the resource :)  (metadata -> everything except the data-data, i.e. the bytes)18:42
ericsnownatefinch: okay18:43
natefinchericsnow: anyway, I was just trying to keep with the conventions already there.  It's fine by me if we use ListResources18:44
ericsnownatefinch: oh, this is not a match to charm Meta18:44
ericsnownatefinch: it is the resource "meta" plus the other things that resource.Resource adds18:45
natefinchericsnow: I'm just talking about the function name to wrap the call to id/meta/resources18:45
ericsnownatefinch: so more like the charm store's "entity"18:45
natefinchericsnow: as an aside, I think the charm/resource.Meta name was a mistake, since it's all metadata... that's possible more accurately called the resource definition (as defined in the metadata.yaml)...18:46
ericsnownatefinch: there isn't an equivalent ListCharms on the client; I'd say let's stick with ListResources()18:46
natefinchericsnow: that's fine18:46
ericsnownatefinch: hmm, I believe I originally called it Definition and someone pushed for Meta instead18:47
ericsnownatefinch: (maybe remembering something else)18:47
natefinchericsnow: I remember something about definition too... not sure if that was this or payloads or what18:47
jcastrojam: you're currently working on lxd/juju right?19:58
alexisbjcastro, he is but is out for the day20:01
jcastrook so maybe you can help20:01
jcastrothe new lxd landed in ubuntu, so now I need to update the instructions: https://jujucharms.com/docs/master/config-LXD20:02
jcastrosince lxd-images is being deprecated20:02
jcastrothe nice bit is that lxd now includes the remotes for the images built in, so doing like `lxc launch ubuntu:14.04 my-test-container` Just works ootb.20:02
jcastromy question is, will we need this step at all in our instructions or if the lxd provider will just snag the image and pipe the output to the user20:03
katcojcastro: hey20:04
katcojcastro: so the provider could certainly do that; however, one nice side-effect is that the provider will use any image named ubuntu-trusty20:04
katcojcastro: so it's kind of nice that you can pre-build an image and the provider will just use it20:05
katcojcastro: or use alternative images (i.e. not trusty)20:05
jcastrook so I should just change the import command to making an alias20:05
jcastrooh wait20:05
jcastroI just thought about what you said20:05
jcastroso I can premake an image20:05
katcojcastro: yep :)20:05
jcastroand as long as it's aliased as ubuntu-trusty that just works?20:06
katcojcastro: i expect we'll refine this if jam and tych0 haven't begun doing so already20:06
katcojcastro: you may have to twiddle with where tools are pulled from20:06
pmatulisjcastro: kindly open an informative docs bug and i'll jump on it20:06
jcastrowait a minute20:06
jcastrodid you guys just give us image based workflows?20:06
katcojcastro: but what i've done is bootstrapped a xenial host (i think), snapshotted it20:06
natefinchjcastro: for local only, sure20:06
katcojcastro: and then just alias that, and standup time is super quick20:06
katcojcastro: shhhhhh20:07
jcastropmatulis: I think I can submit a PR, quick fix once I sort the command20:07
katcojcastro: don't use the i word!20:07
jcastromarcoceppi: ^^ look what just happened!20:07
katcono! nothing to see here. ignore the images behind the alias20:07
jcastroright, I can see how that would be bad and unsupported20:07
katcojcastro: more like off-brand. i'm sure solid workflows could be built off it20:08
marcoceppijcastro: oh, yeah, I knew about that ;)20:08
jcastrohmm ok, so really the only thing we need to update is figure out how to make the ubuntu:14.04 remote image aliased to ubuntu-trusty on my local machine20:10
katcojcastro: yeah20:11
alexisbso jcastro I was chatting with jam about this this morning20:15
alexisbwe will be making some updates to the user experience on this20:15
alexisband I would love your input20:15
alexisbI might schedule some time to chat20:16
jcastroyeah, I kind of feel like, since LXD has remote images available already20:16
alexisbpmatulis, the workflow for using lxd provider is in the release notes20:16
jcastroand I do juju bootstrap, just spawn it, one less step for us20:16
alexisbjcastro, yep20:16
alexisbjcastro, we agree20:16
alexisbbut I dont want to loose the ability to tag an image and use it20:16
katcoalexisb: keep in mind mark's requirement that we be able to specify the image to use20:16
katcoalexisb: yep20:16
pmatulisalexisb: jcastro is all over it. i'm on standby20:17
alexisbkatco, yep20:17
katcoalexisb: (goes into muppet mode) yep yep yep yep20:17
katcouhhuh uhhhuh20:17
=== thumper is now known as thumper-afk
mupBug #1552523 changed: Unable to deploy a wily or precise service with MAAS <maas> <network> <juju-core:Invalid> <juju-core 1.25:Invalid> <https://launchpad.net/bugs/1552523>21:23
katcoericsnow: standup time!21:33
=== thumper-afk is now known as thumper
marcoceppihelp! juju init doesn't work in beta122:54
rick_h__marcoceppi: there's nothing to init22:59
marcoceppirick_h__: dude22:59
marcoceppiread the help output22:59
marcoceppinow I hav to create the XDG_DATA path and stuff23:00
rick_h__marcoceppi: it should be there with install for the cloud list23:00
rick_h__marcoceppi: and the add-credential command is coming to esit that file23:00
mupBug #1456717 opened: TestUpgradeStepsStateServer fails <ci> <test-failure> <juju-core:Incomplete> <juju-core 1.25:Triaged> <https://launchpad.net/bugs/1456717>23:17
mupBug #1552948 opened: metricsmanager DB collection shouldn't be "global" <juju-core:New> <https://launchpad.net/bugs/1552948>23:17
marcoceppirick_h__: I need help, azure 2.0-beta123:18
marcoceppidemo in 45 mins23:18
marcoceppi it's asking for an auth-type23:18
cmarsmarcoceppi, LP:#154489023:19
mupBug #1544890: "ERROR the name of the model must be specified" when 'juju init' required <bootstrap> <juju-release-support> <juju-core:Triaged> <https://launchpad.net/bugs/1544890>23:19
cmarsi opened this before i realized juju init was going away, but still23:20
rick_h__marcoceppi: heading toncomputer onw sec23:24
marcoceppirick_h__: I got it sorted23:24
marcoceppiit's bootstrapping23:24
rick_h__marcoceppi: k23:24
marcoceppiwas just getting a little tight, since it takes 20 mins to deploy and I couldn't get 2.0 to bootstrap23:25
marcoceppi<3 the error messages, they were helpful23:25
rick_h__marcoceppi: k, email sent with all the details I sent to another perosn as well23:25
rick_h__marcoceppi: has sample file in it and such23:25
rick_h__marcoceppi: in case it's giving you any grief23:25
marcoceppirick_h__: I used beta1 release notes to find what I needed to copy from environments.yaml23:26
rick_h__marcoceppi: k23:26
marcoceppiI already had ARM setup in alpha3 when it landed, thankfully23:26
marcoceppitried to use 1.25 though, and realized my mistake23:26
rick_h__ah cool23:26
marcoceppiso have to plow through with 2.0 for the demo23:26
rick_h__you have the alpha gui?23:27
rick_h__marcoceppi: ^ is the beta to work on top of juju 2.023:27
rick_h__marcoceppi: some bugs, but supposed to work23:27
marcoceppirick_h__: ack, no more ~yellow?23:27
marcoceppiI just need it to show the model, everything else is cabs cabs cabs23:27
marcoceppithanks for the mail, looking forward to beta2!23:28
rick_h__marcoceppi: it's still in ~yellow but wanted to move to a more 'public' space if we're going ot hand out a beta widely23:28
rick_h__marcoceppi: so we'll put betas under ~juju from now on as it's more meaningful than yellow23:29
marcoceppirick_h__: cool beans23:29
cmarsi need to parse a user-facing string into an apiserver/params type in a couple of different api client packages. where is the best place to put such a ParseXYZ() function?23:32
cmarswallyworld ^^ any suggestion?23:33
alexisbwallyworld, I want you to know that marcoceppi reads release nots:23:34
alexisb<marcoceppi> rick_h__: I used beta1 release notes to find what I needed to copy from environments.yaml23:34
wallyworldcmars: one sec, just finishing standup23:34
alexisbmarcoceppi, I am sure that line just made wallyworld's day23:34
marcoceppialexisb: read the release notes? I live by them. esp for the 2.0 releases23:36
marcoceppiit's like a little gift from core every few weeks23:36
marcoceppifuck, I can't get rid of an errored unit23:41
marcoceppirick_h__: I found a fun gui bug23:48
wallyworldalexisb: marcoceppi: you did just make my day :-) we put a lot of effort into those notes23:49
wallyworldcmars: what sort of parsing?23:49
rick_h__hatch: ^23:50
rick_h__marcoceppi: what's up?23:50
marcoceppirick_h__: in the ~juju/juju-gui, if I got to remove units for a service, it just creates a new machine instead of removing the unit23:51
rick_h__marcoceppi: i think they're on that one23:51
marcoceppii just realized this whole demo is borked because cabs can't speak 2.0 api23:52
rick_h__oh no!23:52
davecheneyoh uh23:56

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