/srv/irclogs.ubuntu.com/2015/03/01/#juju-dev.txt

jw4another review request for OCR, or whenever some graduated reviewer gets a chance and is willing: http://reviews.vapour.ws/r/1035/02:04
katcowallyworld: ping?15:47
dimiternkatco, o/16:14
dimiternkatco, I've decided it's easier to chat on irc than send tons of mails like that :)16:14
katcodimitern: lol yeah!16:14
katcodimitern: so, i don't have access to an ec2 console with these credentials16:14
katcodimitern: wallyworld gave them to me16:15
dimiternkatco, are these the shared ones?16:15
katcodimitern: i think so16:15
* dimitern scans through emails to find those16:15
katcodimitern: lmk if you want me to pm you16:16
katcodimitern: so i ran the s3 tests again using the same methodology you do, and they all pass16:16
dimiternkatco, sure16:16
katcodimitern: i was going to ask you if maybe using the symlink methodology, the s3 code was possible using v1/v2 signing on accident?16:18
dimiternkatco, as I've replied to one of the mails - I'm not using symlinks in my gopath for goamz16:23
katcodimitern: ah sorry, i must have misunderstood16:23
katcodimitern: well the tests have consistently passed for me. we'd have to start picking apart the signing pieces to figure out what's going wrong on your end. is it possible to run TravisCI again?16:24
dimiternkatco, it's configured to run on every commit or PR, but I guess we could try to re-run it16:29
katcodimitern: i think we need a 3rd data point16:30
katcodimitern: because me saying, "works for me!" isn't very helpful :)16:30
dimiternkatco, I've just re-run the travis tests and they passed again16:31
dimiternkatco, I'll retry on my machine with maximum debugging16:32
katcodimitern: i guess it can't run the live tests16:32
* katco getting more tea16:32
dimiternkatco, it *could*, but that'll mean adding some ec2 creds somewhere16:33
dimiternkatco, so running s3 tests on v3-unstable worked, on your branch failed the same way16:34
katcodimitern: we will have to pick apart the signing pieces to troubleshoot this16:40
katcodimitern: amazon returns what it expects for all the signing pieces, we can compare those to the debug output from aws/sign.go16:42
katcodimitern: can you pick one test that's failing and pick out the equivalent pieces from debug and response?16:42
dimiternkatco, https://github.com/go-amz/amz/pull/27/files#diff-db02e2f1c976d269194375e02b0d62a4R73 << this is a bit worrying16:46
dimiternkatco, why append there?16:46
katcodimitern: virtual domain buckets don't work with SSL since the cert is registered for the domain16:46
katcodimitern: http://shlomoswidler.com/2009/08/amazon-s3-gotcha-using-virtual-host.html16:47
dimiternkatco, I believe the lowercasing might be the issue for us-east-116:47
katcodimitern: mm? how so?16:49
dimiternkatco, because USEast is defined as S3LowercaseBucker: false16:51
dimiternkatco, and ResolveS3BucketEndpoint unconditionally lowercases16:51
dimiternkatco, does this look ok to you: !!!! url="/goamz-faux-region-1--20150301t185544.220574391+0200/index.html"; b=s3test.bucketResource{name:"goamz-faux-region-1--20150301t185544.220574391+0200", bucket:(*s3test.bucket)(nil)}16:56
katcodimitern: yes16:57
katcodimitern: the test suite had races, so i had to make the test bucket names more unique16:58
katcodimitern: i corrected the casing locally and i'm re-running tests16:58
dimiternkatco, that's the problem I think16:58
katcodimitern: the casing?16:58
dimiternkatco, because the timestamp is not escaped16:58
katcodimitern: why would it work for me?16:59
dimiternkatco, can you please add this: defer func() { fmt.Printf("!!! url=%q\n", u) }()16:59
dimiternkatco, in the beginning of s3test/server.go - resourceForURL() and run the tests, paste the output17:00
katcodimitern: with the casing, 3 tests now fail17:01
katcodimitern: all because the returned bucket name is cased differently than the one we sent (returned is lowercase)17:02
dimiternkatco, ok, that's an improvement17:02
katcodimitern: lol it is?17:02
dimiternkatco, I still think adding the timestamp to the bucket name will cause more trouble than solve17:02
dimiternkatco, if you have seen failures I mean :)17:03
dimiternkatco, which ones?17:03
katcodimitern: i could not get anything to pass without. it just ensures a unique bucket for each test17:03
katcodimitern: i can inject failures very easily. whether that's progress is a different question :)17:03
katcoFAIL: <autogenerated>:8: AmazonClientSuite.TestBucketList17:04
katcotest 017:04
katcos3i_test.go:367:17:04
katco    c.Check(resp.Name, Equals, b.Name)17:04
katco... obtained string = "goamz-us-east-1-akiajilh-20150301t105734.322973375-0600"17:04
katco... expected string = "goamz-us-east-1-AKIAJILH-20150301T105734.322973375-0600"17:04
katcoall the failures are this17:04
dimiternkatco, :)17:05
dimiternkatco, I think the problem is you TZ17:05
dimiternkatco, + in the url in my case translates to %2017:06
katcodimitern: i modified the test to check the region's casing and lowercase it if applicable17:06
katcodimitern: ah ok, so you're getting a + for +to UTC?17:06
dimiternkatco, yes17:06
katcothere's our environmental difference :D17:07
katcoi'll remove that portion of the timestamp17:07
dimiternkatco, have you tried that thing with the defer?17:12
katcodimitern: yes it's running now17:12
dimiternkatco, looking at the generated /goamz-faux-region-1--20150301t191139.281063565+0200/ name17:12
katco!!! url="/goamz-faux-region-1--20150301t111233.411561549/"17:12
katco!!! url="/goamz-faux-region-1--20150301t111233.411561549/"17:12
katco!!! url="/goamz-faux-region-1--20150301t111233.412200038/"17:12
katco!!! url="/goamz-/non-existent"17:12
katco!!! url="/goamz-faux-region-1--20150301t111233.412956978/"17:12
dimiternkatco, ok17:13
katcoeven with this i'm getting casing failures now:17:13
katcoexpectedBucketName := b.Name17:13
katcoif b.Region.S3LowercaseBucket {17:13
katcoexpectedBucketName = strings.ToLower(expectedBucketName)17:13
katco}17:13
katcoc.Check(resp.Name, Equals, expectedBucketName)17:13
dimiternkatco, so just removing the timestamp from the urls made ALL the tests pass on your branch17:14
katcodimitern: i found the tests to pass/fail randomly without that17:14
dimiternkatco, the local ones I mean17:14
dimiternkatco, I'll run them a few times just to be sure17:14
katcodimitern: the local ones always worked for me17:14
katcodimitern: the live ones were much more volatile17:14
katcodimitern: the failures would move around randomly17:15
dimiternkatco, so the problem is finding out what's breaking in live tests17:16
katcodimitern: race conditions17:16
katcodimitern: it's non-deterministic17:16
dimiternkatco, well :) I found while fixing ec2 live tests a lot of these random issues could be fixed with retrying on cleanup17:17
katcodimitern: i did that :)17:17
katcodimitern: i fought with this issue for a long time, and making the buckets unique per test was the thing which finally got everything to pass.17:18
dimiternkatco, that's understandable, but they should be unique per suite run I think not changing each time you call testBucket17:19
dimiternkatco, like it is I bet there are tons of leftover undeleted buckets from the account17:19
katcodimitern: well, as the failures were jumping tests, and not suites, i think that's the resolution we would need to be unique17:19
katcodimitern: yes there are, i have to delete them after each run17:19
dimiternkatco, that's not a solution then17:20
katcodimitern: i think we can probably accept that drawback for now given the deadline17:20
katcodimitern: it's only an issue with the tests after all17:21
dimiternkatco, ah, right - but even then it should be fixed eventually17:22
dimiternkatco, so I think the issue is the region name is inconsistent for all tests17:22
katcodimitern: definitely agreed17:22
dimiternkatco, so far with only this change to your branch http://paste.ubuntu.com/10489714/17:24
dimiternkatco, all (local and live) tests except 5 in multi_test pass17:24
katcodimitern: sorry irc client crashed17:32
dimiternkatco, np17:32
katcodimitern: i'm running tests now with that change. how many times have they passed for you with that patch?17:33
dimiternkatco, just the removal of the timestamp?17:33
katcodimitern: yeah17:33
dimiternkatco, completely - none, there are always some failures17:34
katcodimitern: i believe those are the race conditions... if you run the failures alone, they will pass.17:34
dimiternFAIL: multi_test.go:1: AmazonClientSuite.TestBucketList17:36
dimiternthis one always fails so far17:36
katcodimitern: because it's a loop17:37
katcodimitern: (essentially separate tests)17:37
dimiternkatco, I'm trying a few more things17:40
katcodimitern: with this patch, they pass: http://pastebin.ubuntu.com/10490009/17:41
katcodimitern: i think they should for you as well17:41
dimiternkatco, I'll try it out in a bit17:42
dimiternkatco, why do you register AmazonClientSuite twice btw?17:53
katcodimitern: i didn't think i messed with suite registration17:53
katcodimitern: let me look17:53
katcodimitern: yeah i think that was existing17:55
katcodimitern: it's not in my diff17:55
dimiternkatco, you added the next one? AmazonDomainClientSuite?17:55
katcodimitern: can you point me at the line? i don't recall adding that17:55
dimiternkatco, nope, just checked - you didn't17:56
dimiternkatco, but that's the most likely reason for the races17:56
katcodimitern: it looks like they're attempting to test different regions17:58
dimiternkatco, yeah, but us-east-1 is tested twice17:59
katcodimitern: i see this18:01
katcovar _ = Suite(&AmazonClientSuite{Region: aws.EUWest})18:01
katcovar _ = Suite(&AmazonDomainClientSuite{Region: aws.USEast})18:01
katcooops and USEast for the AmazonClientSuite18:02
dimiternkatco, no var _ = Suite(&AmazonClientSuite{Region: aws.USEast}) before that?18:02
katcono you're right, it's there18:02
dimiternkatco, so I've changed this to USWest and now testing18:02
katcoso yeah it looks like there will be overlap b/t AmazonClientSuite and AmazonDomainClientSuite18:02
katcodimitern: are you testing with the shared credentials? i don't want to mess up your run18:04
dimiternkatco, no with mine18:05
mupBug #1426940 was filed: Juju-Windows upgrade-charm --force does not in place force an upgrade <juju-agent> <windows> <juju-core:New> <https://launchpad.net/bugs/1426940>18:08
katcodimitern: i get failures when switching one of the tests to USWest18:11
katcodimitern: i still have to land this into juju. what do you think about this:18:11
katcodimitern: we received reports that ec2 was working in china with the last version of juju18:12
katcodimitern: so maybe we clone the sign.go file and put it into s3 for now18:12
katcodimitern: apply the datetime fix for the live tests18:12
katcodimitern: and we can fix both those things when we have more time18:12
dimiternkatco, let me finish this first and I'll come back - 5m18:13
katcodimitern: ok18:13
alexisbdimitern, katco everything ok?18:23
dimiternalexisb, yeah, just helping out katco with goamz stuff18:24
alexisback,18:24
katcoalexisb: yeah we're just trying to get that landed into juju before the 1.23 cut18:24
dimiternkatco, ok, so my changes didn't seem to improve the failure rate; i'll try your patch with the date18:25
katcodimitern: ok18:25
dimiternkatco, wow!18:38
katcodimitern: ?18:38
dimiternkatco, still running, but nothing failed so far18:38
katcodimitern: yay :)18:38
katcodimitern: i am nervous about introducing this large a change right before we cut for v1.23, will there be time to correct any mistakes?18:38
dimiternkatco, there's always time :)18:39
katcodimitern: lol18:39
dimiternkatco, so the v4 signing for ec2 won't be done, right?18:39
katcodimitern: well, let me dig up the bug report. supposedly that was working fine18:39
katcohttps://bugs.launchpad.net/juju-core/+bug/141569318:40
mupBug #1415693: Unable to bootstrap on cn-north-1 <bootstrap> <ec2-provider> <online-services> <juju-core:In Progress by cox-katherine-e> <https://launchpad.net/bugs/1415693>18:40
katcohttps://github.com/go-amz/amz/issues/2218:40
dimiternkatco, all passed!18:40
katcowoohoo!18:40
dimiternkatco, however, there are a bunch of leftover buckets I can see18:41
katcodimitern: yeah18:41
dimiternkatco, ah, ok - let's add an issue for this as well18:41
katcodimitern: ok i can add that later18:42
dimiternkatco, so one issue for the skipped v4 sign tests and one for cleaning up after live tests pass (or fail for that matter)18:42
dimiternkatco, ok, cheers18:42
dimiternkatco, I'll comment on the PR18:42
katcodimitern: regarding the skipped v4 tests... looking at the original bug, i actually don't know if ec2 was ever working with v418:43
katcodimitern: and i have no way of testing china18:44
katcodimitern: i think the best i can do for now is to check to see if the region is china, and use v4. it may not work, and we'd have to try to backport fixes for it i think18:44
dimiternkatco, I haven't seen it working at least18:44
katcodimitern: but you have more context on what's acceptable, any thoughts on how to proceed?18:44
dimiternkatco, if it's not testable, it's not fixable18:45
katcodimitern: do you have access to china testing?18:45
dimiternkatco, so I'd comment on the bug about providing you with a cn-north account18:45
dimiternkatco, no18:45
katcodimitern: PR is up with changes, Travis CI passes19:34
dimiternkatco, cool, I'm having a look19:34
=== wgrant_ is now known as wgrant
cheryljdavecheney: Could you re-review my ensure-availability changes?  http://reviews.vapour.ws/r/1015/22:38
cheryljIt seems to have also picked up some of the changes that anastasiamac did for a separate PR22:38
davecheneycherylj: ok23:01

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