Bug 1599185

Summary: dnf update crashed with exception: TransactionItem state is not set
Product: [Fedora] Fedora Reporter: Marek Blaha <mblaha>
Component: dnfAssignee: rpm-software-management
Status: CLOSED DUPLICATE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 28CC: dmach, mblaha, packaging-team-maint, rbarlow, rpm-software-management, vmukhame
Target Milestone: ---Keywords: Triaged
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: 2019-03-08 06:43:16 UTC Type: Bug
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
dnf.log none

Description Marek Blaha 2018-07-09 06:57:45 UTC
Created attachment 1457375 [details]
dnf.log

version:
dnf-3.0.1-1.fc28.noarch
libdnf-0.15.1-1.fc28.x86_64

Description of problem:

$ dnf update
.
.
.
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.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 154, in resolving
    base.do_transaction(display=displays)
  File "/usr/lib/python3.6/site-packages/dnf/cli/cli.py", line 234, in do_transaction
    super(BaseCli, self).do_transaction(display)
  File "/usr/lib/python3.6/site-packages/dnf/base.py", line 904, in do_transaction
    self._run_transaction(cb=cb)
  File "/usr/lib/python3.6/site-packages/dnf/base.py", line 1048, in _run_transaction
    self._verify_transaction(cb.verify_tsi_package)
  File "/usr/lib/python3.6/site-packages/dnf/base.py", line 1084, in _verify_transaction
    self.history.end(rpmdbv, 0)
  File "/usr/lib/python3.6/site-packages/dnf/db/history.py", line 490, in end
    bool(return_code)
  File "/usr/lib64/python3.6/site-packages/libdnf/transaction.py", line 742, in endTransaction
    return _transaction.Swdb_endTransaction(self, dtEnd, rpmdbVersionEnd, state)
RuntimeError: C++ std::exception: TransactionItem state is not set: vulkan-1.1.73.0-1.fc28.x86_64

There was a lot of tracebacks when running scriptlets like:

2018-07-09T06:27:01Z CRITICAL Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/dnf/yum/rpmtrans.py", line 228, in callback
    return tsi.pkg, tsi.action, tsi
  File "/usr/lib/python3.6/site-packages/dnf/yum/rpmtrans.py", line 310, in _uninst_progress
    self.fd.close()
  File "/usr/lib/python3.6/site-packages/dnf/yum/rpmtrans.py", line 200, in _extract_cbkey
    return None
RuntimeError: TransactionItem not found for key: grub2-tools-extra

All these errors can be seen in attached dnf.log.

Comment 1 Randy Barlow 2018-07-17 05:46:29 UTC
I can confirm this problem happens on Rawhide as well. After a dnf upgrade there, I saw the same traceback:

<snip>
  Verifying        : kernel-4.18.0-0.rc0.git9.1.fc29.x86_64                                                                                                                                                                           208/210 
  Verifying        : kernel-core-4.18.0-0.rc0.git9.1.fc29.x86_64                                                                                                                                                                      209/210 
  Verifying        : kernel-modules-4.18.0-0.rc0.git9.1.fc29.x86_64                                                                                                                                                                   210/210 
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.
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.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 154, in resolving
    base.do_transaction(display=displays)
  File "/usr/lib/python3.7/site-packages/dnf/cli/cli.py", line 234, in do_transaction
    super(BaseCli, self).do_transaction(display)
  File "/usr/lib/python3.7/site-packages/dnf/base.py", line 904, in do_transaction
    self._run_transaction(cb=cb)
  File "/usr/lib/python3.7/site-packages/dnf/base.py", line 1048, in _run_transaction
    self._verify_transaction(cb.verify_tsi_package)
  File "/usr/lib/python3.7/site-packages/dnf/base.py", line 1084, in _verify_transaction
    self.history.end(rpmdbv, 0)
  File "/usr/lib/python3.7/site-packages/dnf/db/history.py", line 490, in end
    bool(return_code)
  File "/usr/lib64/python3.7/site-packages/libdnf/transaction.py", line 742, in endTransaction
    return _transaction.Swdb_endTransaction(self, dtEnd, rpmdbVersionEnd, state)
RuntimeError: C++ std::exception: TransactionItem state is not set: grub2-tools-1:2.02-37.fc29.x86_64

Comment 2 Daniel Mach 2019-03-08 06:43:16 UTC

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