Tuesday, 2021-08-17

*** ysandeep|away is now known as ysandeep06:32
*** jpena|off is now known as jpena07:32
whoami-rajathi #openstack-infra , I'm facing an issue with glance_store project, I've removed the lower-constraints job but my patch (proposed before the job removal) is still running it, if i propose a new DNM patch then it's not running there, i tried rebasing and again cherry picking but it doesn't work, patch: https://review.opendev.org/c/openstack/glance_store/+/78678907:44
*** rpittau|afk is now known as rpittau07:54
*** ykarel is now known as ykarel|lunch09:27
*** ykarel|lunch is now known as ykarel10:38
*** jpena is now known as jpena|lunch11:39
*** rlandy is now known as rlandy|rover11:49
*** jpena|lunch is now known as jpena12:42
fungiwhoami-rajat: i agree something strange is happening there. i can see change https://review.opendev.org/804606 merged yesterday to remove openstack-lower-constraints-jobs from the templates list, and your 786789 change was tested after that (even has the removal as its parent git commit, though that shouldn't be necessary). the build claims it's getting it from that template though:13:25
fungihttps://zuul.opendev.org/t/openstack/build/acb88b19c55047858741a72a022e9b81/log/zuul-info/inventory.yaml#4913:25
fungisource: openstack/openstack-zuul-jobs/zuul.d/project-templates.yaml@master#166413:26
fungithat's the line where the definition of the template starts13:26
fungiso all that's to say i'm as confused as you are at the moment13:27
fungii'll ask for some debugging tips13:27
whoami-rajatfungi, ok, one more thing i noticed, i proposed a DNM in which if i do any change in .zuul file then lower-constraints doesn't run and if not then it runs13:28
fungiyeah, normally if you change the zuul configuration in your project zuul explicitly selects to run all impacted jobs just to make sure you haven't made a configuration change that leads one to fail... i wonder if that's sidestepping some cached value13:30
whoami-rajatgot it13:31
whoami-rajatso any way we can debug to find the root cause?13:32
fungii've linked this discussion in #zuul to get some additional ideas13:32
fungisince it seems like it could be a bug in configuration caching13:33
whoami-rajatok, thanks for looking into it13:35
*** thelounge555 is now known as thelounge5513:35
dansmithclarkb: can you help me remember what the trick is for debugging hung tests from the subunit stream? grabbing the stream and running -ls on it, I thought there was "started" and "finished" for each test, but I'm not seeing that14:32
*** ykarel is now known as ykarel|away14:41
clarkbdansmith: sorry was (still in) a meeting15:00
dansmithnp15:00
clarkbdansmith: I find it helps to run the file through the subunit2to1 translator as subunut v1 is far more human parseable15:01
clarkband ya a hung test will sometimes have a started but not a finished15:01
clarkboh and just view the v1 converted file with your text editor15:02
dansmithokay the thing I've got seems to already be in v1 format15:02
clarkbah we might record it in v1 for this reason then15:02
dansmithbut I don't see *any* started..finished indications15:03
dansmithunless the tags: -worker1 and tags: worker1 mean something like that15:03
dansmithwhen I run some stats on it, I see nothing from one actually, but all the other workers have something15:03
dansmithwhich seems relevant, if I knew what list of tests that one was doing, but...15:03
clarkbok ya looks like there isn't started and finished15:04
clarkbI see time: then tags: for the worker then test: test.name.path.etc then time: then failure: or success::15:05
dansmithyeah15:05
clarkbI think you want to look for test: foo.bar and then if there is no success: or failure: that one got stuck15:05
dansmithokay, but it seems like one whole worker is missing:15:07
dansmith - Worker 0 (55 tests) => 0:01:26.40811015:07
dansmith - WARNING: missing Worker 1! Race in testr accounting15:07
dansmithI see zero results for worker1 in the subunit15:07
dansmithwhich I guess pretty much means this isn't going to help me15:07
clarkbya I suspect the issue happened before data was getting recordred in the stream15:08
clarkbthat one may have crashes its stream somehow?15:08
clarkbdansmith: what you might try is list all the tests that ran in your subunit file then remove them from the total test list then just run those remaining tests one by one to see if you can crash it15:08
dansmithyeah I'm guessing it hung or crashed before it did anything15:09
dansmithnot sure where to chase that though15:09
clarkbthat might be a bit of annoying text processing work but if the other tests all ran happily we can assume the failure is likely in the other portion of the test list15:09
dansmithyeah, was just thinking that might be all I could discern from this15:09
dansmithi.e the list of tests that didn't get run15:10
clarkbyup15:10
*** jpena is now known as jpena|off15:26
*** jpena|off is now known as jpena15:27
*** jpena is now known as jpena|off15:48
*** ysandeep is now known as ysandeep|dinner16:02
opendevreviewSorin Sbârnea proposed openstack/openstack-zuul-jobs master: tox: help py36 jobs use utf8 encoding  https://review.opendev.org/c/openstack/openstack-zuul-jobs/+/80489016:06
opendevreviewSorin Sbârnea proposed openstack/openstack-zuul-jobs master: tox: help py36 jobs use utf8 encoding  https://review.opendev.org/c/openstack/openstack-zuul-jobs/+/80489016:10
clarkbzbr: is the issue that ubuntu 18.04 and centos 7 don't set LANG/LOCALE/LC to a utf8 value by default and then python assumes ascii? Or is it that they do set LANG/LOCALE/LC to utf8 values and python doesn't properly handle them?16:19
clarkbI wonder if it would be worth considering updating the platform locale settings if it is the former16:19
zbrclarkb: they don't set it and this means that py36 (only) will use ascii as that is what it used until py37.16:20
zbrbreaking pip is one issue, but anything python related is affected by this.16:20
clarkbya so it might be more correct to fix this with a locale update, but then we aren't testing what people in the wild will run into16:20
clarkbif we are worried about what people in the wild will run into then you should set that value in the tox.ini files and not the zuul job config16:21
*** ysandeep|dinner is now known as ysandeep|out16:21
zbrnot sure what you think about this but I would dare recommend even ensuring that all node images we have with py36 also have the environment tunned to help py36 find a more inclusive locale.16:21
clarkbI've +2'd it but I suspect the two best otpions are actually either to update the platform and just accept we aren't going to test exactly what centos7 and bionic look like in the wild. Or set this value in tox.ini instead16:21
zbrwhile i am not sure yet, i suspect tunning only tox.ini may not work, as pip is used before the env is even created (hint tox self-bootstrapping for example).16:22
clarkbthe problem with setting it in the job like that is we aren't really testing what people get in the wild and we aren't providing them any clue for why it works in ci but not locally16:22
clarkbzbr: I'm not sure I understand tox self bootstrapping. I've always had to preinstall tox myself16:22
zbrself-bootstrapping is not always happening, is determined by what you have already installed and if tox.ini requires extra plugins.16:23
zbrbasically is happening only when needed16:23
clarkband setting tox_environment only applies after tox is installed16:23
clarkbzbr: ok, but the problem with this is if anyone runs tox locally on centos 7 or bionic it will fail if that env var is needed and they won't understand why it works in CI16:24
zbrindeed :D 16:24
zbrbut the funny bit is that pip fails due to bad encoding only with some packages, not all.16:24
clarkbit is better imo to force projects that need this to set it in their own tox.ini16:24
clarkbthen it works locally and if it fails it fails for everyone and it is debuggable16:24
zbrimaging someone adds some "smart" things to their package description, and when tries to install it, it chokes not being able to print those chars.16:25
clarkblike I said I +2'd it. I don't feel that strongly about this. But imo it is better to not solve it this way16:25
clarkbyes it depends on whether or not the package metadata is pure ascii16:25
zbri am close to leave for the day but I am glad you are aware of the issue. not sure which patch we should take.16:25
clarkbalso this can fail if someone uses utf16 (though that is very unlikely)16:25
zbrafaik, nobody enforced package metadata to be ascii.16:25
clarkbI'm not sure if any of the specs specify an encoding. And if they do that may not be enforced16:26
fungitangentially, https://github.com/pypa/pip/issues/10219 is the first time i've seen anyone suggest that mentioning a github issue in a commit message for another project is rude behavior. seems like something github should make configurable in their issue tracker16:27
clarkbfungi: github is being far too helpful there :)16:28
zbrhaha, yeah. that is weird at best. i think that also has something to do with pip maintainers willing to allow a PR.16:29
zbri would not use "rude" to describe it, is more of "peer pressure" ;)16:29
fungibut on the actual problem, it looks like pip is simply using open() and expecting python to dtrt, so the declaring a specific metadata encoding doesn't appear to be an option16:30
zbryes16:30
clarkbI think all python is doing is looking up your local and using the encoding there16:30
fungiright16:30
clarkbif you have C then you get ascii if you have C.utf8 then utf8 and so on16:30
clarkbit is entirely possible for someone to try and be funny and make a package with utf16 or similar and then cause all sorts of problems I suspect16:31
fungiand then pep 538 codified that as c meaning c.utf-8 but only took effect in python 3.716:31
clarkbah that is what changed16:31
*** rpittau is now known as rpittau|afk16:31
fungiright, that's why the pip maintainers seemed disinclined to fix the regression. as soon as they drop python 3.6 support it will go away16:32
fungiof course, i would argue this means they have effectively already dropped python 3.6 support and just don't want to come out and say that?16:32
clarkbit probably wouldn't be a terrible idea to stick to ascii in package metadata though16:32
clarkbthe openstack release team should probaly consider a check for that16:32
clarkbfungi: yes I would agree that is the same thing16:33
fungii think we implicitly check for that by testing projects with python 3.6 on a platform with no default utf-8 locale16:33
clarkbfungi: zbr's efforts will undo that though16:33
fungitox plus recent pip is making an implicit wheel and installing it16:33
clarkbyes I agree toay we are fine16:34
clarkbrelated: the requirements team might want to filter packages that don't respect that rule for compat reasons as well16:34
clarkbor just accept that emoji in package metadata is a thing now16:34
fungiwell, apparently not "fine" because https://launchpad.net/bugs/1938079 was filed16:34
clarkbfungi: ya a third party package introduced the problem. Ansible?16:36
clarkbI suspect that all of our packages are still clean though16:36
fungimore likely one of ansible's kitchen sink of dependencies16:36
fungii wouldn't necessarily characterize it as "emoji in package metadata" since it's entirely legitimate for someone whose name can't be accurately represented in pure ascii to want to have a proper encoding of their name in the maintainer field or something16:39
clarkbthats fair. The trouble is that there is no way to know if that is latin1 encoded or utf8 or utf16 etc16:39
fungiits just that pip seems to be okay with breaking that on python 3.6 and earlier, so de facto phasing out support for 3.6 i guess16:39
clarkband while python wants to assume everything is utf8 it doesn't even do that properly16:39
fungiyeah, it does seem like there should be a pep declaring explicit and implicit encoding rules for package metadata16:40
clarkbthe only thing that python does seem to do reliably is try ascii16:40
clarkbwhich is unfortunate if you have a legit reason to use an extended character set16:41
fungiyou can declare encoding for the long description16:41
fungithough even that only works reliably if it's in a separate file16:41
fungiand i think that's happening in setuptools when writing the metadata anyway16:42
fungithe encoding conversion i mean16:42
abhishekkzuul status is showing "Something went wrong."22:03
fungiabhishekk: it's mid-restart but should be back momentarily22:04
fungi(see conversation in #opendev)22:04
abhishekkfungi, ack, thank you22:04
fungiall the in-flight changes will get reenqueued once it's back up22:06
fungiso hopefully shouldn't need to recheck anything22:06
fungiunless you just happened to push a new change or approve one while zuul was down22:06
abhishekkok22:07
abhishekkno later case for me, just had couple of changes already running which got terminated22:07
fungiyeah, they'll come back22:08
abhishekkcool22:08
fungiabhishekk: your changes should be back into the pipelines as of a few minutes ago22:28
abhishekkyes22:29
fungicool, just making sure22:30
abhishekkack, thank you22:31

Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!