Bug 2231593

Summary: [abrt] python3-argcomplete: __getitem__(): __init__.py:287:__getitem__:KeyError: 'console_scripts'
Product: [Fedora] Fedora Reporter: Mamoru TASAKA <mtasaka>
Component: python-argcompleteAssignee: Miro Hrončok <mhroncok>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 39CC: droidbittin, igor.raits, jani, maxwell, mfabik, mhroncok, msrb, mtasaka, python-packagers-sig, steve.traylen
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: x86_64   
OS: Unspecified   
URL: https://retrace.fedoraproject.org/faf/reports/bthash/f9ccacd9d3cfa5fcbb63747e419fb0b54c31fab
Whiteboard: abrt_hash:3691f92589ce3b3ab9c1feb283915dd5541cec28;VARIANT_ID=;
Fixed In Version: python-argcomplete-2.0.0-11.fc40 python-argcomplete-2.0.0-11.fc39 python-argcomplete-2.0.0-12.fc40 python-argcomplete-2.0.0-12.fc39 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-09-21 00:16:09 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:
Bug Depends On:    
Bug Blocks: 2135404, 2143445    
Attachments:
Description Flags
File: environ
none
File: mountinfo
none
File: open_fds
none
File: namespaces
none
File: backtrace
none
File: os_info
none
File: cpuinfo none

Description Mamoru TASAKA 2023-08-12 08:33:55 UTC
Description of problem:
1. launch a new terminal (such as gnome-terminal)
2. On new terminal, type $ koji <tab><tab>

Then this backtrace occurrs (100% reproducible)

koji-1.33.1-2.fc39.noarch
python3-argcomplete-2.0.0-10.fc39.noarch

Version-Release number of selected component:
python3-argcomplete-2.0.0-10.fc39

Additional info:
reporter:       libreport-2.17.11
runlevel:       N 5
interpreter:    python3-3.12.0~rc1-1.fc39.x86_64
reason:         __init__.py:287:__getitem__:KeyError: 'console_scripts'
exception_type: StopIteration
crash_function: __getitem__
cmdline:        /usr/bin/python3 -m argcomplete._check_console_script /bin/koji
type:           Python3
kernel:         6.4.9-200.fc38.x86_64
cgroup:         0::/user.slice/user-500.slice/user/app.slice/app-org.gnome.Terminal.slice/vte-spawn-df5ed674-d1c2-4411-876d-8022134f2db2.scope
uid:            500
executable:     /usr/lib/python3.12/site-packages/argcomplete/_check_console_script.py
package:        python3-argcomplete-2.0.0-10.fc39

Truncated backtrace:
#1 [/usr/lib64/python3.12/importlib/metadata/__init__.py:285] __getitem__


Potential duplicate: bug 2231589

Comment 1 Mamoru TASAKA 2023-08-12 08:33:59 UTC
Created attachment 1983100 [details]
File: environ

Comment 2 Mamoru TASAKA 2023-08-12 08:34:01 UTC
Created attachment 1983101 [details]
File: mountinfo

Comment 3 Mamoru TASAKA 2023-08-12 08:34:02 UTC
Created attachment 1983102 [details]
File: open_fds

Comment 4 Mamoru TASAKA 2023-08-12 08:34:04 UTC
Created attachment 1983103 [details]
File: namespaces

Comment 5 Mamoru TASAKA 2023-08-12 08:34:06 UTC
Created attachment 1983104 [details]
File: backtrace

Comment 6 Mamoru TASAKA 2023-08-12 08:34:07 UTC
Created attachment 1983105 [details]
File: os_info

Comment 7 Mamoru TASAKA 2023-08-12 08:34:08 UTC
Created attachment 1983106 [details]
File: cpuinfo

Comment 9 Miro Hrončok 2023-08-13 17:58:11 UTC
*** Bug 2231589 has been marked as a duplicate of this bug. ***

Comment 11 Fedora Update System 2023-08-14 04:13:50 UTC
FEDORA-2023-530e9e4567 has been submitted as an update to Fedora 39. https://bodhi.fedoraproject.org/updates/FEDORA-2023-530e9e4567

