Bug 1630488

Summary: [abrt] dnf: __init__(): transaction.py:729:__init__:RuntimeError: C++ std::exception: Exec failed: database is locked
Product: [Fedora] Fedora Reporter: Niki Guldbrand <niki.guldbrand>
Component: libdnfAssignee: rpm-software-management
Status: CLOSED DUPLICATE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 29CC: dmach, jmracek, kparal, mblaha, mluscon, packaging-team-maint, rpm-software-management, vmukhame
Target Milestone: ---Keywords: Triaged
Target Release: ---   
Hardware: x86_64   
OS: Unspecified   
URL: https://retrace.fedoraproject.org/faf/reports/bthash/621fb24712fc546af78c684e17a5e0b6870d68c4
Whiteboard: abrt_hash:444529d5606e439a4248bdc2dcb25947adfa6831;VARIANT_ID=workstation;
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-06-02 04:27:12 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:
Attachments:
Description Flags
File: backtrace
none
File: cgroup
none
File: cpuinfo
none
File: dnf-makecache.log
none
File: environ
none
File: machineid
none
File: mountinfo
none
File: namespaces
none
File: open_fds none

Description Niki Guldbrand 2018-09-18 18:33:51 UTC
Version-Release number of selected component:
dnf-3.5.1-1.fc29

Additional info:
reporter:       libreport-2.9.5
cmdline:        /usr/bin/python3 /bin/dnf -y install --disablerepo=* /tmp/akmods.NKl86dHu/results/kmod-xtables-addons-4.18.7-300.fc29.x86_64-3.1-1.fc29.x86_64.rpm
crash_function: __init__
exception_type: RuntimeError
executable:     /bin/dnf
interpreter:    python3-3.7.0-9.fc29.x86_64
kernel:         4.18.5-300.fc29.x86_64
runlevel:       N 5
type:           Python3
uid:            0

Truncated backtrace:
transaction.py:729:__init__:RuntimeError: C++ std::exception: Exec failed: database is locked

Traceback (most recent call last):
  File "/bin/dnf", line 58, in <module>
    main.user_main(sys.argv[1:], exit_code=True)
  File "/usr/lib/python3.7/site-packages/dnf/cli/main.py", line 179, in user_main
    errcode = main(args)
  File "/usr/lib/python3.7/site-packages/dnf/cli/main.py", line 64, in main
    return _main(base, args, cli_class, option_parser_class)
  File "/usr/lib/python3.7/site-packages/dnf/cli/main.py", line 99, in _main
    return cli_run(cli, base)
  File "/usr/lib/python3.7/site-packages/dnf/cli/main.py", line 123, in cli_run
    ret = resolving(cli, base)
  File "/usr/lib/python3.7/site-packages/dnf/cli/main.py", line 146, in resolving
    base.resolve(cli.demands.allow_erasing)
  File "/usr/lib/python3.7/site-packages/dnf/base.py", line 736, in resolve
    self._transaction = self._goal2transaction(goal)
  File "/usr/lib/python3.7/site-packages/dnf/base.py", line 633, in _goal2transaction
    ts.add_install(pkg, obs, reason)
  File "/usr/lib/python3.7/site-packages/dnf/db/group.py", line 256, in add_install
    ti_new = self.new(new, libdnf.transaction.TransactionItemAction_INSTALL, reason)
  File "/usr/lib/python3.7/site-packages/dnf/db/group.py", line 219, in new
    rpm_item = self._pkg_to_swdb_rpm_item(pkg)
  File "/usr/lib/python3.7/site-packages/dnf/db/group.py", line 210, in _pkg_to_swdb_rpm_item
    rpm_item = self.history.swdb.createRPMItem()
  File "/usr/lib/python3.7/site-packages/dnf/db/history.py", line 291, in swdb
    self._swdb = libdnf.transaction.Swdb(self.dbpath)
  File "/usr/lib64/python3.7/site-packages/libdnf/transaction.py", line 729, in __init__
    this = _transaction.new_Swdb(*args)
RuntimeError: C++ std::exception: Exec failed: database is locked

Local variables in innermost frame:
self: <libdnf.transaction.Swdb;  >
args: ('/var/lib/dnf/history.sqlite',)

Comment 1 Niki Guldbrand 2018-09-18 18:34:08 UTC
Created attachment 1484464 [details]
File: backtrace

Comment 2 Niki Guldbrand 2018-09-18 18:34:17 UTC
Created attachment 1484465 [details]
File: cgroup

Comment 3 Niki Guldbrand 2018-09-18 18:34:24 UTC
Created attachment 1484466 [details]
File: cpuinfo

Comment 4 Niki Guldbrand 2018-09-18 18:34:32 UTC
Created attachment 1484467 [details]
File: dnf-makecache.log

Comment 5 Niki Guldbrand 2018-09-18 18:34:35 UTC
Created attachment 1484468 [details]
File: environ

Comment 6 Niki Guldbrand 2018-09-18 18:34:40 UTC
Created attachment 1484469 [details]
File: machineid

Comment 7 Niki Guldbrand 2018-09-18 18:34:47 UTC
Created attachment 1484470 [details]
File: mountinfo

Comment 8 Niki Guldbrand 2018-09-18 18:34:54 UTC
Created attachment 1484471 [details]
File: namespaces

Comment 9 Niki Guldbrand 2018-09-18 18:34:55 UTC
Created attachment 1484472 [details]
File: open_fds

Comment 10 Daniel Mach 2018-09-24 11:28:23 UTC
This will require to implement busy waiting mechanism in the database connector in libdnf.

Comment 11 Kamil Páral 2018-10-15 10:46:14 UTC
Similar problem has been detected:

This happens if you hit bug 1637496 (update from older rtkit to newer rtkit and the older one is not removed correctly) and then run another dnf operation (dnf install package). The instalaltion fails with a traceback, but it seems the transaction finished fine (my package is installed).

reporter:       libreport-2.9.5
cmdline:        /usr/bin/python3 /usr/bin/dnf install iotop
crash_function: __init__
exception_type: RuntimeError
executable:     /usr/bin/dnf
interpreter:    python3-3.7.0-9.fc29.x86_64
kernel:         4.18.10-300.fc29.x86_64
package:        dnf-3.5.1-1.fc29
reason:         transaction.py:729:__init__:RuntimeError: C++ std::exception: Exec failed: database is locked
runlevel:       N 5
type:           Python3
uid:            0

Comment 12 Daniel Mach 2019-06-02 04:27:12 UTC

*** This bug has been marked as a duplicate of bug 1631533 ***