Saturday, 2014-03-22

*** saschpe has quit IRC00:00
openstackgerritA change was merged to openstack/swift: Fix unit tests.  https://review.openstack.org/8220700:06
openstackgerritA change was merged to openstack/swift: Put X-Timestamp in object 404 responses  https://review.openstack.org/8072900:06
*** saschpe has joined #openstack-swift00:07
openstackgerritA change was merged to openstack/swift: Block X-Backend* in gatekeeper  https://review.openstack.org/8196400:17
*** gyee has quit IRC00:19
*** sungju_ has joined #openstack-swift00:26
openstackgerritJenkins proposed a change to openstack/swift: Updated from global requirements  https://review.openstack.org/8120700:27
*** shri has quit IRC00:36
*** piousbox has quit IRC00:42
openstackgerritMatthew Treinish proposed a change to openstack/swift: Add sitepackages flag to tox.ini  https://review.openstack.org/8222800:51
*** piousbox has joined #openstack-swift00:54
*** jasondotstar has joined #openstack-swift00:57
*** sungju_ has quit IRC01:01
zaitcevportante: https://gist.github.com/zaitcev/969956101:02
*** piousbox has quit IRC01:07
* portante looks01:20
portantenice, clayg, notmyname, others ^^^01:22
*** sungju_ has joined #openstack-swift01:23
*** sungju_ has quit IRC01:25
zaitcevmaybe make it narrower01:42
*** sungju_ has joined #openstack-swift01:45
*** sungju_ has quit IRC01:45
claygzaitcev: portante: yes - so nice01:56
zaitcevclayg: Not sure if it makes apparent how the surface of the API expands into the body of the server, sweeping some of the sordid details of checking if this exists and that exists.01:57
claygwell... how does GET for example raise 404?01:58
zaitcevclayg: In the same time, since auditors/replicators require the old Broker to be kept, the implementation currently is stratified01:58
zaitcevclayg: I can tell without looking at the code - get_info returns None (I hope)01:59
claygwell either way this gist is very helpful - did portante do that or did you put it together02:00
zaitcevI did02:00
claygwell thank you02:00
zaitcevPeter pointed out that most likely we still have a bunch of races like the one you fixed. If we divorce the Backend from assumption that DB is a file which can be checked for existence etc., then we should be able to proceed with some sort of transactional bracketing02:02
zaitcevwithout changing API further02:02
zaitcevhmm. Looking at the text file anew, it seems unobvious why we had to un-roll _deleted_response.02:04
openstackgerritClay Gerrard proposed a change to openstack/swift: Container Confict on obj update with wrong Storage-Policy-Index  https://review.openstack.org/7973102:08
*** fifieldt has joined #openstack-swift02:16
creihthttps://leastauthority.com/blog/BLAKE2-harder-better-faster-stronger-than-MD5.html02:21
Alex_GaynorBLAKE2 is pretty awesome02:22
creihtAlex_Gaynor: yeah I know, zooko has been pushing it for a while02:24
creihtand I have a lot of respect for zooko02:24
creihtjust something to keep in the back of our minds if we decide to move from the default md5 that we do02:24
creihtif/when02:25
portantenice02:25
Alex_Gaynorcreiht: Do you know to what extent the hashing of the account/container/objectname is a perforamnce issue? I know the marconi folks found md5 to be too slow for their needs, but I think they were aiming for much tighter performance02:26
claygAlex_Gaynor: do you know off-hand what they went with?02:27
creihtAlex_Gaynor: in the grand scheme of things not a huge deal02:27
creihtwe did a lot of benchmarking at the beginning02:27
creihtmd5 won out mostly because it was well known and ubiquitous02:28
Alex_Gaynorclayg: Nope, I could have sworn they went with something less conventional, but I don't see any cool things in their requirements.txt02:28
creihtI *think* all of the faster options we looked at were not cryptographic hashes, so easy to get collisions02:29
creihtbeen a while02:29
* Alex_Gaynor goes to search the abanndoned changes to requirements02:30
hugokuoclayg: https://github.com/swiftstack/keystone_install  ... You may want to change the reseller_prefix in the script from SWIFTSTACK_ to KEY_ or something else02:30
clayghugokuo: werd02:30
*** saschpe has quit IRC02:30
Alex_Gaynorwaaa, looks like they're using crc3202:30
Alex_GaynorThere was a proposal to use murmurhash02:31
creihtwe played with murmur02:31
Alex_Gaynortbh, if I was doing this from scratch I'd probably use siphash02:31
Alex_GaynorYou're mapping to way fewer slots than 2**64, so the extra output bits aren't valuable02:31
*** saschpe has joined #openstack-swift02:31
Alex_Gaynor(https://131002.net/siphash/)02:32
creihtAlex_Gaynor: I think we have had requests to do ring sizes that are greater than 32bits02:32
Alex_Gaynorsiphash is a 64-bit output02:32
creihtahh02:32
creihtwell another one to put in the back of the mind02:33
creiht:)02:33
Alex_Gaynoryeah, blake2 for file contents and siphash would be the things to think about I guess02:33
creihtImplementations of SipHash are available in C, C#, Cryptol, D, Erlang, Go, Haskell, Java, Javascript, Lisp, Ruby, Rust, and PHP.02:33
Alex_GaynorFor some future wher we all have tons of free time02:33
creihtthere is not python on that list02:33
creiht:(02:33
Alex_GaynorThere's python bindings to the C implementation02:33
creihtahh02:33
creihtAlex_Gaynor: From a UX perspective though, it is hard to go with something besides md502:35
creihtfor file contents02:35
Alex_GaynorYou mean because it requires extra packages?02:35
Alex_GaynorSpecificalyl on clients as well02:35
creihtyeah02:35
Alex_GaynorYeah.02:35
creihtand you can md5sum on the commandline02:36
* Alex_Gaynor looks forward to a future where we all have free time and access to neat crypto02:37
creihtheh02:37
clarkbsha1?02:37
creihtI have free time, but that is mostly occupied by kids and a 3dprinter02:37
creihtclarkb: sha1 has similar issues as md502:38
clarkbcreiht: not entirely02:38
clarkbthere are no arbitrary collision methods02:38
Alex_GaynorIt's also slower.02:38
creihtclarkb: well I should specify, it is assumed in most circles it is only a short matter of time before sha1 is in the same boat as md502:38
Alex_GaynorPlus, SHA has the problem of naming conceit. With a name like "Secure Hash Algorithm", youv'e tempted the fates.02:39
creihtIf we change to something, I would like to make sure it is a bit more future proof, and has other advantages (like being faster)02:39
clarkbAlex_Gaynor: heh02:39
creihthaha02:40
clarkbcreiht: thats fair02:40
clarkbbut on the ubuquitous bit sha1 is the next best bet from md502:40
clarkband it doesn't have the md5 problems02:40
clarkbnot yet at least02:40
portantehas anybody compared an md5 python implementation to siphash or blake1?02:40
creihtwhen we first implemented swift, md5 was in a very similar boat as sha1 is now02:40
creihtportante: no02:40
Alex_Gaynorportante: As in, pure python, or bindings to some C impl?02:41
creihtI think md5 is still fine as we use it now, but that window continues to close02:41
portanteany comparison to get some more sense of what ballparks they play in other than somebody says blake1 is faster02:41
clarkbcreiht: Alex_Gaynor if you want command line tools and cryptographic usefulness today sha1 isn't terrible02:42
clarkbmd5 is02:42
portantedo you mean somebody can construct an attack on a swift cluster?02:42
creihtportante: not currently02:42
creihtit would require a preimage attack on a source that is not in your control02:44
creihtin a very small space of bytes02:46
creihtbut anyways, at some point users are going to start requesting to use a stronger hash as time goes on02:48
* portante has nothing in his control anyways ;)02:49
creihtheh02:49
creihtthe worst attack vector would be for someone to craft a valid url that hashes to another user's object02:50
portantebut that just sounds like a collision attack02:50
Alex_GaynorPreimage attack, they can't control what the other person's object is.02:50
Alex_GaynorThere's also the potential for a DoS against the service provider, that really does just require collisions.02:50
creihtyeah that's where the idea of a preimage attack comes in02:51
creihteven if someone was able to do that, we have a check that validates the account with the account in the metadata of the object02:52
creihtjust in case that were to happen some day02:52
Alex_GaynorIt's not clear that impersonating another object is a possible thing. DoS definitely is. Including DoS against a particular object (with preimage attack)02:52
creihtand yes the other potential is that an attack is able to create collisions that say put a ton of files on the same partition to fill up a hard drive02:53
portantebut wouldn't the attacker have to have additional information about the swift cluster to do that?02:53
creihtyes02:54
creihtbut that info can leak02:54
portantebut we have gatekeeper!02:54
creihtlol02:54
portante;)02:54
creihtas in a bad employee takes it with them02:54
portanteah yes02:54
creihtthe upside is that bandwidth is limited02:55
*** sriram has joined #openstack-swift02:55
portanteyes02:55
creihtit would also be very apparent02:56
creihtwhy is this one drive so statistically out of bounds in size?02:56
portanteso for large object case that might be easier to see just by considering the logs02:57
portantebut for small files, does that become much harder to detect?02:57
Alex_GaynorWell there's DoS against teh disk space, and DoS against machine itself.02:58
portantetrue02:59
creihtportante: either way it should be detectable03:00
*** sriram has quit IRC03:00
creihtstart looking at the partition03:00
creihtnoticing it has a statistically larger number of objects than it is supposed to03:00
Alex_GaynorAre people actually monitoring for this?03:01
portanteperhaps the object auditor should construct reports on what it finds oriented towards that03:01
portanteif it does not already03:01
* portante does not remember03:01
creihtAlex_Gaynor: we certainly watch statistics for stuff03:01
creihtif things are are statistically out of whack we start investigating03:01
creihtit would likely be easier to DOS an entire cluster than try stuff like that03:03
claygwe track drive fullness as proxy - i don't think we watch number of objects03:04
creihtwe don't directly watch number of objects03:04
claygportante: the auditor could definately throw something in recon03:04
claygpandemicsyn: ^03:04
portantesince it is already crawling in the attic ...03:05
creihtI should do a summit talk sometimes about the interesting ways that a user can use your swift cluster03:08
creiht:)03:08
portantegreat, but can you charge a few thousand to attend?03:09
portante;)03:09
creihthaha03:09
creihtwell the talk would quickly turn into things like03:09
creihtand this is why you turn on ratelimiting03:09
creihtetc.03:09
creiht:)03:09
portanteyes03:10
creihtor why we implemented certain features03:10
creihtor why you *can't* do some things in swift :)03:10
*** Longgeek_ has joined #openstack-swift03:16
*** Longgeek_ has quit IRC03:38
*** RockKuo has joined #openstack-swift04:12
openstackgerritClay Gerrard proposed a change to openstack/swift: Add Storage Policy Support to Account HEAD  https://review.openstack.org/7374704:31
madhuri_clayg: there04:37
madhuri_?04:37
claygbbiab - fwiw I didn't get a change to look at your branch today - but it's on my radar!  If you have any questions fire away and I'll answer when I get a chance...04:38
madhuri_I was just asking you fo that only.04:43
*** jasondotstar has quit IRC04:53
claygmadhuri_: I'm not worried about the ring thing - but you could go ahead and import optparse and make it an option if you're worried about gerry's comment.05:05
claygmadhuri_: why do you have that guard on the value for the container sync stuff - why not just display the -105:05
madhuri_clayg: for the container sync stuff, I thought printing default value doesn't worth05:08
clayghrmm... maybe05:09
claygI guess it depends on if you're running container-sync or not05:09
madhuri_clayg: And about gerry's comment, last night I tried releasing the fix05:09
claygI appreciated the reported_put_timestamp stuff - and the 1970 "default" is useful to know that the container-updater hasn't run yet05:10
madhuri_clayg: But hang up beacuse of some git error :)05:10
clayglol05:10
madhuri_Ok. I will remove the guard on the value for the container sync05:10
claygoh idk, i was just asking05:11
madhuri_Gerry's comment was only for the path i.e. /etc/swift. Right?05:11
claygyeah in the server's configs they just specify "swift_dir"05:12
clayg/etc/swift is the default - you can't *really* change it because of /etc/swift/swift.conf and the hash_prefix biz05:12
claygi don't think anyone really cares05:12
madhuri_Yeah I saw it but I thought better option will be passing command line argument05:12
claygsure05:12
claygoptional05:12
clayglike i said you can't really have a swift that doesn't home /etc/swift/swift.conf in /etc/swift so I think most people go ahead and put their rings in there too05:13
claygplus if the ring is missing all you do is don't print the ring locations - right?05:14
claygno bigz...05:14
claygI'm sorta thinking the 'hash' value returned from get_info should really call itself chexor - most pople know it by the name of the function that calculates it05:15
claygI honestly didn't recognize it cause I'm used to seeing "Object Hash" come out of swift-object-info and I thought it was telling me the salted md5 of the container path - so I freaked out it was all zeros - then I was like... oh yeah - that.05:15
madhuri_Yeah. Better not printing the ring location05:16
claygI had forgotten that swift-object-info even did that - I always just use swift-get-nodes for that job05:16
clayganyway - i like it!05:16
madhuri_Ok. Should I rename it?05:16
clayghow come it doesn't print X-Container-Read/Write - they should be metadata somewhere?  But I don't think they start with x-container-meta05:17
claygI would bet other folks would like it... I'm just talking about in the display name - there's not a good case in renaming it in the db05:17
madhuri_get_info method doesnot return it05:17
madhuri_Yeah me too talking about the display name05:18
claygbut to the layman or ops or someone like me who just forgot what that key was really called in the db - having it display as the 'hash' key as "Chexor" on the commandline would prevent anyone from confusing it with the hashed container path05:18
claygI'll comment on the diff - it looks great - thanks for doing that.05:18
madhuri_Ok. I will do that05:18
*** zaitcev has quit IRC05:18
madhuri_My pleasure :)05:18
madhuri_Right now writing swift-account-info :)05:19
madhuri_X-Container-Read/Write, I will look for it and add it if I get something05:19
*** saju_m has joined #openstack-swift06:08
openstackgerritMadhuri Kumari proposed a change to openstack/swift: Added swift-container-info tool.  https://review.openstack.org/8196807:55
*** mlipchuk has joined #openstack-swift08:03
openstackgerritClay Gerrard proposed a change to openstack/swift: Add Storage Policy Support to Account HEAD  https://review.openstack.org/7374708:21
*** jasondotstar has joined #openstack-swift08:56
*** mmcardle has joined #openstack-swift09:33
*** d89 has joined #openstack-swift09:56
*** jamie_h has joined #openstack-swift10:38
*** jasondotstar has quit IRC10:44
*** mkollaro has joined #openstack-swift11:16
*** Trixboxer has joined #openstack-swift11:26
*** mkollaro has quit IRC11:31
*** jasondotstar has joined #openstack-swift11:48
openstackgerritMadhuri Kumari proposed a change to openstack/swift: Added swift-container-info tool.  https://review.openstack.org/8196812:00
*** saju_m has quit IRC12:03
*** jamie_h has quit IRC12:04
*** mmcardle has quit IRC12:49
*** Longgeek_ has joined #openstack-swift12:55
*** Longgeek_ has quit IRC12:56
*** Midnightmyth has joined #openstack-swift12:57
*** mmcardle has joined #openstack-swift12:59
openstackgerritMadhuri Kumari proposed a change to openstack/swift: Added swift-account-info tool.  https://review.openstack.org/8229613:04
openstackgerritpaul luse proposed a change to openstack/swift: Add Storage Policy Support to Account HEAD  https://review.openstack.org/7374713:05
openstackgerritpaul luse proposed a change to openstack/swift: Container Confict on obj update with wrong Storage-Policy-Index  https://review.openstack.org/7973113:05
*** mkollaro has joined #openstack-swift13:12
*** Longgeek_ has joined #openstack-swift13:29
*** Longgeek_ has quit IRC13:37
*** mkollaro has quit IRC14:00
*** taras_ has quit IRC14:01
*** mkerrin has quit IRC14:01
*** Alex_Gaynor has quit IRC14:01
*** wayneeseguin has quit IRC14:01
*** fbo_away has quit IRC14:01
*** jeblair has quit IRC14:01
*** acorwin has quit IRC14:01
*** redbo has quit IRC14:01
*** notmyname has quit IRC14:01
*** MooingLemur has quit IRC14:01
*** rahmu has quit IRC14:01
*** torgomatic has quit IRC14:01
*** minnear has quit IRC14:01
*** glange has quit IRC14:01
*** flashgordon has quit IRC14:01
*** hugokuo has quit IRC14:01
*** ctennis has quit IRC14:01
*** anderstj has quit IRC14:01
*** alpha_ori has quit IRC14:01
*** ryao has quit IRC14:01
*** anticw has quit IRC14:01
*** dfg has quit IRC14:01
*** mordred has quit IRC14:01
*** kragniz has quit IRC14:01
*** flashgordon has joined #openstack-swift14:01
*** anticw has joined #openstack-swift14:01
*** torgomatic has joined #openstack-swift14:01
*** ChanServ sets mode: +v torgomatic14:01
*** redbo has joined #openstack-swift14:01
*** ChanServ sets mode: +v redbo14:01
*** wayneeseguin has joined #openstack-swift14:01
*** notmyname has joined #openstack-swift14:01
*** MooingLemur has joined #openstack-swift14:01
*** minnear has joined #openstack-swift14:01
*** glange has joined #openstack-swift14:01
*** ChanServ sets mode: +v glange14:01
*** rahmu has joined #openstack-swift14:01
*** Alex_Gaynor has joined #openstack-swift14:02
*** dfg has joined #openstack-swift14:02
*** ryao has joined #openstack-swift14:02
*** jeblair has joined #openstack-swift14:02
*** mordred has joined #openstack-swift14:02
*** mkerrin has joined #openstack-swift14:02
*** ctennis has joined #openstack-swift14:02
*** fbo_away has joined #openstack-swift14:02
*** fbo_away is now known as fbo14:02
*** anderstj has joined #openstack-swift14:03
*** alpha_ori has joined #openstack-swift14:04
*** hugokuo has joined #openstack-swift14:04
*** acorwin has joined #openstack-swift14:05
*** taras_ has joined #openstack-swift14:06
*** kragniz has joined #openstack-swift14:06
*** saurabh_ has quit IRC14:16
*** saurabh_ has joined #openstack-swift14:16
*** saurabh_ has joined #openstack-swift14:16
*** seandrummond has joined #openstack-swift14:37
*** mmcardle has quit IRC15:37
*** mmcardle has joined #openstack-swift15:37
*** seandrummond has quit IRC15:39
*** mmcardle has quit IRC16:10
*** RockKuo has quit IRC16:37
*** haomaiw__ has quit IRC16:45
*** haomaiwang has joined #openstack-swift16:45
*** jasondotstar has quit IRC16:52
*** torgomatic has quit IRC17:01
*** seandrummond has joined #openstack-swift17:50
*** seandrummond has quit IRC17:52
*** mkollaro has joined #openstack-swift18:03
*** PradeepChandani_ has quit IRC18:19
*** krtaylor has quit IRC18:20
*** Trixboxer has quit IRC20:28
*** seandrummond has joined #openstack-swift20:29
*** anticw has quit IRC20:34
*** seandrummond has quit IRC20:40
*** ctennis has quit IRC20:52
*** ctennis has joined #openstack-swift20:52
*** seandrummond has joined #openstack-swift21:41
*** seandrummond has quit IRC22:10
*** krtaylor has joined #openstack-swift23:27
*** mkollaro has quit IRC23:28

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