This ticket proposes an alternative to waiting on #1440. #1440 describes that handle_collisions_with_base_module_rpms needs to be disabled for local builds due to RHBZ#1693683. In short, certain DNF APIs fail on newer DNF versions (RHEL 8 or Fedora) because it uses libmodulemd v1 but MBS uses libmodulemd v2. By importing libmodulemd v2 in MBS, it causes DNF to use libmodulemd v2, which it doesn't support.
handle_collisions_with_base_module_rpms
As an alternative, we could call _get_rpms_in_external_repo (the function where DNF is used) as a separate process using the multiprocessing library. The issue is that in module_build_service/__init__.py, libmodulemd v2 is imported. This would need to be refactored so that when _get_rpms_in_external_repo is called in a separate process, libmodulemd v2 is not automatically imported.
_get_rpms_in_external_repo
multiprocessing
module_build_service/__init__.py
As discussed in a meeting today, we could try to run DNF from the command-line as another potential work-around.
Login to comment on this ticket.