Monday, 2019-10-21

*** d34dh0r53 has quit IRC00:51
*** NM has joined #openstack-swift01:06
*** nanzha has joined #openstack-swift01:08
*** NM has quit IRC01:23
*** nanzha has quit IRC01:37
*** nanzha has joined #openstack-swift01:38
*** spsurya has joined #openstack-swift02:32
*** nanzha has quit IRC02:54
*** nanzha has joined #openstack-swift02:54
*** manuvakery has joined #openstack-swift05:02
*** hoonetorg has quit IRC05:37
*** hoonetorg has joined #openstack-swift05:48
*** ccamacho has joined #openstack-swift06:39
*** ianychoi has quit IRC06:51
*** ianychoi has joined #openstack-swift06:54
*** pcaruana has joined #openstack-swift07:16
*** tesseract has joined #openstack-swift07:22
*** rcernin has quit IRC07:32
*** rpittau|afk is now known as rpittau07:51
*** mikecmpbll has joined #openstack-swift07:52
*** e0ne has joined #openstack-swift08:00
*** hugokuo has quit IRC08:05
*** hugokuo has joined #openstack-swift08:05
*** nanzha has quit IRC08:23
*** nanzha has joined #openstack-swift08:25
*** nanzha has quit IRC08:53
*** nanzha has joined #openstack-swift09:06
*** openstackgerrit has quit IRC09:37
*** rcernin has joined #openstack-swift10:42
*** rcernin has quit IRC10:52
*** rcernin has joined #openstack-swift11:24
*** rcernin has quit IRC11:34
*** jistr is now known as jistr|mtgs11:47
*** nanzha has quit IRC11:48
*** nanzha has joined #openstack-swift11:54
*** openstackgerrit has joined #openstack-swift14:10
openstackgerritClay Gerrard proposed openstack/swift master: WIP: Allow internal clients to use reserved namespace  https://review.opendev.org/68213814:10
claygbinwiederhier: so in my understanding HTTP PUT doesn't support trailers - only GET14:18
claygHave you seen differently?  curl is pretty good at following the rules and rfcs - if you can get curl to send trailers with a PUT I'd happily re-evaluate my understanding14:18
claygnow HTTP/2 OTOH 😁14:19
*** ianychoi has quit IRC14:21
*** nanzha has quit IRC14:23
*** nanzha has joined #openstack-swift14:28
*** ianychoi has joined #openstack-swift14:29
timburkei think i'm with clayg -- request needs to include a `TE: trailers` header to indicate that the client supports parsing those extra fields15:03
timburkethat said, binwiederhier, you might be interested in our notion of "footers" -- there are some places in swift's code where we won't necessarily have all of the metadata for an object available when we first make the backend connections. this was originally done for EC, then generalized to replicated policies for encryption in https://github.com/openstack/swift/commit/03b762e15:07
timburkethat probably has the best example to crib from if you wanted to try it out: https://github.com/openstack/swift/blob/2.23.0/swift/common/middleware/crypto/encrypter.py#L97-L18115:08
timburkethe way it's currently implemented involves multipart MIME documents, which isn't great -- we've wanted to replace it with something better/actually-HTTP-compliant for a while; see https://review.opendev.org/#/c/427911/ -- but i don't expect the middleware API for it to materially change15:11
patchbotpatch 427911 - swift - Replace MIME with PUT+POST for EC and Encryption - 37 patch sets15:11
*** diablo_rojo has joined #openstack-swift15:22
*** ianychoi has quit IRC15:43
*** ianychoi has joined #openstack-swift15:44
claygbinwiederhier: Do you have a write up on what you're trying to do?  Is this a client packing multiple objects into a single payload (like a many backup software's do)?15:45
claygbinwiederhier: ... or something on the server side of swift that's somehow buffering clint requests to deliver packed payloads to the object layer which can later be dereferenced for individual object name requests?15:45
claygIf it's the later ... I'm so confused ... so many questions.15:46
*** e0ne has quit IRC15:58
*** tesseract has quit IRC16:03
*** jistr|mtgs is now known as jistr16:08
*** nanzha has quit IRC16:13
*** mikecmpbll has quit IRC16:35
*** spsurya has quit IRC16:40
openstackgerritClay Gerrard proposed openstack/swift master: WIP: Allow internal clients to use reserved namespace  https://review.opendev.org/68213816:53
ormandjthere any easy way to "undeleted" an account that had the v1/{account} DELETE call made?17:20
ormandjundelete, that is17:20
ormandjPOST only allows for updates/removal of custom metadata as far as i can tell17:20
ormandjand DELETE isn't even documented in the API docs: https://docs.openstack.org/api-ref/object-store/#accounts17:21
ormandjbut: https://docs.openstack.org/swift/stein/admin/objectstorage-account-reaper.html17:21
ormandjand i've validated for the account you see: X-Account-Status: Deleted17:21
openstackgerritThiago da Silva proposed openstack/swift master: WIP: New Object Versioning mode  https://review.opendev.org/68238217:21
ormandjand get a 410 gone when you query the account url w/ a valid token17:21
ormandjwe're trying to figure out the best way to reverse this short of hunting down the sqlite dbs and manually editing them17:22
tdasilvaormandj: maybe this is helpful? https://review.opendev.org/#/c/507808/17:27
patchbotpatch 507808 - swift - Add ability to undelete an account. - 24 patch sets17:27
*** nanzha has joined #openstack-swift17:27
tdasilvai've honestly not looked at that patch yet, but your question reminded me of it17:27
*** nanzha has quit IRC17:33
*** ccamacho has quit IRC17:40
ormandjwell, we need it today, but the patch may have the answers i need17:41
ormandjlet me look now, thank you17:41
ormandjlooks like there's a runbook doc https://github.com/openstack/swift/blob/master/doc/source/ops_runbook/procedures.rst#procedure-revive-a-deleted-account17:47
timburkeormandj, if you haven't already, i'd strongly consider increasing delay_reaping (and possibly stopping the account-reapers all together) while you sort this out ;-) https://github.com/openstack/swift/blob/master/etc/account-server.conf-sample#L245-L25217:51
ormandjtimburke:  we've already got that set to 14 days18:02
ormandjdelay_reaping that is18:02
ormandjthe problem is, it sounds like the re-enable process doesn't allow visibility into the old data18:02
timburke👍18:02
ormandjso i'm not sure how useful this reaping thing in general is, since even if it's prior to the delay reaping value, you can't gain access to the old data short of raw FS level on the storage nodes18:03
ormandjie: there's no way to "oops my bad" from the customer give them access back to their data18:03
ormandjthe documented process involves deleting the account dbs and recreating them, which orphans all the old data, with no way to recover it18:03
timburkehmm... the run-book sounds like it could cause dark data...18:04
timburkeyeah, what you said ;-)18:04
ormandjyeah... and i'm also unclear on how we're supposed to ever provide the data for the customer within that window18:04
ormandjprior to the actual reaping18:05
timburkebetter would be to keep the account DB intact but fix it up so it's no longer marked deleted -- something much more like the patch tdasilva linked18:05
ormandjgo sqlite munge the account dbs manually if possible, perhaps, figuring out how to reverse whatever the delete would be18:05
ormandjhah yeah, gmta18:05
timburkei *think* you should only need to do it on one DB -- replication should get it propagated to the others18:06
timburkethe core of it is really this part: https://review.opendev.org/#/c/507808/24/swift/account/backend.py18:07
patchbotpatch 507808 - swift - Add ability to undelete an account. - 24 patch sets18:07
ormandjhmm, sounds good. replication work on most recently updated?18:08
ormandjso i can pick any of the replicas,18:08
timburkeyup -- replication uses some combination of that put_timestamp and status_changed_at timestamp to figure out which replica should "win"18:10
ormandjsweet, thanks tim18:14
*** e0ne has joined #openstack-swift18:15
ormandjnow i need to figure out how to +1 the priority for our sanity on that undelete function haha18:16
ormandjanyone in/around the SAT area, free burgers and beer for helping to get that merged ;)18:17
*** nanzha has joined #openstack-swift18:32
ormandjalright, so went through the whole dance, it did replicate, but the account still shows as deleted - wondering if i have to bounce swift on storage nodes after that db file is updated?18:33
ormandjmanual select show status is now "" in the account db18:35
ormandjnm - looks like it just took some time18:36
*** nanzha has quit IRC18:37
*** e0ne has quit IRC18:38
claygormandj: nice!18:40
ormandjyeah, didn't replicate like i expected18:41
ormandjthe db files got updated, timestamp matches on all18:41
ormandj(filesystem level)18:41
ormandjbut the 02/03 nodes still have DELETED in the account_stat18:41
claygoic, so it's... not working 😞18:42
ormandjsorta. not really sure how the replication works, might be an interval i need to wait18:42
ormandj(for account dbs)18:42
ormandji just sqlite3'd one of the db files on one of the storage nodes18:43
claygI think most latest swifts would allow swift-account-replicator to be called in the forground with a -d and -p flags to "aim" it at the db you want to hit18:43
ormandjwe're stein, so i can try18:43
ormandjwe haven't quite yet gone to train, but we'll do so once we have time to validate things18:44
claygoh if you're just looking at the fields in the status table that may not really mean it's still "deleted" - like tim said - really it comes down to the timestamps18:44
ormandjwell, it 404s when i head the account and gives deleted status18:44
ormandjand looking at the backend.py code18:44
ormandjthat field is what it uses to check for deleted status18:44
ormandjif i HEAD the account on the server i did the sqlite3 munge, it works fine18:44
*** e0ne has joined #openstack-swift18:45
ormandjthe other two that should replicate from it, 404/deleted status in the HEAD results18:45
ormandjcomparing the two sqlite3 dbs, one the one i updated and the one i did not, put_timestamp is the same18:47
ormandjthe only difference is status = "" on the one i munged myself, and it's DELETED on the other18:47
ormandjso it replicated... but not the status18:47
ormandjclayg:  did another test, re-updated with new timestamps, it replicated the timestamps across almost immediately, but not status19:01
openstackgerritClay Gerrard proposed openstack/swift master: WIP: Allow internal clients to use reserved namespace  https://review.opendev.org/68213819:01
claygok, so maybe that's one of the issues addressed in the patch - to repliate the status field properly19:02
claygso it absolutely really would be useful to get it merged19:03
claygdo you have a swift-all-in-one environment - or would you be willing to try something like vsaio to pull down the purposed change, exercise it functionally, and provide operational feedback?19:03
claygit would go a long way to moving it closer to merged!19:03
claygmaybe we should do TX based hack-a-thon or meetup to focus on this or some other patches we want to get merged ?19:04
timburkeneeds to get fixed first ;-) the patch *does not* seem to do anything about replicating status....19:08
timburkelooking at it a bit, there are a few other issues, too -- i'll try to get another patchset up today, but there may be more work required than what i can get to right now19:09
timburke"maybe we should do TX based hack-a-thon" as long as there's a dinner at Salt Lick, i'm in :D19:10
ormandjwe do have a development environment we can test with, if needed19:14
ormandjbut we need to fix this for someone today, so i'm going to go the manual route19:14
ormandji'll go sqlite update all three locations19:14
ormandjlooks like i just need to get status in sync and then we're ok19:15
*** gyee has joined #openstack-swift19:29
ormandjyeah, manually updating all status fields in the three account dbs seemed to work19:37
*** diablo_rojo has quit IRC20:00
claygormandj: awesome!  sounds like you have a better idea of how to build swift functionality that works than that patch authors - i'd love to capture your findings in a a review of that patch20:06
claygthey've been pretty responsive to re-spin - if you could help them make it work that would get 90% of the way to merged!20:07
*** pcaruana has quit IRC20:16
timburkehmm... https://github.com/openstack/swift/blob/2.23.0/swift/account/backend.py#L269-L277 vs https://github.com/openstack/swift/blob/2.23.0/swift/container/backend.py#L781-L79220:16
*** diablo_rojo has joined #openstack-swift20:16
timburkei kinda feel like status ought to be an emergent behavior based on the relative values of put_timestamp and delete_timestamp ...20:16
claygflake8's W503 and W504 seem a bit ... at odds 😡20:19
ormandjclayg: i can sanitize my crib-notes on what i had to do to make this work for you if that's what you're looking for?20:22
ormandj(manually, in my case)20:22
claygthat would be amazingly helpful!20:22
claygthe "extra mile" would be referencing them as a comment on that review in gerrit - if you were feeling like... being a superhero today20:23
claygbut no pressure!20:23
ormandji'm 100% a super villain every day, but i'm happy to help my selfish desire for this to work on my path to world domination with a comment. :) just might not be today... have other worlds to conquer first20:24
openstackgerritTim Burke proposed openstack/swift master: WIP: Allow internal clients to use reserved namespace  https://review.opendev.org/68213820:25
claygtimburke: so technically at this point that should probably have been get_reserved_name('abc', 'def')20:26
timburkei feel strongly that `'%s' % b'x'` should produce a TypeError, not "b'x'" 😡20:27
claygtdasilva: FWIW the rebase is looking super easy!  the way you developed that context class makes it *so* easy to plugin the refactor to use the reserved namespace20:27
timburkeif i *wanted* a repr(), i would'a used a %r!20:27
clayg@timburke srly, come ON python3 like '%r' % b'x' - SURE - but str?  no... just no20:28
clayghahha, exactly 👍20:28
timburkeat *least* gimme a warning that i can treat as an error -- new python complains 'SyntaxWarning: "is" with a literal. Did you mean "=="?' when you type `1 is 1` -- this should be easy20:30
timburkehuh. we never use that status column in the container, do we?20:36
timburkeif anybody's got time to spot-check me on https://review.opendev.org/#/c/689567/ i'd much appreciate it. i'm pretty sure it's the sort of thing that ought to get backported (the container can become unusable!) but the fix and its follow-ups get a little hairy -- i maybe shoulda pushed to have them all land as a unit :-/20:41
patchbotpatch 689567 - swift (stable/stein) - Sharding: Clean up old CleaveConext's during audit - 1 patch set20:41
timburkethen i hope to push up a 2.21.1 changelog patch shortly, and start some backports for rocky...20:43
ormandjclayg:  to be clear, i was doing everything manually - i had not pulled down just that patchset and tested. hopefully that part was not missed20:43
ormandji was using sqlite3 to do the db edits by hand20:43
timburke(ultimate goal is to get a 2.17.2 for queens before it goes extended-maintenance and we can't tag any more)20:44
*** e0ne has quit IRC21:13
openstackgerritTim Burke proposed openstack/swift stable/rocky: Verify client input for v4 signatures  https://review.opendev.org/68988321:59
*** e0ne has joined #openstack-swift22:01
openstackgerritTim Burke proposed openstack/swift stable/rocky: s3api: Block ETag header from CompleteMultipartUpload requests  https://review.opendev.org/68988522:06
*** openstackgerrit has quit IRC22:07
*** openstackgerrit has joined #openstack-swift22:09
openstackgerritTim Burke proposed openstack/swift stable/rocky: s3api: Increase max body size for Delete Multiple Objects requests  https://review.opendev.org/68988722:09
openstackgerritTim Burke proposed openstack/swift stable/rocky: Unquote URL before using splited parts.  https://review.opendev.org/68988822:11
*** e0ne has quit IRC22:16
*** nanzha has joined #openstack-swift22:18
*** e0ne has joined #openstack-swift22:18
openstackgerritTim Burke proposed openstack/swift stable/rocky: fix documentation of default  https://review.opendev.org/68988922:21
mattoliveraumorning22:22
*** nanzha has quit IRC22:23
*** ianychoi has quit IRC23:00
*** ianychoi has joined #openstack-swift23:00
*** rcernin has joined #openstack-swift23:19
*** rcernin has quit IRC23:19
*** rcernin has joined #openstack-swift23:20
*** ianychoi has quit IRC23:24
*** ianychoi has joined #openstack-swift23:26
*** e0ne has quit IRC23:58
*** e0ne has joined #openstack-swift23:59
*** e0ne has quit IRC23:59

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