Bug 2182414
| Summary: | [RHEL8.6/man-db/Bug] /usr/bin/mandb: iconv_open ("UTF-8//IGNORE", "ISO-8859-2"): Invalid argument errs | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 8 | Reporter: | Rajesh Dulhani <rdulhani> |
| Component: | man-db | Assignee: | Lukas Javorsky <ljavorsk> |
| Status: | CLOSED NEXTRELEASE | QA Contact: | RHEL CS Apps Subsystem QE <rhel-cs-apps-subsystem-qe> |
| Severity: | medium | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 8.6 | CC: | databases-maint, hhorak, jheger, lagordon, osloup, peter.vreman |
| Target Milestone: | rc | Keywords: | Triaged |
| Target Release: | --- | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2023-07-10 09:39:28 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: | |||
Thank you for reporting. Could you please find out if this bug is reproducible? If so, could you please include the reproducer so we can debug it? Summary of analysis: The ISO8859-2 support (/usr/lib64/gconv/ISO8859-2.so) provided by the optional rpm glibc-gconv-extra Reproducer: - Remove optional rpm glibc-gconv-extra - Install vim-common rpm that has a few man pages where it tries to use iso8859-2 - Run 'mandb -c' See attached case for details I confirm that the reproducer works for me as well:
# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.6 (Ootpa)
# rpm -q vim-minimal glibc-gconv-extra
vim-minimal-8.0.1763-19.el8_6.4.x86_64
package glibc-gconv-extra is not installed
# mandb -c
...skipped...
Checking for stray cats under /var/cache/man/ko...
Processing manual pages under /usr/share/man/pl...
Updating index cache for path `/usr/share/man/pl/man1'. Wait...mandb: iconv_open ("UTF-8//IGNORE", "ISO-8859-2"): Invalid argument
mandb: warning: /usr/share/man/pl/man1/evim.1.gz: whatis parse for evim(1) failed
mandb: iconv_open ("UTF-8//IGNORE", "ISO-8859-2"): Invalid argument
mandb: warning: /usr/share/man/pl/man1/vim.1.gz: whatis parse for ex(1) failed
mandb: warning: /usr/share/man/pl/man1/vim.1.gz: whatis parse for rview(1) failed
mandb: warning: /usr/share/man/pl/man1/vim.1.gz: whatis parse for rvim(1) failed
mandb: warning: /usr/share/man/pl/man1/vim.1.gz: whatis parse for view(1) failed
mandb: warning: /usr/share/man/pl/man1/vim.1.gz: whatis parse for vim(1) failed
mandb: iconv_open ("UTF-8//IGNORE", "ISO-8859-2"): Invalid argument
mandb: warning: /usr/share/man/pl/man1/vimdiff.1.gz: whatis parse for vimdiff(1) failed
mandb: iconv_open ("UTF-8//IGNORE", "ISO-8859-2"): Invalid argument
mandb: warning: /usr/share/man/pl/man1/vimtutor.1.gz: whatis parse for vimtutor(1) failed
mandb: iconv_open ("UTF-8//IGNORE", "ISO-8859-2"): Invalid argument
mandb: warning: /usr/share/man/pl/man1/xxd.1.gz: whatis parse for xxd(1) failed
Updating index cache for path `/usr/share/man/pl/man5'. Wait...done.
...skipped...
Checking for stray cats under /usr/local/share/man...
Checking for stray cats under /var/cache/man/local...
113 man subdirectories contained newer manual pages.
3879 manual pages were added.
0 stray cats were added.
What is not clear to me is whether expecting this to work fine without glibc-gconv-extra package installed is a valid use case, because as the description of this package says: "This package contains all iconv converter modules built in glibc."
I understand that allowing users to uninstall this package and then seeing some commands to yield warnings is not perfect.
On the other hand, allowing to uninstall this package is definitely a valid use case for systems where a minimal footprint is required. In those cases, accepting some commands not to run perfectly might be what we actually expect. In other words, uninstalling the package has some cost.
Adding a strict dependency to man-db to require glibc-gconv-extra package everytime would disallow to have man command available for the mentioned minimal footprint systems, so I don't see this as a perfect scenario.
There is also an easy work-around -- install glibc-gconv-extra package for systems where `mandb -c` command should not yield any warnings, which seems like an easy step.
Based on all the thoughts above, I'd incline to keep the status quo myself.
Hi Peter, I apologize for the delay. I agree with Honza's proposal, as we know some systems aim for a minimal footprint, we need to keep that in mind. The `glibc-gconv-extra` alone has 6.1M size which is 3 times bigger than the `man-db` package with 1.9M size. We can add 'Suggests: glibc-gconv-extra' to the man-db package. A KB Solution article with the content of the BZ on the warning and the root cause (missing iconv tables provided by glibc-gconv-exrta) and the reasons why there is no dependency and how to fix it will also help. At least for me it would have saved many hours of running strace if the googling for the warning line would have a match in the KB. Having the Suggests might be an additional improvement Yes, I'll create the article with the help of our Docs team, and I'll add the 'Suggests'. Thank you so much for the report, Peter. We will keep this BZ updated with the progress. KCS article is created --> https://access.redhat.com/solutions/7023601 and published. We've decided to add `Recommends` to the Fedora repository (for future RHELs) for now. As this won't bring much value to backport it to current RHEL distros. The solution article is the important one, and we want to thank you Peter for your investigation work. |
Description of problem: On the AWS instance seen only " /usr/bin/mandb: iconv_open ("UTF-8//IGNORE", "ISO-8859-2"): Invalid argument" is logged 5 times every time the man db cache is updated. ~~~ :~$ sudo systemctl status man-db-cache-update ● man-db-cache-update.service Loaded: loaded (/usr/lib/systemd/system/man-db-cache-update.service; static; vendor preset: disabled) Active: inactive (dead) Mar 23 16:12:19 ip-10-214-52-123.eu-west-1.compute.internal sh[1797552]: /usr/bin/mandb: iconv_open ("UTF-8//IGNORE", "ISO-8859-2"): Invalid argument Mar 23 16:12:19 ip-10-214-52-123.eu-west-1.compute.internal sh[1797556]: /usr/bin/mandb: iconv_open ("UTF-8//IGNORE", "ISO-8859-2"): Invalid argument Mar 23 16:12:19 ip-10-214-52-123.eu-west-1.compute.internal sh[1797560]: /usr/bin/mandb: iconv_open ("UTF-8//IGNORE", "ISO-8859-2"): Invalid argument Mar 23 16:12:19 ip-10-214-52-123.eu-west-1.compute.internal sh[1797564]: /usr/bin/mandb: iconv_open ("UTF-8//IGNORE", "ISO-8859-2"): Invalid argument Mar 23 16:12:19 ip-10-214-52-123.eu-west-1.compute.internal sh[1797568]: /usr/bin/mandb: iconv_open ("UTF-8//IGNORE", "ISO-8859-2"): Invalid argument Mar 23 16:12:21 ip-10-214-52-123.eu-west-1.compute.internal systemd[1]: man-db-cache-update.service: Succeeded. Mar 23 16:12:21 ip-10-214-52-123.eu-west-1.compute.internal systemd[1]: Started man-db-cache-update.service. Mar 23 16:33:40 ip-10-214-52-123.eu-west-1.compute.internal systemd[1]: Starting man-db-cache-update.service... Mar 23 16:33:40 ip-10-214-52-123.eu-west-1.compute.internal systemd[1]: man-db-cache-update.service: Succeeded. Mar 23 16:33:40 ip-10-214-52-123.eu-west-1.compute.internal systemd[1]: Started man-db-cache-update.service. ~~~ Version-Release number of selected component (if applicable): Package - man-db-2.7.6.1-18.el8.x86_64.rpm Actual results: On the AWS instance seen only " /usr/bin/mandb: iconv_open ("UTF-8//IGNORE", "ISO-8859-2"): Invalid argument" is logged 5 times every time the man db cache is updated. Expected results: Invalid argument should not be looged in. Additional info: