Bug 1598590 - dnf RuntimeError: C++ std::exception: Step: UNIQUE constraint failed
Summary: dnf RuntimeError: C++ std::exception: Step: UNIQUE constraint failed
Keywords:
Status: CLOSED DUPLICATE of bug 1596827
Alias: None
Product: Fedora
Classification: Fedora
Component: dnf
Version: 29
Hardware: x86_64
OS: Linux
unspecified
unspecified
Target Milestone: ---
Assignee: rpm-software-management
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-07-05 22:12 UTC by Vinson Lee
Modified: 2018-09-25 21:48 UTC (History)
11 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2018-09-14 19:12:29 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
History DB on which dnf 3 fails. (3.59 MB, application/octet-stream)
2018-07-12 20:20 UTC, srakitnican
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Red Hat Bugzilla 1600917 0 unspecified CLOSED libdnf Segmentation fault after update 2021-02-22 00:41:40 UTC
Red Hat Bugzilla 1627534 0 unspecified CLOSED A lot of errors "TransactionItem not found" during update 2021-02-22 00:41:40 UTC

Internal Links: 1600917 1627534

Description Vinson Lee 2018-07-05 22:12:27 UTC
Description of problem:
dnf RuntimeError: C++ std::exception: Step: UNIQUE constraint failed

Version-Release number of selected component (if applicable):
dnf-3.0.1-1.fc29.noarch

How reproducible:
Always

Steps to Reproduce:
$ sudo dnf update
Last metadata expiration check: 3:29:46 ago on Thu 05 Jul 2018 11:41:05 AM PDT.
Traceback (most recent call last):
  File "/usr/bin/dnf", line 58, in <module>
    main.user_main(sys.argv[1:], exit_code=True)
  File "/usr/lib/python3.6/site-packages/dnf/cli/main.py", line 179, in user_main
    errcode = main(args)
  File "/usr/lib/python3.6/site-packages/dnf/cli/main.py", line 64, in main
    return _main(base, args, cli_class, option_parser_class)
  File "/usr/lib/python3.6/site-packages/dnf/cli/main.py", line 99, in _main
    return cli_run(cli, base)
  File "/usr/lib/python3.6/site-packages/dnf/cli/main.py", line 123, in cli_run
    ret = resolving(cli, base)
  File "/usr/lib/python3.6/site-packages/dnf/cli/main.py", line 146, in resolving
    base.resolve(cli.demands.allow_erasing)
  File "/usr/lib/python3.6/site-packages/dnf/base.py", line 817, in resolve
    self._transaction = self._goal2transaction(goal)
  File "/usr/lib/python3.6/site-packages/dnf/base.py", line 725, in _goal2transaction
    ts.add_install(pkg, obs, reason)
  File "/usr/lib/python3.6/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.6/site-packages/dnf/db/group.py", line 219, in new
    rpm_item = self._pkg_to_swdb_rpm_item(pkg)
  File "/usr/lib/python3.6/site-packages/dnf/db/group.py", line 210, in _pkg_to_swdb_rpm_item
    rpm_item = self.history.swdb.createRPMItem()
  File "/usr/lib/python3.6/site-packages/dnf/db/history.py", line 290, in swdb
    self._swdb = libdnf.transaction.Swdb(self.dbpath)
  File "/usr/lib64/python3.6/site-packages/libdnf/transaction.py", line 713, in __init__
    this = _transaction.new_Swdb(*args)
RuntimeError: C++ std::exception: Step: UNIQUE constraint failed: comps_environment_group.environment_id, comps_environment_group.groupid in

        INSERT INTO
            comps_environment_group (
                environment_id,
                groupid,
                installed,
                group_type
            )
        VALUES
            (45529, 'admin-tools', 1, 4)


Actual results:


Expected results:


Additional info:

Comment 1 srakitnican 2018-07-10 08:52:26 UTC
In my case the bug is triggered with 'install' dnf command since there are no new upgrades available.

dnf-3.0.2-1.fc29.noarch


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 817, in resolve
    self._transaction = self._goal2transaction(goal)
  File "/usr/lib/python3.7/site-packages/dnf/base.py", line 725, 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 290, in swdb
    self._swdb = libdnf.transaction.Swdb(self.dbpath)
  File "/usr/lib64/python3.7/site-packages/libdnf/transaction.py", line 713, in __init__
    this = _transaction.new_Swdb(*args)
RuntimeError: C++ std::exception: Step: UNIQUE constraint failed: comps_environment_group.environment_id, comps_environment_group.groupid in

        INSERT INTO
            comps_environment_group (
                environment_id,
                groupid,
                installed,
                group_type
            )
        VALUES
            (4392, 'fonts', 1, 4)

Comment 2 srakitnican 2018-07-12 16:49:31 UTC
Tried upgrading to 3.0.3 from koji: https://koji.fedoraproject.org/koji/buildinfo?buildID=1105289

But the issue persists. Any other step necessary?

Comment 3 srakitnican 2018-07-12 20:02:42 UTC
Asked on fedora-devel, and apparently it is not a common issue.

Removing the old history DB[1] makes it work again.


[1] https://lists.fedoraproject.org/archives/list/test@lists.fedoraproject.org/message/YORASOA6X7BT3Y5743344O5NFDQVBOJS/

Comment 4 srakitnican 2018-07-12 20:20:00 UTC
Created attachment 1458556 [details]
History DB on which dnf 3 fails.

Also `dnf --installroot` from an old Fedora release works fine on that history DB.

Comment 5 Jan Kurik 2018-08-14 09:55:26 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 29 development cycle.
Changing version to '29'.

Comment 6 Adam Williamson 2018-09-14 19:12:29 UTC

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

Comment 7 srakitnican 2018-09-25 21:48:39 UTC
dnf-3.6.1 works with attached history.


Note You need to log in before you can comment on or make changes to this bug.