*** m_kazuhiro has joined #swift3 | 00:52 | |
*** m_kazuhiro has quit IRC | 02:55 | |
*** m_kazuhiro has joined #swift3 | 03:28 | |
*** nikivi has joined #swift3 | 07:57 | |
*** nikivi has quit IRC | 08:15 | |
*** nikivi has joined #swift3 | 08:17 | |
*** acoles_ is now known as acoles | 08:24 | |
*** m_kazuhiro has quit IRC | 09:28 | |
*** openstack has joined #swift3 | 10:19 | |
*** nikivi has quit IRC | 13:13 | |
*** nikivi has joined #swift3 | 13:59 | |
*** openstackgerrit has quit IRC | 15:03 | |
*** openstackgerrit has joined #swift3 | 15:04 | |
*** acoles is now known as acoles_ | 17:08 | |
*** airdisa has joined #swift3 | 17:42 | |
*** nikivi has quit IRC | 18:52 | |
*** acoles_ is now known as acoles | 20:58 | |
*** bill_az has joined #swift3 | 21:01 | |
*** acoles is now known as acoles_ | 22:33 | |
kota_ | good morning | 23:01 |
---|---|---|
timburke | good morning kota_! | 23:02 |
kota_ | hello timburke! | 23:02 |
kota_ | could we get started? | 23:03 |
timburke | sure | 23:04 |
kota_ | ok | 23:04 |
kota_ | agenda is here https://wiki.openstack.org/wiki/Meetings/swift3 | 23:04 |
kota_ | I modified it in the last nignt but I don't have so much progerss since 2 weeks ago | 23:05 |
kota_ | becasue I was on vacation mostly. | 23:05 |
timburke | vacations are good :) | 23:05 |
kota_ | timburke: do you have any updates or what is needed to discuss? | 23:06 |
kota_ | thanks | 23:06 |
timburke | as for my own progress, you saw https://review.openstack.org/#/c/350223/ before you left -- i could add a func test to demonstrate the 403 fairly easily, but it might be tricky to get one that properly demonstrates a 200 | 23:06 |
patchbot | timburke: patch 350223 - swift3 - Properly strip headers for request signing | 23:07 |
kota_ | ah | 23:08 |
kota_ | yeah | 23:08 |
timburke | on https://review.openstack.org/#/c/302475/ i've come up with an idea involving X-Backend-Etag-Is-At, but properly supporting conditional requests seems difficult | 23:09 |
patchbot | timburke: patch 302475 - swift3 - Include '-' in multipart ETags | 23:09 |
kota_ | I didn't try it, but it *might* be true, some clients *may:* strip them by themselvs. | 23:09 |
timburke | the way i figure it, we should seek to emulate S3 as closely as possible, and rely on clients to notice and fix their bugs | 23:10 |
kota_ | with quick look for patch 302475 | 23:12 |
patchbot | kota_: https://review.openstack.org/#/c/302475/ - swift3 - Include '-' in multipart ETags | 23:12 |
kota_ | do we need version bump for supporting swift? | 23:12 |
kota_ | both backend-container-override and object-sysmeta-container-update-override is nebee since 2.3.0 (kilo) | 23:13 |
kota_ | but iirc we are now set the version >=2.1.0 | 23:14 |
kota_ | s/nebee/newbee/ | 23:14 |
timburke | hrm. yep, sure enough :-/ | 23:14 |
kota_ | IMHO, if we need to bump it, it seems reasnable to reach the newest because we have some redandunt codes for backward compatibility. | 23:16 |
timburke | yeah, and at some point we'll surely need to | 23:16 |
timburke | but coupled with the difficulties i'm seeing in trying to make conditional requests work against SLOs with a custom etag, maybe it's not the best way | 23:17 |
timburke | i'm just not sure how to address the difference between etag during bucket listing and during key GET, though | 23:18 |
kota_ | hmm | 23:18 |
timburke | the client-side validation is definitely an issue; we want a '-' in SLO etags at least during download. but then i'm not sure how to determine that the object is an SLO during listings | 23:20 |
kota_ | quick question | 23:21 |
kota_ | how does it works on S3 for conditional GET? | 23:21 |
timburke | as i recall, whatever the etag is on download, you can supply it in If-Match/If-None-Match headers on subsequent downloads and it will behave as expected | 23:22 |
kota_ | interesting | 23:24 |
timburke | they aren't supported on PUTs, which lead to https://github.com/openstack/swift3/commit/45cf2f1 | 23:24 |
kota_ | > it will behave as expected: the expected means "as multipart" or "as a single object"? | 23:25 |
timburke | either. the server supplies an etag when you first download the object. later, you want to make sure you've got the latest copy of that object, but you've still got your old copy. so you send the same GET but with a `If-None-Match: <etag from server>`. if the object hasn't changed, the server responds with a 304 and you know you're up-to-date; otherwise, the server sends the current (new) content | 23:28 |
timburke | etags for normal objects are the md5 of their content, but that's only by convention/convenience. in general (for HTTP), they are opaque strings with no relation to the content | 23:30 |
kota_ | well | 23:31 |
kota_ | i also don't have so good idea for that but it seems reasnable to do like... 1. do conditional-GET anyway, 2. retry if it's SLO and the condition was mismatch? | 23:36 |
kota_ | hmmm.... | 23:37 |
kota_ | probably, i need more deep dive though, my head seems still in vacation mode :/ | 23:37 |
timburke | i'm wondering how important it is to fix bug 1522578 at the same time; whether just tacking on the -N would be sufficient | 23:38 |
openstack | bug 1522578 in Swift3 "Etag generation in swift3 does not match AWS S3" [Undecided,New] https://launchpad.net/bugs/1522578 | 23:38 |
timburke | at that point, handling conditional requests is fairly easy; just drop any -N in the headers on the way in and let SLO/the object server do its normal thing | 23:39 |
timburke | and it leaves on the problem of bucket listings | 23:39 |
timburke | s/on/only/ | 23:40 |
kota_ | gotcha | 23:41 |
kota_ | hmmm | 23:41 |
kota_ | -N, -N... so... | 23:41 |
timburke | which may just be a difference we live with | 23:41 |
kota_ | -N is also appreared bucket listing at actual S3? | 23:42 |
kota_ | only in object metadata on GET/HEAD? | 23:42 |
timburke | iirc, S3 is consistent between bucket listings and GET/HEADs | 23:42 |
kota_ | ok | 23:43 |
kota_ | both | 23:43 |
timburke | yup :-( which was part of the inspiration for https://review.openstack.org/#/c/347538/ | 23:43 |
patchbot | timburke: patch 347538 - swift - Store SLO Etag and swift_bytes in sysmeta | 23:43 |
kota_ | alright, will look at that too | 23:45 |
timburke | if that lands, it would have the benefit of flagging SLOs in container listings for us | 23:46 |
kota_ | yeah, exactly. | 23:46 |
timburke | on swift3 reviews, https://review.openstack.org/#/c/345739/ is another interesting one, though a bit older. i'd be interested in your opinion on it when you get a chance | 23:47 |
patchbot | timburke: patch 345739 - swift3 - Add support for more characters in header keys | 23:47 |
kota_ | love it | 23:49 |
timburke | and https://review.openstack.org/#/c/352755/ was a good catch but needs tests. i'll try to add some if charles doesn't get to it | 23:50 |
patchbot | timburke: patch 352755 - swift3 - Fix 403 SignatureDoesNotMatch when use v4 signatur... | 23:50 |
kota_ | k | 23:51 |
kota_ | interesting | 23:52 |
kota_ | that docs for S3 in the patch clealy say "/examplebucket/myphoto.jpg, is the absolute path | 23:53 |
kota_ | in description for canonical URI | 23:53 |
kota_ | ah | 23:54 |
timburke | when using a url like http://s3.amazonaws.com/examplebucket/myphoto.jpg | 23:54 |
kota_ | that patch is for virtual hosted-style | 23:54 |
kota_ | gotcha | 23:54 |
timburke | yep :-) | 23:54 |
kota_ | ok, good catch | 23:55 |
-kota_- GET /test.txt HTTP/1.1 | 23:55 | |
-kota_- Host: examplebucket.s3.amazonaws.com | 23:55 | |
kota_ | should be | 23:55 |
-kota_- GET | 23:55 | |
-kota_- /test.txt | 23:55 | |
kota_ | in the canonical string | 23:55 |
timburke | yep | 23:55 |
kota_ | sounds good catch and reasonable, so I think I could review quickly today. | 23:56 |
kota_ | starred | 23:57 |
timburke | thanks | 23:57 |
kota_ | thanks for such a bunch of works, awesome! | 23:58 |
timburke | yeah! between this and versioning it's gonna be great! | 23:58 |
kota_ | absolutely | 23:59 |
timburke | looks like we're running out of time, though, and you wanted to bring up doing a release | 23:59 |
timburke | i'm on board; a lot of good stuff has landed since 1.10 | 23:59 |
kota_ | yeah | 23:59 |
Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!