Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.

Bug 1361888

Summary: [FC24] otopi fails on fedora 24 with 'Aborted (core dumped)'
Product: [oVirt] otopi Reporter: Yedidyah Bar David <didi>
Component: Plugins.packagersAssignee: Sandro Bonazzola <sbonazzo>
Status: CLOSED CURRENTRELEASE QA Contact: Petr Kubica <pkubica>
Severity: high Docs Contact:
Priority: unspecified    
Version: masterCC: bugs, gklein, oourfali, pstehlik, rmartins, sbonazzo, ylavi
Target Milestone: ovirt-4.1.0-alphaFlags: rule-engine: ovirt-4.1+
ylavi: Triaged+
ylavi: planning_ack+
sbonazzo: devel_ack+
pstehlik: testing_ack+
Target Release: 1.6.0   
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: 2017-02-01 14:35:48 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Integration RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 1355626, 1358339, 1379402, 1416854    

Description Yedidyah Bar David 2016-07-31 14:33:33 UTC
Description of problem:

$Subject.

Log has:

2016-07-31 17:30:01 DEBUG otopi.plugins.otopi.packagers.dnfpackager dnfpackager.verbose:75 DNF Downloading Latest oVirt master additional nightly snapshot 14.60/14.60KB
2016-07-31 17:30:01 INFO otopi.plugins.otopi.packagers.dnfpackager dnfpackager.info:79 DNF Downloaded Latest oVirt master additional nightly snapshot
python: /builddir/build/BUILD/hawkey-0.6.3/src/sack.c:568: load_yum_repo: Assertion `hrepo->state_main == _HY_NEW' failed.
The 'plugins' function is not a part of DNF API and will be removed in the upcoming DNF release. Please use only officially supported API functions. DNF API documentation is available at https://dnf.readthedocs.org/en/latest/api.html.
The 'plugins' function is not a part of DNF API and will be removed in the upcoming DNF release. Please use only officially supported API functions. DNF API documentation is available at https://dnf.readthedocs.org/en/latest/api.html.

Version-Release number of selected component (if applicable):

Current master

How reproducible:

Probably always

Steps to Reproduce:
1. Install latest otopi from master snapshot on updated fedora 24
2. otopi
3.

Actual results:

Fails as above

Expected results:

Succeeds

Additional info:

'engine-setup' fails the same way.

'engine-setup --offline' succeeds.

Comment 1 Sandro Bonazzola 2016-08-04 09:22:32 UTC
Python backtrace:
Traceback (most recent call first):
  File "/usr/lib/python2.7/site-packages/dnf/base.py", line 127, in _add_repo_to_sack
    load_updateinfo=True)
  File "/usr/lib/python2.7/site-packages/dnf/base.py", line 239, in fill_sack
    self._add_repo_to_sack(r)
  File "/usr/lib/python2.7/site-packages/otopi/minidnf.py", line 530, in clean
    self._base.fill_sack()
  File "/usr/share/otopi/plugins/otopi/packagers/dnfpackager.py", line 196, in _setup
    self._minidnf.clean(['expire-cache'])
  File "/usr/lib/python2.7/site-packages/otopi/context.py", line 132, in _executeMethod
    method['method']()
  File "/usr/lib/python2.7/site-packages/otopi/context.py", line 702, in runSequence
    self._executeMethod(self._currentStage, methodinfo)
  File "/usr/lib/python2.7/site-packages/otopi/main.py", line 152, in execute
    self.context.runSequence()
  File "/usr/lib/python2.7/site-packages/otopi/__main__.py", line 88, in main
    installer.execute()
  File "/usr/lib/python2.7/site-packages/otopi/__main__.py", line 122, in <module>
    sys.exit(installer.main())

Comment 2 Sandro Bonazzola 2016-08-04 09:23:03 UTC
It's reproducible just runnig otopi without arguments.

Comment 3 Sandro Bonazzola 2016-08-04 09:48:34 UTC
Looks like the call to self._base.fill_sack() in clean method is triggering the issue. Commenting it cause:
[ ERROR ] DNF u'dnf.plugin.dynamic'
[ ERROR ] Failed to execute stage 'Environment setup': u'dnf.plugin.dynamic'

Comment 4 Sandro Bonazzola 2016-08-04 09:51:12 UTC
(In reply to Sandro Bonazzola from comment #3)
> Looks like the call to self._base.fill_sack() in clean method is triggering
> the issue. Commenting it cause:
> [ ERROR ] DNF u'dnf.plugin.dynamic'
> [ ERROR ] Failed to execute stage 'Environment setup': u'dnf.plugin.dynamic'

Ignore the errors, my fault. Just dropping self._base.fill_sack() in the clean method seems to fix the issue. Maybe we're missing some kind of initialization in clean method?

Comment 5 Rafael Martins 2016-08-04 10:59:53 UTC
(In reply to Sandro Bonazzola from comment #4)
> (In reply to Sandro Bonazzola from comment #3)
> > Looks like the call to self._base.fill_sack() in clean method is triggering
> > the issue. Commenting it cause:
> > [ ERROR ] DNF u'dnf.plugin.dynamic'
> > [ ERROR ] Failed to execute stage 'Environment setup': u'dnf.plugin.dynamic'
> 
> Ignore the errors, my fault. Just dropping self._base.fill_sack() in the
> clean method seems to fix the issue. Maybe we're missing some kind of
> initialization in clean method?

Not sure, fill_sack() method is supposed to init/refresh the package sack [1], and it is also called on MiniDNF._createBase(), then it should be safe to call on clean, in theory. Need to investigate more.

[1] http://dnf.readthedocs.io/en/latest/api_base.html#dnf.Base.fill_sack

Comment 6 Yedidyah Bar David 2016-09-05 14:15:17 UTC
*** Bug 1363805 has been marked as a duplicate of this bug. ***

Comment 7 Sandro Bonazzola 2016-12-12 13:55:19 UTC
The fix for this issue should be included in oVirt 4.1.0 beta 1 released on December 1st. If not included please move back to modified.

Comment 8 Petr Kubica 2017-01-31 18:14:05 UTC
Verified in 4.1.1-0.0.master.20170130153121.git43d773b.fc24