Comment 12 Fedora Update System 2023-08-14 04:14:35 UTC
FEDORA-2023-237c202647 has been submitted as an update to Fedora 40. https://bodhi.fedoraproject.org/updates/FEDORA-2023-237c202647

Comment 13 Fedora Update System 2023-08-14 05:24:37 UTC
FEDORA-2023-237c202647 has been pushed to the Fedora 40 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 14 Fedora Update System 2023-08-14 05:45:36 UTC
FEDORA-2023-530e9e4567 has been pushed to the Fedora 39 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 15 Lukas Ruzicka 2023-08-30 08:32:04 UTC
I wanted to have the path argument autocompleted and pressed tab when this occured.


reporter:       libreport-2.17.11
kernel:         6.5.0-57.fc39.x86_64
cmdline:        /usr/bin/python3 -m argcomplete._check_console_script /home/lruzicka/.local/bin/needly
cgroup:         0::/user.slice/user-1000.slice/user/app.slice/vte-spawn-f39e3819-9344-44c0-acc9-d3a1f3b0510a.scope
uid:            1000
reason:         __init__.py:287:__getitem__:KeyError: 'console_scripts'
executable:     /usr/lib/python3.12/site-packages/argcomplete/_check_console_script.py
type:           Python3
package:        python3-argcomplete-2.0.0-11.fc39
runlevel:       N 5
exception_type: StopIteration
crash_function: __getitem__
interpreter:    python3-3.12.0~rc1-1.fc39.x86_64
comment:        I wanted to have the path argument autocompleted and pressed tab when this occured.

Comment 16 leigh scott 2023-09-06 16:24:29 UTC
Occurs when I use fedpkg or rfpkg command.


reporter:       libreport-2.17.11
executable:     /usr/lib/python3.12/site-packages/argcomplete/_check_console_script.py
uid:            1000
cgroup:         0::/user.slice/user-1000.slice/user/app.slice/app-org.gnome.Terminal.slice/vte-spawn-823f1d72-1d0e-44a9-aad2-dd6fbfe4d452.scope
crash_function: __getitem__
cmdline:        /usr/bin/python3 -m argcomplete._check_console_script /usr/bin/koji-rpmfusion
comment:        Occurs when I use fedpkg or rfpkg command.
runlevel:       N 5
interpreter:    python3-3.12.0~rc1-1.fc39.x86_64
kernel:         6.5.0-0.rc5.20230808git14f9643dc90a.37.fc39.x86_64
exception_type: StopIteration
type:           Python3
package:        python3-argcomplete-2.0.0-10.fc39
reason:         __init__.py:287:__getitem__:KeyError: 'console_scripts'

Comment 17 leigh scott 2023-09-07 08:10:29 UTC
using rfpkg and koji-rpmfusion command


reporter:       libreport-2.17.11
executable:     /usr/lib/python3.12/site-packages/argcomplete/_check_console_script.py
uid:            1000
cgroup:         0::/user.slice/user-1000.slice/user/app.slice/app-org.gnome.Terminal.slice/vte-spawn-8091ff98-fb09-41b8-a1c6-55cc868e1beb.scope
crash_function: __getitem__
cmdline:        /usr/bin/python3 -m argcomplete._check_console_script /usr/bin/rfpkg
comment:        using rfpkg and koji-rpmfusion command
runlevel:       N 5
interpreter:    python3-3.12.0~rc1-1.fc39.x86_64
kernel:         6.5.0-57.fc39.x86_64
exception_type: StopIteration
type:           Python3
package:        python3-argcomplete-2.0.0-11.fc39
reason:         __init__.py:287:__getitem__:KeyError: 'console_scripts'

Comment 18 leigh scott 2023-09-07 08:13:00 UTC
I still get the issue with the fixed version.

Comment 19 Kamil Páral 2023-09-14 11:18:39 UTC
Trying to autocomplete "koji downl<tab>"


reporter:       libreport-2.17.11
kernel:         6.5.3-300.fc39.x86_64
cmdline:        /usr/bin/python3 -m argcomplete._check_console_script /usr/bin/koji
cgroup:         0::/user.slice/user-1000.slice/user/app.slice/app-org.gnome.Terminal.slice/vte-spawn-ee64f5b7-c328-4fba-8ac2-ed125a1de973.scope
uid:            1000
reason:         __init__.py:287:__getitem__:KeyError: 'console_scripts'
executable:     /usr/lib/python3.12/site-packages/argcomplete/_check_console_script.py
type:           Python3
package:        python3-argcomplete-2.0.0-11.fc39
runlevel:       N 5
exception_type: StopIteration
crash_function: __getitem__
interpreter:    python3-3.12.0~rc2-1.fc39.x86_64
comment:        Trying to autocomplete "koji downl<tab>"

Comment 20 Miro Hrončok 2023-09-14 12:16:16 UTC
The patch we packported https://github.com/kislyuk/argcomplete/commit/f4d046c0cec1dab17f65853442b1da7d341e2915 makes an assumption:

    # The importlib_metadata backport returns a tuple of entry point objects
    # whereas the official library returns a SelectableGroups object
    if not use_entry_points_backport:
        entry_points = entry_points["console_scripts"] # type:ignore

However, the Python 3.12 "official library" returns a tuple as well. Observe:

