Bug 2226270

Summary: python-oslo-log: FTBFS in Fedora rawhide/f39
Product: [Fedora] Fedora Reporter: Fedora Release Engineering <releng>
Component: python-oslo-logAssignee: Haïkel Guémar <karlthered>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: amoralej, apevec, epel-packagers-sig, karlthered, openstack-sig, praiskup
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-08-16 07:12:38 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 2219556    
Bug Blocks: 2168842, 2231791    
Attachments:
Description Flags
build.log
none
root.log
none
state.log none

Description Fedora Release Engineering 2023-07-25 19:36:12 UTC
python-oslo-log failed to build from source in Fedora rawhide/f39

https://koji.fedoraproject.org/koji/taskinfo?taskID=103688881


For details on the mass rebuild see:

https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Please fix python-oslo-log at your earliest convenience and set the bug's status to
ASSIGNED when you start fixing it. If the bug remains in NEW state for 8 weeks,
python-oslo-log will be orphaned. Before branching of Fedora 40,
python-oslo-log will be retired, if it still fails to build.

For more details on the FTBFS policy, please visit:
https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails_to_install/

Comment 1 Fedora Release Engineering 2023-07-25 19:36:17 UTC
Created attachment 1979196 [details]
build.log

Comment 2 Fedora Release Engineering 2023-07-25 19:36:21 UTC
Created attachment 1979197 [details]
root.log

file root.log too big, will only attach last 32768 bytes

Comment 3 Fedora Release Engineering 2023-07-25 19:36:23 UTC
Created attachment 1979198 [details]
state.log

Comment 4 Pavel Raiskup 2023-08-02 06:19:08 UTC
There's a problem with building documentation:

Warning, treated as error:
autodoc: failed to import module 'watchers' from module 'oslo_log'; the following exception was raised:
No module named 'asyncore'

Comment 5 Pavel Raiskup 2023-08-02 06:22:57 UTC
even testsuite:

======================================================================
ERROR: watchers (unittest.loader._FailedTest.watchers)
----------------------------------------------------------------------
ImportError: Failed to import test module: watchers
Traceback (most recent call last):
  File "/usr/lib64/python3.12/unittest/loader.py", line 129, in loadTestsFromName
    module = __import__(module_name)
             ^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/oslo.log-5.0.0/oslo_log/watchers.py", line 18, in <module>
    import pyinotify
  File "/usr/lib/python3.12/site-packages/pyinotify.py", line 71, in <module>
    import asyncore
ModuleNotFoundError: No module named 'asyncore'

Comment 6 Pavel Raiskup 2023-08-02 06:37:33 UTC
Even with asyncore provided:

======================================================================
ERROR: test_log_config_append_invalid (oslo_log.tests.unit.test_log.LogConfigTestCase.test_log_config_append_invalid)
oslo_log.tests.unit.test_log.LogConfigTestCase.test_log_config_append_invalid
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
  File "/usr/lib64/python3.11/logging/config.py", line 78, in fileConfig
    cp.read(fname, encoding=encoding)
  File "/usr/lib64/python3.11/configparser.py", line 713, in read
    self._read(fp, filename)
  File "/usr/lib64/python3.11/configparser.py", line 1101, in _read
    raise MissingSectionHeaderError(fpname, lineno, line)
configparser.MissingSectionHeaderError: File contains no section headers.
file: '/tmp/tmprtkosor1/loggingzi8xfs8m.conf', line: 1
'squawk'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/builddir/build/BUILD/oslo.log-5.0.0/oslo_log/tests/unit/test_log.py", line 1806, in test_log_config_append_invalid
    self.assertRaises(log.LogConfigError, log.setup,
  File "/usr/lib/python3.11/site-packages/testtools/testcase.py", line 467, in assertRaises
    self.assertThat(our_callable, matcher)
  File "/usr/lib/python3.11/site-packages/testtools/testcase.py", line 478, in assertThat
    mismatch_error = self._matchHelper(matchee, matcher, message, verbose)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/testtools/testcase.py", line 530, in _matchHelper
    mismatch = matcher.match(matchee)
               ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/testtools/matchers/_exception.py", line 104, in match
    mismatch = self.exception_matcher.match(exc_info)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/testtools/matchers/_higherorder.py", line 62, in match
    mismatch = matcher.match(matchee)
               ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/testtools/testcase.py", line 457, in match
    reraise(*matchee)
  File "/usr/lib/python3.11/site-packages/testtools/compat.py", line 27, in reraise
    raise exc_obj.with_traceback(exc_tb)
  File "/usr/lib/python3.11/site-packages/testtools/matchers/_exception.py", line 97, in match
    result = matchee()
             ^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/testtools/testcase.py", line 1039, in __call__
    return self._callable_object(*self._args, **self._kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/oslo.log-5.0.0/oslo_log/log.py", line 271, in setup
    _load_log_config(conf.log_config_append)
  File "/builddir/build/BUILD/oslo.log-5.0.0/oslo_log/log.py", line 231, in _load_log_config
    logging.config.fileConfig(log_config_append,
  File "/usr/lib64/python3.11/logging/config.py", line 80, in fileConfig
    raise RuntimeError(f'{fname} is invalid: {e}')
RuntimeError: /tmp/tmprtkosor1/loggingzi8xfs8m.conf is invalid: File contains no section headers.
file: '/tmp/tmprtkosor1/loggingzi8xfs8m.conf', line: 1
'squawk'

Comment 7 Alfredo Moralejo 2023-08-09 09:28:45 UTC
We have two different issues:

- import inotify fails because of asyncore is missing (https://bugzilla.redhat.com/show_bug.cgi?id=2219556)
- installing asyncore manually, one unit test is failing (as reported in #c6 ). I'm working in the second one.

Comment 8 Alfredo Moralejo 2023-08-09 10:52:29 UTC
Patch sent upstream for unit tests in oslo.log in https://review.opendev.org/c/openstack/oslo.log/+/890900

I will backport it to the package once the inotify issue is fixed.

Comment 9 Alfredo Moralejo 2023-08-16 07:12:38 UTC
Fixed with python-oslo-log-5.0.0-4.fc40 and python-oslo-log-5.0.0-4.fc39