/srv/irclogs.ubuntu.com/2017/09/08/#juju-dev.txt

babbageclunkwallyworld: bugger - I think I've worked it out and it's actually a bug in the migration import (so in 2.2.3) for subordinates.02:11
babbageclunkwallyworld: just checking to see whether I can reproduce it in straight 2.2.3->2.2.3 migration02:13
babbageclunkwallyworld: yup02:31
babbageclunkthumper: ^02:42
thumperfuck02:42
babbageclunk:(02:42
* thumper sads02:43
thumperwhat don'02:43
babbageclunkSorry, I wish I'd worked it out sooner02:43
thumperwhat don't we do right?02:43
babbageclunkIt's basically the reverse of the problem you fixed in the export - needs to skip creating relation scopes when the relation unit isn't valid.02:44
thumperbugger...02:44
babbageclunkthumper: https://github.com/juju/juju/blob/2.2/state/migration_import.go#L109002:45
wallyworldaxw: i've pushed some changes to the status watcher02:45
thumperbollocks02:45
axwwallyworld: ok, looking02:45
thumperbabbageclunk: can you please create a patch against 2.202:45
babbageclunkyup yup02:45
thumperwe may roll a fast 2.2.402:45
thumperbut I'd like confirmation that it works first :)02:45
babbageclunkthumper: of course. :)02:51
* babbageclunk pops out briefly to pick up Ada 02:52
wallyworldaxw: if you need a break from vsphere, here's PR which adds firewall checking to cmr ingress. the worker business logic is all of 3 lines, but it needs some apiserver boilerplate to add the SetRelationStatus API https://github.com/juju/juju/pull/783903:34
axwwallyworld: ok, a bit later03:35
wallyworldsure, np03:35
thumperbabbageclunk: please file a bug so we can track this issue03:39
* thumper creates a 2.2.4 milestone03:39
thumperffs03:39
babbageclunkthumper: ok03:39
veebersbabbageclunk: when you have a moment could you describe the repro steps? It seems there is a gap in the functional testing that this slipped through03:43
babbageclunkveebers: typing up the steps in the bug now - I'll paste a link here in a mo03:44
veebersbabbageclunk: awesome, thanks03:45
wgrantIs this likely to be a regression relating to the subordinate relation issues that were fully fixed in 2.2.2, or is it just a migration bug?03:49
wgrantie. can I safely upgrade my smaller controllers to 2.2.3 tonight to test things out before bigger controllers get upgraded?03:50
babbageclunkwgrant: it's related to the subordinate problem in 2.2, but it only happens on migration - upgrading won't cause it.03:53
wgrantbabbageclunk: Cool, thanks.03:53
babbageclunkwgrant: if the subordinates are ok in your 2.2.2 model then they'll be ok in 2.2.3 (at least in the context of this bug).03:54
wgrantGreat.03:54
babbageclunkwgrant: sorry, my mention of upgrading earlier probably muddied the water a bit, but I'm working on 1.25 -> 2 upgrade, which is migration under the hood.03:55
wgrantbabbageclunk: Oh, I ddn't see that, I was just worried since the subordinate relation code had been historically fragile.03:55
babbageclunkwgrant: right - this is another lurking case of that same problem unfortunately.03:56
babbageclunkveebers: https://bugs.launchpad.net/juju/+bug/171579403:57
mupBug #1715794: migration: subordinate with multiple principals imports incorrectly <juju:Triaged> <https://launchpad.net/bugs/1715794>03:57
veebersbabbageclunk: sweetbix, I'll check out the repro04:00
veebersbabbageclunk: ah, nice catch. yeah the current model migration functional test doesn't do any relation removals04:04
wgrantWould a the state dump from both ends of the migration reveal this, or would the original fix exclude the problematic relationscopes from the dump?04:05
babbageclunkwgrant: do you mean dump-model? I think it wouldn't show the problematic relationscopes, because we've changed it not to look them (since they won't exist in a good model).04:08
babbageclunkwgrant: but dump-db will show them.04:08
babbageclunkoops - changed it not to look them up04:09
babbageclunkwallyworld: PR for the fix? https://github.com/juju/juju/pull/784005:18
wallyworldok05:18
babbageclunkthanks05:18
wallyworldbabbageclunk: so to make sure i understand, we modify import to ignore bad data05:25
wallyworldshould the first line in the PR description be "incorrect" not "correct"05:25
babbageclunkwallyworld: no, the import is good - we were fabricating relation scopes even when they weren't in the import data.05:25
babbageclunkI mean, the import data is good.05:26
wallyworldhmmm ok, i'm a bit confused then05:26
wallyworldwe change import to say if ru not valid then....05:27
wallyworldhow would ru not be valid if import data ws ok05:27
babbageclunkThe relationscopes aren't reflected directly in the export format, but where it used to have two entries for settings under the endpoint it now only has one.05:27
wallyworldright, so the import data *is* wrong05:28
babbageclunkwallyworld: nope05:28
wallyworldbut you just said above it is?05:28
wallyworldwe export bad data05:28
babbageclunkNo, we create bad data when importing good data.05:28
wallyworldwhich we then attempt to import05:28
wallyworldbut the data by definition is not good if it allows us to create bad data05:29
babbageclunkThe export is right, but the nested loop in the code creates relationscopes and settings records even when there's nothing corresponding to them in the import data.05:29
wallyworldsounds like the export format is fawed05:29
babbageclunkwallyworld: I think you might be right - the import is smarter than it should be in this case.05:30
wallyworldi guess i don't understand why ru.Valid() is needed - that seems like too late in the process. we should not even be getting to the point where we have bad ry data05:30
wallyworldif we are then either the export data is flawed, or the import is broken05:31
wallyworldwe should never create bad ry's05:32
wallyworldru05:32
wallyworldwhich we then happen to filter out via Valid()05:32
wallyworldshouldn't the problem be solved further up?05:32
babbageclunkThe other option I toyed with was to continue if endpoint.Settings(unit.Name()) returned nil.05:34
babbageclunkShall we do a hangout?05:34
wallyworldsure05:34
wallyworldstandup one?05:34
babbageclunkyup05:34

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