$ python3  # on Fedora 38
Python 3.11.5 (main, Aug 28 2023, 00:00:00) [GCC 13.2.1 20230728 (Red Hat 13.2.1-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from importlib.metadata import entry_points as importlib_entry_points
>>> entry_points = importlib_entry_points()
>>> entry_points
{'babel.checkers': [EntryPoint(name='num_plurals', value='babel.messages.checkers:num_plurals', group='babel.checkers'), ...}
>> entry_points["console_scripts"]
<stdin>:1: DeprecationWarning: SelectableGroups dict interface is deprecated. Use select.
[EntryPoint(name='distro', value='distro.distro:main', group='console_scripts'), ...]


$ python3  # on Fedora 39
Python 3.12.0rc1 (main, Aug  7 2023, 00:00:00) [GCC 13.2.1 20230728 (Red Hat 13.2.1-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from importlib.metadata import entry_points as importlib_entry_points
>>> entry_points = importlib_entry_points()
>>> entry_points
(EntryPoint(name='cffi_modules', value='cffi.setuptools_ext:cffi_modules', group='distutils.setup_keywords'), ...)
>>> entry_points["console_scripts"]
Traceback (most recent call last):
  File "/usr/lib64/python3.12/importlib/metadata/__init__.py", line 285, in __getitem__
    return next(iter(self.select(name=name)))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
StopIteration

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python3.12/importlib/metadata/__init__.py", line 287, in __getitem__
    raise KeyError(name)
KeyError: 'console_scripts'

Comment 21 Miro Hrončok 2023-09-14 12:41:31 UTC
I'd appreciate it if you could test the probable fix:

https://src.fedoraproject.org/rpms/python-argcomplete/pull-request/20 (rawhide)
https://src.fedoraproject.org/rpms/python-argcomplete/pull-request/21 (f39)

Comment 22 Miro Hrončok 2023-09-14 12:49:17 UTC
I downloaded Fedora-Workstation-Live-x86_64-39-20230914.n.0.iso and booted it up.

Apparently, it contains python3-argcomplete, so let's request a freeze exception.


  liveuser@localhost-live:~$ rpm -q python3-argcomplete
  python3-argcomplete-2.0.0-11.fc39.noarch

I'll try to figure out what uses argcomplete there and try to reproduce the problem and test the fix.

Comment 23 Miro Hrončok 2023-09-14 12:54:38 UTC
liveuser@localhost-live:~$ dnf repoquery --installed --whatrequires python3-argcomplete
abrt-tui-0:2.17.1-3.fc39.noarch

liveuser@localhost-live:~$ rpm -ql abrt-tui | grep /bin
/usr/bin/abrt
/usr/bin/abrt-cli


abrt(-cli) is not a console script entyrpoint. I cannot reproduce a crash with it.



Installing /usr/bin/koji and trying `koji downl<tab>` -- I still cannot reproduce the crash :(

Comment 24 Maxwell G 2023-09-16 21:52:50 UTC
I cannot reproduce this failure either. I tested with multiple packages that provide argcomplete completions scripts.

$ rpm -q koji python3-argcomplete bash-completion fedpkg ansible-core
koji-1.33.1-2.fc39.noarch
python3-argcomplete-2.0.0-11.fc40.noarch
bash-completion-2.11-12.fc39.noarch
fedpkg-1.44-6.fc39.noarch
ansible-core-2.15.4-1.fc40.noarch
$ koji download<tab>
download-build  download-logs   download-task
$ fedpkg cl<tab>
clean  clog   clone
$ ansible-playbook --f<tab>
--flush-cache     --force-handlers  --forks

Comment 25 Fedora Update System 2023-09-19 10:24:29 UTC
FEDORA-2023-36405da4ad has been submitted as an update to Fedora 40. https://bodhi.fedoraproject.org/updates/FEDORA-2023-36405da4ad

Comment 26 Fedora Update System 2023-09-19 11:38:08 UTC
FEDORA-2023-36405da4ad has been pushed to the Fedora 40 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 27 Fedora Update System 2023-09-19 13:11:35 UTC
FEDORA-2023-c08ad96e9c has been submitted as an update to Fedora 39. https://bodhi.fedoraproject.org/updates/FEDORA-2023-c08ad96e9c

Comment 28 Fedora Update System 2023-09-20 02:07:06 UTC
FEDORA-2023-c08ad96e9c has been pushed to the Fedora 39 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2023-c08ad96e9c`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2023-c08ad96e9c

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 29 Jani Heinonen 2023-09-20 07:14:44 UTC
This is a fresh install of Fedora39 KDE spin and looking at the time of the error, it has happened right after the install or on the initial updates.


reporter:       libreport-2.17.11
kernel:         6.5.2-301.fc39.x86_64
cmdline:        /usr/bin/python3 -m argcomplete._check_console_script /usr/bin/dnf
cgroup:         0::/user.slice/user-1000.slice/session-4.scope
uid:            0
reason:         __init__.py:287:__getitem__:KeyError: 'console_scripts'
executable:     /usr/lib/python3.12/site-packages/argcomplete/_check_console_script.py
type:           Python3
package:        python3-argcomplete-2.0.0-11.fc39
runlevel:       N 5
exception_type: StopIteration
crash_function: __getitem__
interpreter:    python3-3.12.0~rc1-1.fc39.x86_64
comment:        This is a fresh install of Fedora39 KDE spin and looking at the time of the error, it has happened right after the install or on the initial updates.

Comment 30 Jani Heinonen 2023-09-20 07:36:41 UTC
Did not notice the fix, so my report is not usefull anymore. I apologize for the extra report and will try the fix later, it was not available yet for me

Comment 31 Sandro Bonazzola 2023-09-20 07:50:31 UTC
in a gnome-terminal, write `meld` and hit `tab` key for triggering autocompletion


reporter:       libreport-2.17.11
kernel:         6.5.3-300.fc39.x86_64
cmdline:        /usr/bin/python3 -m argcomplete._check_console_script /usr/bin/meld
cgroup:         0::/user.slice/user-20528.slice/user/app.slice/app-org.gnome.Terminal.slice/vte-spawn-e4b10005-c035-4d37-95d0-8ddfc061f284.scope
uid:            0
reason:         __init__.py:287:__getitem__:KeyError: 'console_scripts'
executable:     /usr/lib/python3.12/site-packages/argcomplete/_check_console_script.py
type:           Python3
package:        python3-argcomplete-2.0.0-11.fc39
runlevel:       N 5
exception_type: StopIteration
crash_function: __getitem__
interpreter:    python3-3.12.0~rc2-1.fc39.x86_64
comment:        in a gnome-terminal, write `meld` and hit `tab` key for triggering autocompletion

Comment 32 Sandro Bonazzola 2023-09-20 07:57:36 UTC
Verified fixed with python-argcomplete-2.0.0-12.fc39 following reproduction steps both in #c0 and #c31

Comment 33 Fedora Update System 2023-09-21 00:16:09 UTC
FEDORA-2023-c08ad96e9c has been pushed to the Fedora 39 stable repository.
If problem still persists, please make note of it in this bug report.