Monday, 2019-12-16

mattoliveraudonnyd: now are you determining the list of stale entries? Ie things that are in the queue however the objects don't exist anymore in the cluster? or objects that aren't being deleted?00:12
mattoliverauis this using the legacy queue? I assume so because you say you have only 2 object expirers.00:13
mattoliverauwhat are their `processes` and process settings? I assum both have something like 'processes = 2' and then one has a `process = 0` and another `process = 1` ?00:14
seongsoochomorning ~00:15
mattoliverauI guess the other question is, what version of Swift? If it's one with the general task queue (new method) everytime you add a new expiration it'll be added to the general task queue which I think assumes you have an object expirer running on each object server (because the work is split by everyone to better scale).00:16
mattoliverauWhich is why I ask.. what do we mean by scale. No stress though we can work our way through it.. also probably so go see what/if anything has changed on the expirer side, as I haven't looked at that code in a while :)00:17
mattoliverauseongsoocho: morning00:17
*** gregwork has quit IRC01:05
donnydVersion is Stein01:09
donnydI only have two nodes01:09
tdasilvadonnyd: where/how did you get those stats?01:15
tdasilvajust curious, i haven't looked at expirer in a while either so i'm just trying to understand what stale means in this case01:16
DHEpresumably a file that's expired but not actually deleted from disk yet...01:27
tdasilvafound it: https://gist.github.com/clayg/7f66eab2a61c77869e1e84ac4ed6f1df01:33
donnydOh yes it was shared on here to check stats of the expirer01:47
donnydThat is the one tdasilva01:49
donnydmattoliverau: you are correct on the processor/ process setting01:51
donnydDHE: yes that is what I am trying to clean up before I put FN log storage back online. Also been super helpful to learn how to swift a bit better01:52
tdasilvaok, IIUC, stale are objects that expired more than 24 hours ago, while pending just expired. Ideally stale should be close 0 while having pending should be fine. In your case all your objects are stale (that's because you are not getting new objects being written to the cluster, correct?). I guess the question is, are you seeing that number go down?01:53
donnydtdasilva: that is correct, there are no new objects01:53
tdasilvawhat is your reclaim_age set to? I'm guessing those objects stale objects are also past their reclaim age01:54
donnydThe numbers that were in pending were removed which were about 4 million01:54
donnydIt is set back to the default01:54
donnydDo I need to change the reclaim age to a much larger number?01:55
donnyd84600 iirc01:55
donnydI need to go back to like August or so01:55
donnydLol01:56
tdasilvadefault is 7 days ( 604800 )01:57
tdasilvado you have any lines like this in your logs: "Unexpected response while deleting object" ?01:58
donnydI get a bunch of 404's01:59
donnyd"DELETE /sdf/930/AUTH_e8fd161dc34c421a979a9e6421f823e9/zuul_opendev_logs_7fa/679944/2/check/openstack-tox-functional-py36/7faca48/ara-report/result/2abbf12c-cf6b-47a7-841f-2eedfdf9353a/index.html" 404 70 "DELETE http://localhost/v1/AUTH_e8fd161dc34c421a979a9e6421f823e9/zuul_opendev_logs_7fa/679944/2/check/openstack-tox-functional-py36/7faca48/ara-report/result/2abbf12c-cf6b-47a7-841f-2eedfdf9353a/index.html"02:04
donnyd"txf6d90b15611e46138570a-005df6e621" "proxy-server 53952" 0.0128 "-" 2830 002:04
tdasilvadonnyd: are you seeing the total (and stale) numbers go down? are expired objects being deleted or not at all?02:19
DHEAside: that giant container of mine is basically done filling. 58 million objects..03:12
*** psachin has joined #openstack-swift03:34
*** openstackgerrit has quit IRC04:08
*** diablo_rojo has quit IRC04:08
*** Jeffrey4l has quit IRC04:08
*** edausq has quit IRC04:08
*** szaher has quit IRC04:08
*** MooingLemur has quit IRC04:08
*** openstackstatus has quit IRC04:11
*** openstackstatus has joined #openstack-swift04:13
*** ChanServ sets mode: +v openstackstatus04:13
tdasilvaDHE: nice, how's container-sharding going for you?04:19
*** rcernin has quit IRC06:58
*** pcaruana has joined #openstack-swift07:16
*** tesseract has joined #openstack-swift07:48
*** tkajinam has quit IRC08:06
*** tesseract has quit IRC08:11
*** rdejoux has joined #openstack-swift08:16
*** rpittau|afk is now known as rpittau08:34
*** rcernin has joined #openstack-swift08:54
*** tesseract has joined #openstack-swift09:03
*** tesseract has quit IRC09:04
*** tesseract has joined #openstack-swift09:04
*** mugsie has quit IRC09:19
*** mugsie has joined #openstack-swift09:21
*** rcernin has quit IRC09:36
*** rcernin has joined #openstack-swift09:36
*** Jeffrey4l has joined #openstack-swift10:05
*** edausq has joined #openstack-swift10:06
*** diablo_rojo has joined #openstack-swift10:07
*** szaher has joined #openstack-swift10:07
*** irclogbot_2 has quit IRC10:08
*** irclogbot_0 has joined #openstack-swift10:10
*** MooingLemur has joined #openstack-swift10:10
*** rcernin has quit IRC10:16
*** rpittau is now known as rpittau|bbl11:22
donnydI restarted the expirer and it seems to be taking down the stale numbers now too11:36
*** pcaruana has quit IRC12:27
*** pcaruana has joined #openstack-swift12:33
donnydI am seeing this pop up in the logs every so often #012UnexpectedResponse: Unexpected response: 400 Bad Request12:39
*** rpittau|bbl is now known as rpittau13:09
DHEtdasilva: haven't started yet. was missing some systemd unit files for the sharding service, and the manage-shard-ranges app is giving errors13:36
*** psachin has quit IRC14:01
*** zaitcev has joined #openstack-swift14:13
*** ChanServ sets mode: +v zaitcev14:13
*** onovy has quit IRC14:53
*** psachin has joined #openstack-swift15:07
*** openstackgerrit has joined #openstack-swift15:29
openstackgerritCharles Hsu proposed openstack/python-swiftclient master: Support uploading Swift symlinks without content.  https://review.opendev.org/69421115:29
*** onovy has joined #openstack-swift15:43
*** efried is now known as efried_pto16:00
*** gregwork has joined #openstack-swift16:22
*** gyee has joined #openstack-swift16:28
*** rdejoux has quit IRC17:16
*** psachin has quit IRC18:19
openstackgerritMerged openstack/swift master: WSGI server workers must drop_privledges  https://review.opendev.org/69856318:48
timburkedonnyd, the 400 is curious -- could we get some more of the traceback/logs?18:50
donnydyea I can probably take a look a little later today and see what I can pull out of the logs18:51
timburkeis there anything *besides* the zuul logs in swift? iirc, those were set to expire after 30 days, is that right?18:52
timburkei'm realizing that we're probably at about the point where *everything* should be expired, so it might be fastest to just format drives :-/18:53
timburke(much as i hate to say it)18:53
timburkeagain, though, that only really works if there's *only* zuul logs in there18:54
*** rpittau is now known as rpittau|afk18:55
claygtdasilva: timburke: we might as well discuss p 697739 here yeah?19:00
patchbothttps://review.opendev.org/#/c/697739/ - swift - Have slo tell the object-server that it wants whol... - 3 patch sets19:00
claygI'm starting to think it's a solid win with little risk?  why not +A?19:00
tdasilvaclayg, timburke: the EC part was what I found a bit more difficult to grok, so I was hoping someone else could have a look instead of just one +2 +A19:04
claygunderstood!19:04
timburkeyeah, EC caught me by surprise, too! wasn't expecting those failures on the first patch set ;-)19:05
*** tesseract has quit IRC19:06
timburkei'm not entirely pleased with the object controller popping off the Range header like that -- i should maybe either (a) do the same thing for the replicated controller, so we don't have this guessing game or (2) find a way to get the EC iter kicked off with no ranges, then stuff them back in the WSGI environment19:07
claygtdasilva: wait... I'm not seeing an "AccountContext" in the object versioning patch - does that mean we don't capture account listing requests at all yet?19:09
tdasilvaclayg: correct, my assumption is that since the stats are rolled up to the same account, we didn't have to do anything special there, guess I missed something :/19:12
clayggotcha - ok, no problem 👍19:14
timburkemight be nice to have an API like `GET /v1/AUTH_test?versions` that would splice listings from the user and reserved namespaces and put more info in the container entries like total number of objects (including versions and links) and total bytes used across all versions. but we can probably put it off as future work -- should write down the idea somewhere, though19:28
claygtimburke: in china we'd decided the most reasonable thing to do was make the bytes & objects match the container HEADs - i.e. in a versioned container bytes is sum(bytes + versioned_bytes) and count = unversioned_count19:47
claygif we don't expose the bytes in the versioned container from the get go I think we'll be forcing clients to HEAD all of their containers when a single X-backend-allow-reserved-names listing to the account db has all the information they're looking for19:48
claygright now I'm tracking down a 500 though... i used to be able to do null namespace container listings through my noauth pipeline 🤔19:49
*** gyee has quit IRC19:59
clayguhh... I guess I was wrong about static link to SLO - I'm working on a functional test now20:30
*** gregwork has quit IRC20:34
*** gyee has joined #openstack-swift20:40
tdasilvaclayg: could that 500 might be due to https://review.opendev.org/#/c/682382/51/swift/common/middleware/versioned_writes/object_versioning.py@88820:49
patchbotpatch 682382 - swift - New Object Versioning mode - 51 patch sets20:50
openstackgerritClay Gerrard proposed openstack/swift master: New Object Versioning mode  https://review.opendev.org/68238220:59
*** rcernin has joined #openstack-swift21:21
*** patchbot has quit IRC21:30
*** patchbot has joined #openstack-swift21:31
clayg@tdasilva yes that was *exactly* it!?  I ended up catching the ValueError there - HOW DID YOU DO THAT 🤣21:37
claygI guess it's not going to make sense to review p 691877 until we get object versioning merged 🤔21:38
patchbothttps://review.opendev.org/#/c/691877/ - python-swiftclient - object versioning features - 8 patch sets21:38
tdasilvaclayg: came across that on that container-sync patch, my solution was to check for RESERVED in the container name in the if statement...w/e21:38
*** pcaruana has quit IRC21:55
timburke*totally* makes sense to review it! just gotta do them together ;-)22:09
timburkein fact, i was thinking about how it increasing (to me) seems like we ought to make sure one follows the other pretty quickly22:19
*** rcernin has quit IRC22:39
*** rcernin has joined #openstack-swift22:39
zaitcevGuys, I need a cross-check. How do I look up an object in a container?22:43
zaitcevI'm thinking perhaps some kind of HEAD to container server, but with object in path. We do this for updates, but with PUT.22:44
zaitcevUnfortunately, our existing HEAD does not do this (always ignores obj), so I22:45
zaitcev'm thinking about constructing a some kind of zero UPDATE, which does not actually update anything22:45
timburkeGET with ?prefix=<obj> ? and maybe a &limit=122:46
timburke(so you don't get cont/obj1, cont/obj2, ... when you're just looking for cont/obj)22:47
timburkeUPDATE really is just useful for updating -- don't think it returns anything (iirc)22:47
zaitcevThis is for dark data checker.22:48
timburkestill gotta manually check that the object returned is the object you expected, but if the prefix is the whole name, you've either got it or you don't22:48
zaitcevI noticed that if talk to object server, it just immediately creates a broker and that's that. It will return HEAD of a dark object.22:49
timburkeah -- yeah, i see how an UPDATE might be useful -- kinda depends on whether you want to aggregate several objects per container before checking or do it one at a time...22:50
timburkei wonder -- when we accept the PUT for an object entry, do we distinguish between a 201 vs a 202? it'd maybe be useful...22:51
timburkenope, not really :-/ https://github.com/openstack/swift/blob/2.23.0/swift/container/server.py#L47222:52
mattoliveraumorning22:53
timburkei feel like that'd be a fairly modest extention to DatabaseBroker's API to have put_record return some indication of whether the record already exists or not... though maybe that's getting out of scope for what you're looking for, zaitcev22:54
zaitcevtimburke: I'm still mocking it up... I was hoping just have a plugin for the API in patch 212824.22:56
patchbothttps://review.opendev.org/#/c/212824/ - swift - Let developers/operators add watchers to object audit - 18 patch sets22:56
timburkei saw you rebased that ;-)23:00
zaitcevI even copy-pasted the example into conf from it and found a syntax error :-)23:01
*** tkajinam has joined #openstack-swift23:07

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