Friday, 2026-10-09

opendevreviewTakashi Kajinami proposed openstack/oslo.messaging master: Add delete_rpc_server_queues  https://review.opendev.org/c/openstack/oslo.messaging/+/100883103:18
opendevreviewMerged openstack/oslo.log master: Drop version check for eventlet < 0.38.2  https://review.opendev.org/c/openstack/oslo.log/+/100850004:14
opendevreviewJuan Larriba proposed openstack/oslo.middleware master: Use middleware-owned provider for API tracing  https://review.opendev.org/c/openstack/oslo.middleware/+/100881608:52
opendevreviewMerged openstack/oslo.messaging master: Make SSL protocol constant loading resilient to deprecations  https://review.opendev.org/c/openstack/oslo.messaging/+/100713410:47
amorinI saw nothing about oslo.x on PTG, am I missing something?12:36
cardoetkajinam: did you see the thread on the ML about RabbitMQ and oslo.messaging with the weird backtrace? It seems like we have some validation logic error with oslo.config?15:14
tkajinamcardoe, I guess that's the symptom caused by missing [oslo_concurrency] lock_path16:03
tkajinambut that stack trace is quite ugly and we should avoid it16:04
tkajinamor something is registering a OptGroup named "group"16:05
tkajinamin the DEFAULT section16:05
tkajinamcardoe, ok that's already mentioned. I'll try to look how we can resolve that ugly traceback16:06
tkajinamamorin, you are correct. tbh most of the oslo cores are part-time and almost independent, and idk if any of us has something we want to discuss as a team16:07
amorinack, it's because I initiated a topic around replacing rabbitmq with blazingmq long time ago https://review.opendev.org/c/openstack/oslo.messaging/+/988211 . I mostly did that on my spare time, not related to my employer yet, but I was wondering if that would make sense to be pushed a little bit further16:13
cardoetkajinam: yeah I'm just pinging you cause you usually figure out that magic. I got lost. :/16:13
tkajinamI wonder if we should add a validation within queue manager to validate lock_path. I think that's a common problem people face when they try the feature first16:14
tkajinamthough that may still trigger the same traceback16:14
opendevreviewClif Houck proposed openstack/oslo.config master: Add TypeRegistry to types module  https://review.opendev.org/c/openstack/oslo.config/+/100982117:12
opendevreviewClif Houck proposed openstack/oslo.config master: Add type validation to validator tool  https://review.opendev.org/c/openstack/oslo.config/+/100982217:12
clifo/ I just posted two patches that adds a TypeRegistry type in types.py of oslo.config and uses it to do type validation in the validator tool. If anyone has any out-of-band questions feel free to ping me. I'm happy to discuss.17:14
clifI would also like to get to the point where olso.config type-validates all loaded values before first-access if possible.17:15
tkajinamclif, maybe it'd be useful if you can describe a few scenarios this is required in addition to the existing validation hook ?17:20
clifI wouldn't go so far as required, but I would think it's desirable. So imagine you have a config value defined in a config file that looks correct but when you go to access the value, it fails it's TypeConfig.__call__ method (as in it raises a ValueError because the value is mal-formed or incorrect somehow)17:21
clifthen you're stuck with it blowing up at runtime17:22
clifInstead, if you type-validate the configuration value before you load and run it for real, you know it's incorrect early on17:22
tkajinambut even if you replace it by a different exception then it still goes up to the trace, right ?17:22
clifand can fix it before you have a run-time/deply problem/etc17:22
clifBut I'm not replacing the exception17:23
tkajinamIf you want to do run-time validation then it should validate not only types but constraints we define17:24
tkajinamotherwise that would eventually cause different problems ihmo17:24
clifright, that's the duty of a derived ConfigType.__call__ impl , which I call17:24
clifthat's the point17:24
clifI want that __call__ to do whatever validation it's doing in the validator tool, so it's not a surprise come run time17:25
tkajinamI'm not yet sure if I understand your point really17:25
tkajinamwe already have validations for each options, using __call__ interface of each ConfigType, right ?17:25
tkajinamhmm wait17:26
clifyes, but that __call__ interface is not used until first-access of the configuration value at runtime17:26
tkajinamI agree with that point17:26
JayFIt's about timing. We discovered this when we added validation to a config type in Ironic -- it only failed at access time (late) and not in the validator. clif is working to add a feature to cause it to fail at oslo-config-validator runtime, so operators can test configs :).17:26
clifso you may have a type-validation problem that never surfaces until you first need that configuration value17:26
tkajinamone thing you probably have to consider is that not all options are loaded at start up17:27
tkajinamI mean some of these are loaded lazily. one good example is keystoneauth options which are loaded according to the plugin used there17:27
clifyeah that makes sense17:27
clifit may not be easy or feasible for all values17:28
tkajinamyeah17:28
tkajinamI just want to make sure I understand how it will be used actually later in real services17:28
clifwith the current state of my patches, it only affects behavior in the validator tool17:29
clifbut I'd like to add the option to do this validation at configuration load time in real services17:29
cliffirst as opt-in 17:29
clifthen maybe later as default-on if it proves itself worthwhile17:29
clifI'm also drafting an email to the list to invite further discussion17:30
tkajinamok I think I now have a better view about the proposal after reading the code again based on the discussion above.17:33
tkajinamclif, do you mind explaining the details of the mistakes the new validation option can detect ( I assume existing one doesn't load options so do not validate their values, but only ensure these options actually are defined)17:34
tkajinamin the commit message of https://review.opendev.org/c/openstack/oslo.config/+/100982217:34
tkajinamin general I suggest explaining how the behavior is changed, instead of how the implementation is changed.17:34
clifSure, I'll try to explain the behavior changed17:35
JayFtkajinam: your question makes me wonder if doing extensive type validation, like Ironic does (here's some examples https://opendev.org/openstack/ironic/src/branch/master/ironic/conf/types.py#L22 ) is even a pattern oslo.config expects17:36
tkajinamok I might be confused by the existing default value validation and I agree it's annoying that it doesn't provide a way to validate values actually written in config files17:36
cliftkajinam: the option I added will actually validation a configuration file value if you provide it to the validator tool17:37
clifvalidate*17:37
tkajinamyes I understand that now17:37
tkajinamJayF, IMO it should, instead of passing that value to actual logic and then trigger wrong behavior.17:38
tkajinamI'm totally for adding validation at least in the validator cli. to be honest I'd thought it has been there (as I said I was confused by validation of default values there...)17:39
JayF:D17:39
clifwe validate for ironic custom types here: https://opendev.org/openstack/ironic/src/branch/master/ironic/common/config.py#L4917:40
tkajinamI see17:43
tkajinamclif, one more quick feedback. I think the current implementation only triggers the basic validation and does not honor options such as min, right ?17:45
tkajinamclif, I wonder if we should rather use class instances, not classes, to load these and run full validation.17:47
tkajinamI mean, if you have IntOpt('foo', min=0, max=10) then the validation ensures that given value can be parsed as an integer, but does not check min, max if I read the current implementation correctly.17:47
clifif it's not enforced/honored in ConfigType.__call__ then my change doesn't enforce it17:48
tkajinamyou have to pass these options when you build an instance of ConfigType17:48
clifah I see, good point17:49
tkajinamI guess the current logic results in calling IntOpt().__init__, (not IntOpt('foo', min=0, max=10).__call__ ) for any IntOpt17:49
tkajinambut we don't want to drop these options really.17:49
clifyes, agreed17:50
clifI will think about it 17:50
tkajinamlet me leave that comment in the base patch17:50
clifappreciated17:51
opendevreviewMerged openstack/oslo.middleware master: Use middleware-owned provider for API tracing  https://review.opendev.org/c/openstack/oslo.middleware/+/100881621:11
opendevreviewStephen Finucane proposed openstack/oslo.config master: trivial: Reindent docstrings  https://review.opendev.org/c/openstack/oslo.config/+/100986821:42
opendevreviewStephen Finucane proposed openstack/oslo.config master: typing: Make ConfigType generic  https://review.opendev.org/c/openstack/oslo.config/+/100986921:42
opendevreviewStephen Finucane proposed openstack/oslo.config master: typing: Make Opt generic  https://review.opendev.org/c/openstack/oslo.config/+/100987021:42
opendevreviewStephen Finucane proposed openstack/oslo.config master: typing: Misc typing improvements  https://review.opendev.org/c/openstack/oslo.config/+/100987121:42

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