command-not-found v0.3 (18.04.5-1) crashed
Open, Needs TriagePublic

Description

When entering a command which is not available, command-not-found should tell the package where the command might be part of.
Instead, it crashed with error message:

Could not find the database of available applications, run update-command-not-found as root to fix this
Sorry, command-not-found has crashed! Please file a bug report at:
http://www.debian.org/Bugs/Reporting
Please include the following information with the report:

command-not-found version: 0.3
Python version: 3.6.7 final 0
Distributor ID:	PureOS
Description:	PureOS GNU/Linux 8
Release:	8
Codename:	green
Exception information:

local variable 'cnf' referenced before assignment
Traceback (most recent call last):
  File "/usr/share/command-not-found/CommandNotFound/util.py", line 23, in crash_guard
    callback()
  File "/usr/lib/command-not-found", line 93, in main
    if not cnf.advise(args[0], options.ignore_installed) and not options.no_failure_msg:
UnboundLocalError: local variable 'cnf' referenced before assignment

Running update-command-not-found as root doesn't help. The *.db Files in /var/cache/command-not-found are outdated (last modified in July).

The package command-not-found was updated today on my system from 0.2.38-4 to 18.04.5-1.

hethi created this task.Thu, Nov 29, 10:02 AM

I assume that building the database failed (though update-command-not-found didn't issue any message), as /var/lib/command-not-found is empty, which seems to be the (new?) place of the database (according to `/usr/share/command-not-found/CommandNotFound/CommandNotFound.py).

The path /var/cache/command-not-found doesn't belong to any package anymore (according to dpkg -S /var/cache/command-not-found); should'nt it be removed during upgrade? There was a warning in the upgrade message (stored in /var/log/apt/term.log):

Preparing to unpack .../00-command-not-found_18.04.5-1_all.deb ...
Unpacking command-not-found (18.04.5-1) over (0.2.38-4) ...
dpkg: warning: unable to delete old directory '/var/cache/command-not-found': Directory not empty
...
Setting up command-not-found (18.04.5-1) ...
Installing new version of config file /etc/zsh_command_not_found ...
You need to run 'update-command-not-found' as root to update the cache.

Updating the command not found database didn't work as there are no Contents files (/var/lib/apt/lists/*Contents*) which are required by update-command-not-found.

The tool should issue some hint if there are no contents files, though.

hethi added a project: Restricted Project.Thu, Nov 29, 10:48 AM
Wayne added a subscriber: Wayne.Thu, Nov 29, 1:51 PM

Add Comment