Tuesday, 2015-03-17

*** NM has quit IRC00:00
hogood morning!00:01
*** Cipher45 has joined #openstack-swift00:10
*** erlon has quit IRC00:11
*** aix has joined #openstack-swift00:12
*** zhill has quit IRC00:16
tdasilvaclayg: thanks for the review!00:18
claygtdasilva: oh no problem, it was mostly just me wtf'ing before admiting in tears it's about as good as it's gunna get00:19
claygI'm looking at moving the EC specific code paths out of _store_object, _get_put_connections and _transfer_data and putting things back the way they go for replication00:20
tdasilvaok00:21
claygI think the merge to master would look like "clean up PUT as much as we can" "use that fact that PUT is chopped up into useful pieces to just over-ride the EC specific parts in ECObjectController"00:21
claygbut I wanna look at those backend methods to see if they need to be cut up anymore - _transfer_data is a good bunch of error handling to have to duplicate in the ECObjectController00:22
claygit also grew like half again as many new arguments00:23
claygtdasilva: https://review.openstack.org/#/c/160877/ presents the good idea of just attaching the policy to the controller instance instead of plumbing it through to every method on the damn thing.00:24
claygjust reminded myself that patch needs to handle the fucking COPY path00:34
* clayg cries some more00:34
claygtdasilva: but you know... you're welcome :'(00:34
*** reed has quit IRC00:39
tdasilvaclayg: i'm back! was eating some dinner00:42
clayggood for you00:42
tdasilvalol00:42
claygwe should all be worried about keeping up our strength00:42
tdasilvaso, are you going to work on the refactor patch, or would you like me to take another stab at it00:42
tdasilva?00:42
*** kota_ has joined #openstack-swift00:43
tdasilvaif you already moving stuff to ECObjectController, then I'll wait for your patchset00:43
claygyeah i'm moving stuff over trying to understand the signature changes of the backend storage methods from plain old 156825 and where you ended up in 164561 after EC-ifying everything00:44
torgomaticbash: line 1: 20782 Segmentation fault      (core dumped) nosetests -s test.unit.proxy.test_server:TestObjectECRangedGET00:45
torgomaticWINNING00:45
*** NM has joined #openstack-swift00:47
claygugh :(00:47
claygtdasilva: anyway after I get done with the _storage_object refactoring onto ECObjectController I'm going to take state of things and look at publishing the method extraction part of PUT to master - while i'm convinced the EC PUT path will be basically unreviewable without it - I think it could take enough time to review in it's own right that we're really going to want it on master ahead of the EC changes review - i think it00:50
claygtdasilva: I don't think the order of the PUT method extraction and versioned writes and copy really makes much of a difference to master - but the method extraction may make the most sense for EC00:50
claygthe other middleware extractions help more *in general* but that code isn't really different between replicated and EC00:51
claygIMHO, that is - you should take that with a grain of salt00:52
tdasilvaclayg: I agree, that the middleware extractions just make help the (PUT) code more readable, easier to "digest" but it is not crucial for EC00:53
claygfucking _get_put_response and druable grahgh!00:54
claygmattoliverau: you around01:03
mattoliverauclayg: yup01:03
claygmattoliverau: tdasilva and I are brainstorming about how screwed we are and felt like it's unfair to leave you out01:03
tdasilvalol01:03
tdasilvajoin the pain01:04
mattoliverauLol, feeling the love :)01:04
claygmattoliverau: so the notion is that maybe versioned_writes despite all the awesomeness doesn't acctually solve for taking the ec specific parts of PUT out of the middle of the replicated PUT path01:05
claygwhere as the PUT method extraction refactor might make it a bunch more obvious where the ECObjectController needs to cut through.01:05
clayglike basically everything above _store_object should be about the same as on replicated - and everything after _store_object should be un-effected by whatever we can pull out of the copy/version handling part of PUT01:06
* mattoliverau opens the patch to take a closer look01:08
clayganyway the general idea is that versioned writes may not make it's way onto feature/ec any quicker than master01:08
tdasilvaclayg: the only little piece after _store_object that will be afftected after copy is extracted is the update_response method, we should not need that anymore01:09
claygand if we could get something like the method extraction on both first - there's a good chance it'll be easier to apply to either/both assuming we can finish reviewing it01:09
claygtdasilva: omg that would be amazing!01:09
mattoliverauWell, I was suprised how little a conflict we got when rebasing01:10
claygtdasilva: but that acctually get's created in PUT by the copy context shit - so it's not really "under" _store_object in the call stack sense01:10
claygmattoliverau: ok, good that's encourging01:10
tdasilvayes, correct, it's just after :P01:10
mattoliverauand extracting the obj_version code isn't too hard as it was mainly placed in 2 contained if statements01:10
tdasilvatrue01:10
mattoliverau(when fixing the conflict)01:10
*** tsg has joined #openstack-swift01:11
claygok, that's all good news - so maybe we agree there's only limited value trying to get it proposed to feature/ec01:11
mattoliverauSo other then changes, landing in master might be ok pre EC01:11
claygmattoliverau: maybe?  you're apllying the versioned writes on feature/ec after tdasilva's re-imaging of the PUT method extraction change on feature/ec right?01:12
tdasilvamakes sense to me01:12
mattoliverauclayg: I think it comes down to time.. getting it lined up nicely to make the merge to master easier and if that is soon then putting obj_versions on EC makes sense01:12
mattoliverauclayg: yup01:12
claygok, well you guys have convinced me a converged view of the PUT method extraction merged on both master and feature/ec would be nice to pre-req any of the context extractions on master01:13
mattoliveraubut now knowing that "at this point" it doesn't seem to effect to put path too much, amerge to master for obj_versions seems safe01:14
claygso i'm going to keep working on that01:14
claygoh ok01:14
claygmattoliverau: tdasilva wanted some help with dlo/slo versioned_writes tests01:14
tdasilvayay, that would be great!01:14
claygi honestly have no idea how those features work/break each other - question marks around current behavior is always a pain01:15
mattoliverauclayg, tdasilva: I can start taking testing, then we can come up with some tests :)01:16
claygnice01:17
mattoliverauwow, my english is awesome today01:17
*** tsg has quit IRC01:18
tdasilvamattoliverau: clayg put a question about versioning placement on the pipeline regarding before or after dlo/slo. Then I started reading more of the slo documentation and reading about behavior such as  ?multipart-manifest=delete and how that would be affected if a container is being versioned01:18
mattoliverautldr: I'll start testing the new versioned_writes middleware with slo/dlo.. and then find some tests01:18
mattoliverautdasilva: hmm, yeah.. that might just delete to latest version of the segments01:19
claygi can't even *imagine* how it works today - draw up a etherpad or something as you go01:20
tdasilvaright, but then what happens if there are previous versions of certain segments and not of others and stuff like that01:20
claygjesus :'(01:20
mattoliverauyeah, I'll go test it out, I can etherpad as I go.01:21
mattoliverautdasilva: then getting the slo will fail cause a segment can't be found.. a dlo would be worse cause we'd have missing data in the middle of the file.01:22
mattoliveraubut no error01:22
mattoliverauthe question is, what is the expected behavior. I'd argue that, that's exactly what to expect.. unless you want ?multipart-manifest=delete to recursively delete versioned objects... but then there is more relience on a middleware noing about another middleware.01:24
mattoliveraus/noing/knowing/01:24
claygso I would expect overriting a manifest in a versioned container to create a backup of the manifest that's pointing to the old objects, and deleting a manifest with multipart would delete all of the objects tht it's currently pointing to01:26
claygif the segments container is *also* versioned is when everything get's screwed01:26
claygbecause the segment has the real paths not the paths that the version middleware makes up01:26
mattoliverauhmm yeah01:27
claygbut I don't expect that work, and no one else is either, because it doesn't work - they can be bummed about it if they want to01:27
mattoliveraulol01:28
tdasilvamaybe this is (one of) the reason why we chose not to version manifest objects before ??01:30
claygHOLY shit01:31
claygi took the put method extraction and moved _store_object, _get_put_response, _transfer_data and _get_put_connections all under the ECObjectController and then copied in the old replicated methods (who have different signatures and shit!?) from https://review.openstack.org/#/c/156825/4 into base controller - and it *worked*01:33
clayglike i mean it was supposed to work - _store_object is supposed to wrap up everything to do with how the object is placed on backend storage - and there's tons of duplicated code - but the fact that it worked at all is freaking me out01:34
clayglike i had to restart my proxy half a dozen times to even believe it was running my changes01:34
tdasilvaclayg: well, if you look at patch 159285, you will see that I was able to substitute _store_object with 10 lines of code for single process and everything works01:36
patchbottdasilva: https://review.openstack.org/#/c/159285/01:36
mattoliverauLol! Things are not suppose to just work! That's not how IT works, you must've missed smething :p01:36
claygthat's crazy01:36
tdasilvaso i'm not that surprised01:36
*** jrichli has joined #openstack-swift01:43
tdasilvai'm going to take off. mattoliverau thanks for your help with versioning, i'll try to pick up again tomorrow, have a good night/day01:51
mattoliverautdasilva: thanks for all your work, you've done all the work ;) night man!01:53
openstackgerritMerged openstack/swift: Bump PyECLib version to >= 1.0.3  https://review.openstack.org/16487202:02
*** dmorita has quit IRC02:19
*** dmorita has joined #openstack-swift02:19
*** tsg has joined #openstack-swift02:23
*** dmorita has quit IRC02:24
*** Guest____ has joined #openstack-swift02:26
*** Guest____ is now known as b4rker02:29
*** panbalag has quit IRC02:32
*** jrichli has quit IRC02:36
*** tsg has quit IRC02:40
*** Anticimex has quit IRC02:42
*** haomaiwang has joined #openstack-swift02:43
*** NM has quit IRC02:47
*** NM has joined #openstack-swift02:49
*** kajinamit has joined #openstack-swift02:56
*** echevemaster has quit IRC03:05
*** NM has quit IRC03:05
*** echevemaster has joined #openstack-swift03:05
*** b4rker has quit IRC03:15
*** sluo_wfh is now known as sluo_laptop03:28
*** david-lyle is now known as david-lyle_afk03:35
*** mitz has quit IRC03:40
*** tsg has joined #openstack-swift03:42
*** ppai has joined #openstack-swift03:48
openstackgerritYuan Zhou proposed openstack/swift: Add swift-ec-info tool  https://review.openstack.org/14269403:52
*** Anticimex has joined #openstack-swift03:52
*** mitz has joined #openstack-swift04:34
*** tsg has quit IRC04:35
charznotmyname: clayg I added the ssbench job in swift-cluster-ci. Here is the output (https://8b86aea46fb38e6450f2-0e5f4c086da474abc1df58826577db2f.ssl.cf1.rackcdn.com/142694/28/ssbench/)04:54
clayghey that html looks baddass!04:55
clayginteresting that run hit some retires104:56
claygcharz: I want to say that when we ran functional tests there was some collection of the backend logs - do i have those for benchmarks too?04:56
charzclayg: yeah, I can put it in output folder.04:57
claygyuanzz: it was probably you change that made all of the requests retry :P  -> https://review.openstack.org/#/c/142694/04:57
claygthat's amazing - i'm really keen on this work04:58
charzclayg: I triggered it. :P04:58
*** zaitcev has quit IRC05:00
*** ktsuyuzaki has joined #openstack-swift05:05
*** kota_ has quit IRC05:07
charzre-trigger it again and waiting for backend logs05:07
*** kota_ has joined #openstack-swift05:08
*** ktsuyuzaki has quit IRC05:10
*** ktsuyuzaki has joined #openstack-swift05:10
*** kota_ has quit IRC05:12
*** kota_ has joined #openstack-swift05:13
*** ktsuyuzaki has quit IRC05:15
*** ktsuyuzaki has joined #openstack-swift05:15
*** kota_ has quit IRC05:17
*** kota_ has joined #openstack-swift05:18
*** ktsuyuzaki has quit IRC05:20
*** ktsuyuzaki has joined #openstack-swift05:22
*** kota_ has quit IRC05:24
*** kota_ has joined #openstack-swift05:25
*** ktsuyuzaki has quit IRC05:26
*** ktsuyuzaki has joined #openstack-swift05:27
*** kota_ has quit IRC05:29
charzyeah, I nailed it! backend logs are included.05:30
*** kota_ has joined #openstack-swift05:34
*** ktsuyuzaki has quit IRC05:36
*** ktsuyuzaki has joined #openstack-swift05:36
*** kota_ has quit IRC05:38
*** kota_ has joined #openstack-swift05:39
*** ktsuyuzaki has quit IRC05:41
*** ktsuyuzaki has joined #openstack-swift05:41
*** kota_ has quit IRC05:43
*** kota_ has joined #openstack-swift05:44
*** delattec has quit IRC05:44
*** delattec has joined #openstack-swift05:45
*** ktsuyuzaki has quit IRC05:46
*** ktsuyuzaki has joined #openstack-swift05:46
*** kota_ has quit IRC05:48
*** kota_ has joined #openstack-swift05:51
*** ktsuyuzaki has quit IRC05:53
*** ktsuyuzaki has joined #openstack-swift05:56
*** kota_ has quit IRC05:58
openstackgerritClay Gerrard proposed openstack/swift: Validate the PUT method extraction for EC  https://review.openstack.org/16495005:58
*** kota_ has joined #openstack-swift05:58
claygtdasilva: if you come online before me and you wanna poke fun at how crappy code I write at 11pm is - you should give ^ a once over05:58
*** ktsuyuzaki has quit IRC06:00
*** ktsuyuza_ has joined #openstack-swift06:01
*** kota_ has quit IRC06:02
*** kota_ has joined #openstack-swift06:03
*** ktsuyuza_ has quit IRC06:05
*** ktsuyuzaki has joined #openstack-swift06:05
*** kota_ has quit IRC06:08
*** ktsuyuza_ has joined #openstack-swift06:08
*** ktsuyuzaki has quit IRC06:09
*** kota_ has joined #openstack-swift06:12
*** ktsuyuza_ has quit IRC06:14
*** ktsuyuzaki has joined #openstack-swift06:15
*** kajinamit has quit IRC06:15
*** kota_ has quit IRC06:17
*** kota_ has joined #openstack-swift06:17
*** ktsuyuzaki has quit IRC06:19
*** ktsuyuzaki has joined #openstack-swift06:20
*** kota_ has quit IRC06:22
*** kota_ has joined #openstack-swift06:22
*** ktsuyuzaki has quit IRC06:25
*** ktsuyuza_ has joined #openstack-swift06:25
*** kota_ has quit IRC06:27
*** ktsuyuzaki has joined #openstack-swift06:27
*** ktsuyuza_ has quit IRC06:30
*** kota_ has joined #openstack-swift06:34
*** ktsuyuzaki has quit IRC06:36
*** ktsuyuzaki has joined #openstack-swift06:36
*** kota_ has quit IRC06:38
*** kota_ has joined #openstack-swift06:39
*** nshaikh has joined #openstack-swift06:40
*** ktsuyuzaki has quit IRC06:41
*** ktsuyuzaki has joined #openstack-swift06:41
openstackgerritOpenStack Proposal Bot proposed openstack/swift: Imported Translations from Transifex  https://review.openstack.org/16496406:41
*** kota_ has quit IRC06:43
*** echevemaster has quit IRC06:43
*** kota_ has joined #openstack-swift06:44
*** ktsuyuza_ has joined #openstack-swift06:46
*** ktsuyuzaki has quit IRC06:46
*** SkyRocknRoll has joined #openstack-swift06:47
*** kota_ has quit IRC06:49
*** kota_ has joined #openstack-swift06:51
*** ktsuyuza_ has quit IRC06:53
*** ktsuyuzaki has joined #openstack-swift06:53
*** kota_ has quit IRC06:55
*** kota_ has joined #openstack-swift06:56
*** ktsuyuzaki has quit IRC06:58
*** ktsuyuza_ has joined #openstack-swift06:58
*** kota_ has quit IRC07:00
*** kota_ has joined #openstack-swift07:00
*** ktsuyuza_ has quit IRC07:03
*** ktsuyuzaki has joined #openstack-swift07:03
*** kota_ has quit IRC07:05
*** kota_ has joined #openstack-swift07:07
*** ktsuyuzaki has quit IRC07:09
*** ktsuyuzaki has joined #openstack-swift07:10
*** kota_ has quit IRC07:12
*** kota_ has joined #openstack-swift07:12
*** ktsuyuzaki has quit IRC07:14
*** ktsuyuzaki has joined #openstack-swift07:17
*** kota_ has quit IRC07:19
*** kota_ has joined #openstack-swift07:19
*** ktsuyuzaki has quit IRC07:22
*** ktsuyuzaki has joined #openstack-swift07:22
*** kota_ has quit IRC07:24
*** zhill has joined #openstack-swift07:24
*** kota_ has joined #openstack-swift07:24
*** ktsuyuzaki has quit IRC07:26
*** o5k__ has joined #openstack-swift07:28
*** ktsuyuzaki has joined #openstack-swift07:29
*** zhill has quit IRC07:31
*** kota_ has quit IRC07:31
*** o5k_ has quit IRC07:31
*** silor has joined #openstack-swift07:44
*** haomaiwang has quit IRC08:03
*** haomaiwa_ has joined #openstack-swift08:04
*** silor has quit IRC08:15
*** rledisez has joined #openstack-swift08:19
*** o5k__ is now known as o5k08:27
*** arnaud_o has quit IRC08:41
*** geaaru has joined #openstack-swift08:59
*** ktsuyuzaki has quit IRC08:59
*** jordanP has joined #openstack-swift09:03
*** jistr has joined #openstack-swift09:04
Guest5916hi! - newbie question : i'm following this http://docs.openstack.org/developer/swift/apache_deployment_guide.html, i don't know in what section of /etc/swift/test.conf should i put these entries: web_front_end = apache209:41
Guest5916normalized_urls = True09:41
Guest5916anybody to help ?09:44
*** Guest5916 is now known as m_h09:48
*** m_h is now known as h_m09:49
hoGuest5916: please try [func_test].09:58
*** acoles_away is now known as acoles10:10
*** SkyRocknRoll has quit IRC10:11
*** NM has joined #openstack-swift10:29
*** haomaiwa_ has quit IRC10:44
*** silor has joined #openstack-swift10:50
*** Bsony has joined #openstack-swift11:00
*** Bsony has quit IRC11:00
*** Bsony has joined #openstack-swift11:01
*** NM has quit IRC11:31
*** ppai has quit IRC11:31
*** ho has quit IRC11:44
*** vinsh has joined #openstack-swift12:03
*** jistr is now known as jistr|class12:26
*** madgriff_ has joined #openstack-swift13:15
*** o5k_ has joined #openstack-swift13:21
*** madgriff_ has quit IRC13:22
*** panbalag has joined #openstack-swift13:23
*** o5k has quit IRC13:23
*** nshaikh has quit IRC13:33
*** o5k_ is now known as o5k13:35
*** o5k_ has joined #openstack-swift13:45
*** o5k has quit IRC13:46
*** joeljwright has quit IRC13:53
*** joeljwright has joined #openstack-swift13:53
*** Gues_____ has joined #openstack-swift14:00
*** bkopilov has quit IRC14:05
*** jistr|class is now known as jistr14:05
*** o5k_ is now known as o5k14:11
*** nellysmitt has joined #openstack-swift14:29
*** o5k has quit IRC14:30
*** tsg has joined #openstack-swift14:30
*** Fin1te has joined #openstack-swift14:44
*** david-lyle_afk is now known as david-lyle14:57
*** madgriff_ has joined #openstack-swift14:57
*** Gues_____ has quit IRC15:01
*** jrichli has joined #openstack-swift15:11
*** Fin1te has quit IRC15:17
*** lpabon has joined #openstack-swift15:38
openstackgerritThiago Gomes proposed openstack/python-swiftclient: Fix the Upload an object to a pseudo-folder  https://review.openstack.org/16511215:39
*** tsg has quit IRC15:43
*** tacotuesday has joined #openstack-swift15:58
claygwhoa quiet this morning...16:01
*** madgriff_ has quit IRC16:01
claygacoles: did you by chance take a stab at rebasing any of the ec specific behaviors in godf and hcl against the DiskFileRouter patch?16:06
acolesclayg: i did and i am really close to typing git review :D like, just running pep8 and typing a commit message...16:06
claygnice16:07
openstackgerritThiago da Silva proposed openstack/swift: refactor PUT method  https://review.openstack.org/16456116:07
claygit's like we're working around the clock!16:07
claygtdasilva: !!! i was just going to ask you about that!16:07
tdasilvaclayg: just did some clean up of _store_object16:07
tdasilvaif you are not working on your patch, I was planning on rebasing it with this patch16:08
tdasilvaclayg: I like your patch btw, it's really neat that we can separate EC from replica and just maintain replica stable16:09
claygtdasilva: i am not at the moment - i'll take you up on that offer - thanks!16:10
claygtdasilva: i was just looking at it - nice touch16:10
tdasilvaI figure once versioning and copy is gone to middleware, store_object will only have req and outgoing_headers as params!16:10
claygtdasilva: that's pretty nice16:11
claygtdasilva: although... you know that get_from_index can return None right :P16:11
openstackgerritAlistair Coles proposed openstack/swift: Per-policy DiskFileRouter  https://review.openstack.org/16438016:11
openstackgerritAlistair Coles proposed openstack/swift: Per-policy DiskFile classes  https://review.openstack.org/16512516:11
acolesclayg: ^^ i guess i did a drive by rebase of your router patch16:11
claygacoles: nice!  eat it router!16:12
claygacoles: so... feedback?  are you happy with the result - i'm going to go look at it16:13
acolesclayg: so, i'm not sure if i got 165125 right w.r.t. implementing the policy specific pieces in the manager or in the diskfile subclasses, i went round in circles for a while :(16:13
acolesclayg: i'm happy that bot repl and ec diskfile subclass-families are ready to rock *and* legacy is still there by default16:14
acolesclayg: i wasn't too sure whether we need policy-specific df_managers or just DiskFile subclass (and DiskFileWriter subclass)16:15
claygacoles: there's just too many damn classes - the fact that you have to pass instances of one to the other is showing us there's all coupled as fuuuh16:15
acolesclayg: but for now i went with the pattern i *think* you were suggesting16:16
claygacoles: well - it's really b/c get_hashes for replication16:16
acolesi.e. manager subclasses16:16
claygacoles: and yield hashes16:16
claygyeah @ the manager - i didn't want to do the manager - but had to because of yield hashes and get hashes for replication16:16
acolesclayg: yep. although they could be class methods on the DiskFile16:16
acoles(i think)16:17
claygacoles: ah!!!! yes16:17
claygwell... maybe... idk16:17
acolesclayg: so the alternative i could imagine is that DiskFileManager acts as the factory/router and everything policy specific is encapuslated in DiskFile, but idk16:18
clayganyway, I think the DiskFile(Reader|Writer) could all be one class - then if you need to register the Factory/Manager class that exposes get_diskfile, yield_hashes, and get_hashes - it's not so terrible (I think)16:18
clayganyway - we go with what we got16:19
*** mahatic has joined #openstack-swift16:20
claygacoles: so it still looks like most of durable interface methods are still on the base DiskFile?16:21
acolesclayg: just write_durable_timestamp? or did i miss something. i pretty much didn't touch DiskFile16:22
* acoles goes to review own patch16:22
acolesclayg: oh, i should point out that i have not yet applied all the features from the original multi-FI patch16:25
claygacoles: yeah, ok - cool16:25
acolesclayg: base DiskFile does need to grow the write_durable_timestamp method imho but i do believe it shoudl be a no-op on base DiskFile16:25
acolesclayg: i had another patch based on multi-FI for that16:26
acolesclayg: tbh i focussed on getting the basic pattern in here and not yet throwing in all the incremental changes16:26
claygacoles: yup16:27
*** Bsony has quit IRC16:33
*** mahatic_ has joined #openstack-swift16:35
*** mahatic has quit IRC16:35
claygacoles: i'm looking at the ec implementation of get_on_disk_files - pretty slick16:37
*** lpabon has quit IRC16:37
acolesclayg: i'm just fixing the stale doc strings in there ;)16:37
*** bkopilov has joined #openstack-swift16:41
peluseso is there a replacement patch set for multi-FI yet?  reconstruction seems pretty solid but I have an interimttent issue with revert and it looks like its in multi FI somewhere16:42
pelusehave to step away for a few hrs, will debug on multi-FI if I need to but before I start digging in thought i'd check on all this otehr conversation16:42
*** bkopilov has quit IRC16:46
*** rledisez has quit IRC16:47
*** thumpba has joined #openstack-swift16:47
*** thumpba_ has joined #openstack-swift16:51
acolespeluse: not quite there yet, but i will start xferring from multi-FI on top of the per-policy patches16:52
*** thumpba has quit IRC16:54
claygacoles: so but you've got multi-FI support in the per-policy diskfile yeah?  just not the suffix-y bits?16:54
acolesclayg: correct. i'm just not sure yet if I have *everything* else that was in that multi-FI patch (apart form suffix-y bits)16:56
claygacoles: is there no ECDiskReader?16:56
claygacoles: oh i guess not, it doesn't have any module level function drops.16:57
claygacoles: ok, well i'll let you get wherever you're gunna get today (you've made a bunch of progress) - then I'll probably try to add the multi-fi suffix parts onto the ec diskfiles and trailing filter onto yeild hashes etc16:59
acolesclayg: no changes to reader.17:00
notmynameI like tdasilva's versioned writes patch just because the proxy test get better17:00
claygdo they?17:00
claygtdasilva: on the EC PUT stuff - anything else you see like the outgoing_headers pull that takes common tasks out of both implementations would be great - you might try to work up from _get_put_responses17:01
acolesclayg: i think i need to change how the places where DiskFile* classes map a method to strip_self(method)...17:02
claygtdasilva: maybe after another pass at that we can try but the lines on master17:02
acolesclayg: i ned them to map to the manager method (which may in default map to the module level func)17:03
*** Bsony has joined #openstack-swift17:03
claygacoles: bummer - that seemed like it was going to work for me17:03
tdasilvaclayg: do you think we should squash both patches? or is it easier to review them as separately?17:03
acolesclayg: just so i can override the method in manager and have the diskfile pick up the override, not keep using the module func17:03
claygtdasilva: i don't care about that on feature/ec - if it's easier for you to work with just squash them17:04
tdasilvaclayg: "but the lines on master" ???17:04
claygprobably meant "put" - my point was just that where the fucntion cuts get made depend mostly on where the ECObjectController get's the most milage out of the common methods17:04
claygand once we know where things shake out - we can use those as the breaking points for a patch on master that is just a refactoring of that method - the sinister purpose will only reveal it self the week after after next when EC patches start coming up17:05
claygacoles: but that's what strip_self was all about - it attaches the name to class - and in the subclass you just redefine it there17:06
claygacoles: like the Manager should already have self.hash_cleanup_listdir and self._get_hashes - did i miss one?17:07
*** dmorita has joined #openstack-swift17:08
acolesclayg: its not a huge deal - right now i have to both override a method in a manager class AND override the writer to attach to the manager method (and I missed that second piece :/)17:12
acolesclayg: if by default the write (for exampl) attached to its manager method, then overriding the manager method would be sufficient17:12
claygacoles: yeah i was worried about that too17:13
mahatic_notmyname, hi! I have been quite stuck at the implementation of storage policies in recon. I'm only trying for the validate servers part for now. I took a cue from here https://review.openstack.org/#/c/138697/17:13
*** jistr has quit IRC17:14
claygacoles: the df get's reference to the manager - but he doesn't pass that to the reader/writer?  but writer gets a diskfile now right?17:14
claygself.diskfile.mgr.hash_cleanup_listdir?17:14
acolesclayg: and DiskFile has a ref to its manager, so I could just make calls e.g. to self._mgr.get_ondisk_files? think i need to17:15
acolesclayg: oh, saying same thing :)17:15
claygwfm17:15
acolesand yes the writer gets a ref to diskfile now so thats where i was heading17:15
claygit's all so crazy17:15
mahatic_notmyname, I figure I need to extract the policy key in obj/server.py. But I am not sure where do I put that info and call that in recon.py. I was thinking I should implement a new method in recon.py (in Scout) to extract the policy key info from obj/server.py17:15
mahatic_does it make sense? :)17:16
claygit'll be nice to go back and clean this up seperate from trying to deliver the feature17:16
acolesclayg: i'll play with it and see how it falls out17:16
claygok, i'm going to get dressed and start my commute - acoles if you need to quit out i'd appreciate any thoughts you had on what I could do tonight to help carry things forward17:17
acolesclayg: you mean i have been talking to you undressed !! sure, wherever i get to i'll leave status on the gerrit review17:17
notmynamemahatic_: so you see how dmorita's patch return info for each policy? basically you'll need something like that for the other recon functions. and then you'll need to aggregate/report properly in cli/recon.py17:18
notmynamemahatic_: you caught me just in time. I was about to step out17:18
mahatic_notmyname, oh great :) So yeah I do see how it is returning policy info. But to have that info in cli/recon.py. I should first put in obj/server.py, correct?17:19
notmynamemahatic_: right. the object server would need to return it17:19
mahatic_notmyname, I mean I get server type from OPTIONS in object server. Similarly I could put this info any place and get it I believe17:20
notmynamemahatic_: but with --validate-servers, you aren't actually doing a /recon/... query. so there's nothing needed in the object server for that functionality17:20
notmynamemahatic_: the last part is an update to the recon cli to filter based on policy (like you can currently on region, zone, etc)17:21
mahatic_notmyname, right. I'm not doing any /recon/. But I need object server to send me policy key info (through init or any other function)17:22
notmynamemahatic_: so eg I could do `swift-recon -p banana --validate-servers` and check in the banana policy. or make it require the policy index. whatever is easier17:22
notmynamemahatic_: not for --validate-servers. all you need to do on that one is know which servers to query (right?)17:22
mahatic_notmyname, hmm and add the policy filter in recon cli itself?17:24
notmynameright. an operator wants to validate or check a certain subset of the cluster. right now it only loads in the legacy object ring and there's no way to specify any other ring.17:25
openstackgerritOpenStack Proposal Bot proposed openstack/swift: Updated from global requirements  https://review.openstack.org/8873617:26
mahatic_notmyname, but I need to fetch the policy info from somewhere right? I can't just add the filter "policy" and have it working I think17:26
notmynamemahatic_: so not every recon function needs to report stuff about policies. some do, but some, like --validate-servers, don't. but filtering the hosts you're querying in the cli by policy is an important piece of functionality17:26
*** jbonjean has quit IRC17:26
notmynamemahatic_: ya, it's in swift.conf17:26
mahatic_notmyname, ow okay17:27
notmynamemahatic_: maybe a super simple first step is just to allow the actual ring file to be passed in on the command line17:27
notmynameinstead of trying to parse the options to find one to load17:27
mahatic_notmyname, okay. and not like this :swift-recon  --validate-servers object-117:28
notmynameright now, recon takes the {account,container,object} parameter. if it's "object" it loads object.ring.gz. you could just allow it to take object-N to load object-N.ring.gz17:28
mahatic_sure17:28
notmyname:-)17:28
mahatic_so something like what I gave17:28
notmynameright17:28
mahatic_:)17:28
notmynamelooks like we're thinking in the same way17:28
mahatic_heh17:28
notmynamemahatic_: make sense? are you good?17:28
mahatic_notmyname, I think so. I'll get into that now. I'll post back since you gotta leave now17:29
notmynamemahatic_: great!17:30
mahatic_notmyname, thanks!17:30
notmynameI'll be back online in about 45 minutes17:30
mahatic_okay great. I'll try it out by then17:30
*** jordanP has quit IRC17:33
*** Gue______ has joined #openstack-swift17:38
*** lpabon has joined #openstack-swift17:39
*** reed has joined #openstack-swift17:42
*** joeljwright1 has joined #openstack-swift17:43
*** joeljwright has quit IRC17:45
ctennisso a container PUT to a container that already exists and returns a 202 response still triggers an account server update.  That seems unnecessary, thoughts?17:51
*** gyee has joined #openstack-swift17:55
*** jbonjean has joined #openstack-swift17:57
*** vinsh_ has joined #openstack-swift18:02
*** Gue______ has quit IRC18:02
*** vinsh has quit IRC18:05
*** aix has quit IRC18:06
torgomaticctennis: probably unnecessary, but darn nice for testing with18:08
torgomaticyou can PUT all your containers real quick, then go look at the account and see what the data looks like there18:08
*** zaitcev has joined #openstack-swift18:09
*** ChanServ sets mode: +v zaitcev18:09
torgomaticI mean, yes, I can go run swift-container-updater by hand a bunch, but I'm lazy18:09
ctennistorgomatic: in the sense where I'm seeing it, imagine someone who is trying to deterine if container exists by HEADing it, and then PUTting it if not.18:11
ctennistorgomatic: imagine a heavily loaded cluster where HEADs take long enough sometimes thye return 404s even though it does exist18:11
ctennistorgomatic: so they end up doing a lot of PUTs unnecesssarily18:11
ctennistorgomatic: which then bogs down this one single account db18:11
ctennisand by the way, those PUTs bog down additional HEADs18:12
torgomaticctennis: yeah, that app needs some help... the efficient way is to try an object PUT, and on 404, PUT the container18:12
ctennistorgomatic: good idea18:13
*** geaaru has quit IRC18:18
ctennisso torgomatic part of the issue is they are getting 404 on object PUT even though the container DOES exist18:27
ctennistorgomatic: looking at the cluster a little bit , ican find requests where the proxy is returning a 404 very quickly and the transaction ID doesn't exist in any of hte other logs18:27
ctenniswonder what condition would cause that18:28
ctennisis that info somehow cached in memcached?18:29
mahatic_notmyname, the hosts are currently filtered on region, port etc because it has those keys in devices dictionary (http://docs.openstack.org/developer/swift/overview_ring.html#list-of-devices) but there is no such thing as a policy to filter upon.18:30
torgomaticctennis: no idea18:30
claygacoles: oh don't get too excited - i was just in my pj's18:30
acolesclayg: i've calmed down now ;) just applying some more of the multi-frag stuff (ssync changes) on top of per policy, then i think i will push and hand over to you to apply the hash-suffix pieces18:31
claygacoles: sounds like a winning plan!18:33
*** mahatic_ has quit IRC18:35
*** welldannit has joined #openstack-swift18:35
claygtdasilva: so patch 164950 is out-of-date - are you working on the rebase or squash - or should I keep hacking on it?18:35
patchbotclayg: https://review.openstack.org/#/c/164950/18:35
claygtdasilva: I've got a few I think before acoles hands over the diskfile work (really hoping to get the multi-fi and hash square for you today peluse!)18:36
tdasilvaclayg: i'm working on rebase + pulling more common stuff18:36
tdasilvaI can send a new patchset now so you can see where i'm at...18:36
claygtdasilva: yeah push anytime failing tests w/e18:36
claygtdasilva: but it's no big deal - if you're making progress I've got another thing to work on - ignore me if it's a distraction18:37
tdasilvaclayg: was playing with _get_put_responses18:37
tdasilvathey look _almost_ identical18:37
tdasilvait's the _almost_ that makes things harder18:38
tdasilva:P18:38
claygyuanzz: I'm checking out the internal client string config thing - when I rubber duck'd it with peluse torgomatic and notmyname I came up with something that will be harder to describe as the worst hack evar18:38
claygtdasilva: *so close*18:38
*** cebruns has quit IRC18:39
*** cebruns has joined #openstack-swift18:39
*** welldannit has quit IRC18:41
*** welldannit has joined #openstack-swift18:41
ctennistorgomatic: I guess the point is that a 404 from an object PUT isn't a proven indicator that the container doesn't exist18:42
torgomaticctennis: it's an eventually-consistent system; all you ever get are semipredicates18:43
ctennistorgomatic: I smell a bug here18:46
claygctennis: well there is the one bug where if you shutdown your all your container servers instead of a nice 503 you get 404 on object PUT18:46
ctennisclayg: perhaps that's what's happening here then18:47
claygctennis: same would probably apply if all the container servers were mis-configed or 507'ing18:47
ctennisclayg: they are so overloaded they take way too long to respond18:47
*** mahatic has joined #openstack-swift18:47
ctennisclayg: when I do an object PUT, how does the proxy know if the container already exists or not?18:47
claygctennis: yeah that could be a thing then - i'm pretty sure we have an open bug for that18:47
claygctennis: every 30 seconds it'll do a "container existence check" - which is basically a HEAD on the container - which will do all the "dig into handoffs" dance to try and find one - but if it can't it returns like basically the equivilant of "None" - which the object controller thinks means 40418:48
ctennisclayg: and it keeps that info cached in memory?18:48
claygctennis: in memcache for 30 seconds by default18:49
ctennisI wonder if that's configurable18:49
claygctennis: there was this one time where we accidently kept it around a lot longer - but redbo fixed it18:49
claygctennis: yeah it is18:49
*** mahatic has joined #openstack-swift18:50
mahaticnotmyname, maybe I could add a 'policy' key for devices dictionary, in RingData?18:51
notmynamemahatic: the policy filtering is done on a per-ring basis. there's nothing needed inside the ring18:52
claygper policy *devices*!!!18:52
notmynamemahatic: a ring == a policy. so selecting a ring == selecting a policy18:52
claygtorgomatic: is going to kill us18:52
notmynameclayg: no!18:52
notmynamelol18:52
mahatic:D18:53
mahaticnotmyname, oh okay18:53
*** shri has joined #openstack-swift18:54
*** vinsh_ has quit IRC19:02
*** vinsh has joined #openstack-swift19:03
mahaticnotmyname, it almost already does that. I just need to allow self.check_types = ['account', 'container', 'object'] to have object-N, so maybe I could go ahead with the actual implementation instead of object-N as a first step19:04
mahaticnotmyname, So now the reporting should be -p policyname?19:05
openstackgerritAlistair Coles proposed openstack/swift: Per-policy DiskFile classes  https://review.openstack.org/16512519:06
openstackgerritAlistair Coles proposed openstack/swift: Add fragment index support to obj server and ssync  https://review.openstack.org/16518819:06
*** tacotuesday has quit IRC19:06
acolesclayg: ^^ over to you, think its the hash suffix stuff left to apply from the original multi-frag-index patch19:07
claygacoles: like to your knowledge you got the rest of it in there?19:07
acolesclayg: i've put the ssync and obj server changes in patch 165188 (dependent)19:07
patchbotacoles: https://review.openstack.org/#/c/165188/19:07
acolesclayg: 'to the best of my knowledge'19:08
notmynamemahatic: ya. if object-N is supported, I'm not as worried about a --policy switch19:08
acolesclayg: there are some changes in test_diskfile that i'm not sure are needed - duplicated by the new tests i put in there for HCL and GOF19:09
claygacoles: ok, that looks awesome19:09
mahaticnotmyname, oh okay. you mean just add a support object-N and --validate-servers is taken care of for diff policies. And I could move on to some other part of recon or something else?19:10
notmynamethat would be the minimum, I think19:11
acolesclayg: tbh its pretty hard to track, so i may have missed something - stuff I have NOT copied: changes in replicator.py, auditor etc, changes to invalidate_hash (but there's a hook in ECDiskFileWriter to add frag_index as a kwarg to invalidate_hash)19:11
acolesclayg: i got one other separate patch to apply over per-policy - change to the write_durable, think that is separable though19:12
mahaticnotmyname, do you have any suggestions for what's next?19:13
*** silor1 has joined #openstack-swift19:13
*** silor has quit IRC19:14
*** vinsh_ has joined #openstack-swift19:14
claygacoles: k, sounds good19:17
*** vinsh has quit IRC19:17
*** aix has joined #openstack-swift19:21
*** shri1 has joined #openstack-swift19:22
*** vinsh has joined #openstack-swift19:23
*** shri has quit IRC19:24
*** NM has joined #openstack-swift19:24
*** vinsh_ has quit IRC19:25
*** tsg_ has joined #openstack-swift19:32
*** tgohad has joined #openstack-swift19:36
*** tsg_ has quit IRC19:39
*** NM has left #openstack-swift19:40
*** kutija has joined #openstack-swift19:41
*** eranrom has joined #openstack-swift19:41
*** jkugel has joined #openstack-swift19:41
openstackgerritThiago da Silva proposed openstack/swift: Validate the PUT method extraction for EC  https://review.openstack.org/16495019:46
tdasilvaclayg: ^^^ not much here besides rebase. finding the same issues you mentioned in the commit msg regarding adopting the Putter class pattern in replica19:47
tdasilvaclayg: but I think we should hold off on doing that to not disturb replica code until after release, even if that means some duplicated code in the EC code19:48
claygtdasilva: i'm on the same page as you on that one!19:52
openstackgerritClay Gerrard proposed openstack/swift: Update contianer sync to use internal client  https://review.openstack.org/14379119:54
openstackgerritClay Gerrard proposed openstack/swift: Bypass paste.deploy's loadcontext to read a config from a string  https://review.openstack.org/16320919:54
*** setmason has joined #openstack-swift19:56
setmasonAnybody have a list of specific loadbalancer features that swift can take advantage of?19:58
setmasonI’m not looking for makes/models/brands19:58
torgomaticsetmason: eh, any old one will do, pretty much... the proxies are basically stateless, so just balancing load across them is really all Swift needs20:00
torgomaticthat and SSL termination20:00
torgomatic(if you don't want to use stud/tengine/whatever for that as a separate step)20:00
*** tsg_ has joined #openstack-swift20:01
*** tgohad has quit IRC20:02
*** lpabon has quit IRC20:02
*** fifieldt has quit IRC20:08
*** aix has quit IRC20:09
*** mahatic has quit IRC20:11
tdasilvaclayg: so if I'm understanding your plan correctly, it is probably worth updating patch 156825 with what we did in ec branch?20:12
patchbottdasilva: https://review.openstack.org/#/c/156825/20:12
claygtdasilva: the more we feel like that method extraction is working for ECObjectController the more we want to be able to diff the common changes of the Replicated object controller with master post PUT method extraction20:16
claygtdasilva: I definately think we need to update patch 156825 right ontop of master - but I also don't want to review and merge it until we think we're done refactoring the replicated PUT path20:16
patchbotclayg: https://review.openstack.org/#/c/156825/20:16
claygtdasilva: OTOH, if we think we're getting *close* it may be smart to start sooner than later given our timeline - just knowning that future improvements to PUT on feature/ec may require either additional replicated PUT path refactoring when we go to merge feature/ec - or updating the refactoring change on both feature/ec and master20:17
claygtdasilva: i'm open to your thoughts - if you think now is the time to look at the method refactoring on master - I'd encourage you to go for it!20:19
claygtdasilva: it's not like there's a risk it's going to get reviewed on master "too" quickly20:19
tdasilvaclayg: yeah...just trying to weigh all the options and considering our timeline20:20
claygand it may be informative to start to be able to git diff refactor-on-master validate-ec-put-method-extraction and see if we're achiving our goal of "minimal changes to replicated PUT path post refactoring"20:20
*** fifieldt has joined #openstack-swift20:21
claygtdasilva: I think i'd like to take another sweep at patch 164950 after your changes and see if there's anything else we can eek out to common20:21
patchbotclayg: https://review.openstack.org/#/c/164950/20:21
tdasilvaclayg: that's where I was about to start20:22
claygtdasilva: so it would acctually probably be very helpful if you could start to take the method signatures from patch 164561 as a starting point and try to get it up against master20:22
patchbotclayg: https://review.openstack.org/#/c/164561/20:22
claygit's going to need some additional tests for the master merge - so if you can get the code mostly beat into shape - I can help iterate on making it mergeable and sync in any last minute common code extractions I'm able to get out of a subsequent pass20:23
tdasilvayeah...I'm guessing even if there's more common code to extract, it should be a whole lot20:23
tdasilvaso we can update it again20:23
claygbut I also need to help acoles & peluse get the per-policy-diskfile with per-fi-suffix-hash tracking ready20:23
claygtdasilva: ok, sold!  You go do a bunch of extreamly helpful work and I'll sit back here and armchair quarterback.20:24
tdasilvalol20:24
claygi acctually have a meeting in 10mins20:24
tdasilvaalright...have fun20:24
clayg... in a *meeting*?  maybe redhat does things differently...20:25
*** aix has joined #openstack-swift20:25
openstackgerritThiago da Silva proposed openstack/swift: versioned writes middleware  https://review.openstack.org/13434720:29
*** eranrom has quit IRC20:29
tdasilvahe20:30
openstackgerritAlistair Coles proposed openstack/swift: Diskfile decides if durable is written based on policy  https://review.openstack.org/16520820:33
acolespeluse: clayg: ^^ thats mean done for today, last of my changes stacked onto per-policy router20:34
acoless/mean/me/ :/20:35
acolespeluse: clayg: let me know if there's stuff i can pick up on in (my) morning20:36
*** Bsony has quit IRC20:42
*** acoles is now known as acoles_away20:43
*** silor1 has quit IRC20:52
*** vinsh_ has joined #openstack-swift21:11
*** vinsh has quit IRC21:13
mattoliverauMorning21:14
*** bsdkurt has quit IRC21:16
*** vinsh_ has quit IRC21:18
dmsimardWhy would Swift be creating folders in 644 ?21:31
dmsimardI've added new nodes to an existing cluster21:31
dmsimardRing was rebalanced and distributed, replication is occuring but eventually seeing permission denied errors in the logs21:32
dmsimardLooking, I noticed Swift was creating folders in 644: http://paste.openstack.org/raw/192984/21:32
dmsimardHm, looks like it might be due to rsync config21:37
*** nellysmitt has quit IRC21:40
peluseacoles_away, fine work today man!21:40
*** nellysmitt has joined #openstack-swift21:41
*** nellysmitt has quit IRC21:46
zaitcevdmsimard: please share so we know what config to avoid21:49
dmsimardzaitcev: It looks like the culprit is this: https://github.com/puppetlabs/puppetlabs-rsync/blob/master/manifests/server/module.pp#L13-L1421:49
dmsimardThe puppet recipes end up setting an incoming chmod and outgoing chmod to 64421:49
dmsimardLooking at sample configs (ex: SAIO) it looks like this parameter is simply not set21:50
dmsimardI might be crazy, but testing it now..21:50
zaitcevV.curious21:51
zaitcevwait, did you change uid and gid at least? They are 0 in that puppet module, aren't they.21:52
dmsimardyeah21:52
zaitcevright, your paste with ls shows swift.swift21:53
dmsimardExcept we don't send a chmod to rsync: https://github.com/stackforge/puppet-swift/blob/master/manifests/storage/server.pp#L49-L5621:53
dmsimardTrying to understand what that directive does exactly .. don't want to blindly set incoming chmod to 755 so that even files will be in 755..21:56
*** jkugel has quit IRC21:56
*** ipolyzos has left #openstack-swift22:00
dmsimardyeah, looks like what I want is Du=rwx,g=rx,o=rx,Fu=rw,g=r,o=r (directory 755, file 644)22:03
*** welldannit has quit IRC22:05
*** vinsh has joined #openstack-swift22:10
*** jrichli has quit IRC22:26
openstackgerritThiago da Silva proposed openstack/swift: Refactoring the PUT method  https://review.openstack.org/15682522:35
claygtdasilva: nice is that the one against master?22:36
tdasilvaclayg: yep22:36
pelusesweet22:37
notmynametdasilva: who or what is marula kruger?22:37
peluseafter I crawl out from the under the reconstructor I'll look too22:37
tdasilvaclayg: thinking that we might still have a chance to get versioning and this refactor in main pre-ec, then it should be easy to merge your patch 16495022:37
patchbottdasilva: https://review.openstack.org/#/c/164950/22:37
tdasilvanotmyname: lol, just some dumb name22:38
tdasilvagotta step out for now but will be back later22:39
claygtdasilva: bah - you left the change on master depending on the object-versioning22:43
claygtdasilva: even if we can versioning in we should flip 'em IMHO22:43
peluseAAAAAAHHHHHHH!  All freaking day debuggin ECrecon revert - finally found the problem!22:50
*** reed has quit IRC22:53
*** setmason has quit IRC23:02
claygpeluse: whoot!23:02
claygnice work!23:02
pelusewell, its pretty embarrassing how long it took.  you'll laugh when I tell you the problem, man I need some more schooling :)23:03
*** Guest___ has joined #openstack-swift23:15
*** dmorita has quit IRC23:26
peluseclayg, there still?23:29
*** dmorita has joined #openstack-swift23:30
notmynamepeluse: he's not at his desk (but his computer is)23:40
*** nellysmitt has joined #openstack-swift23:42
pelusenotmyname, no prob.  it can wait til tomorrow23:42
openstackgerritpaul luse proposed openstack/swift: wip: ec probe test  https://review.openstack.org/16429123:45
*** nellysmitt has quit IRC23:47
*** tsg_ has quit IRC23:49
*** david-lyle is now known as david-lyle_afk23:50
*** joeljwright1 has quit IRC23:51

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