Oralce Linux8上でHyper Estraier/QDBMがコアダンプし動作しない


RHEL8/CentOS8/Oralce Linux 8上で、Hyper Estraier および内部で使うQDBMをコンパイルしたところ、コアダンプが発生し、動作できなかった。

$ /usr/local/bin/estcmd gather -cl -il ja -sd casket3 ./draft
/usr/local/bin/estcmd: INFO: reading list from the directory: ./draft
/usr/local/bin/estcmd: ERROR: casket3: database problem
$

調べて見るとgcc7でQDBM 1.8.78をコンパイルすると発生する、とのこと

AmazonLinux2にgcc6をインストール(標準のgcc7と共存させる)

関連情報を探す

Debian Bug report logs – #853627 qdbm: ftbfs with GCC-7
gentoo linux package db qdbm

gentoo linuxのqdbmの内容をおっていくと「https://gitweb.gentoo.org/repo/gentoo.git/tree/dev-db/qdbm/files」にパッチファイルが・・・

qdbm-1.8.78-r2.ebuild に下記の様な記載があるので、この順番でパッチをあててみればいいかと実行

PATCHES=(
	"${FILESDIR}"/${PN}-configure.patch
	"${FILESDIR}"/${PN}-perl.patch
	"${FILESDIR}"/${PN}-ruby19.patch
	"${FILESDIR}"/${PN}-runpath.patch
	"${FILESDIR}"/${PN}-1.8.78-darwin.patch
)

gentoo linuxのページから上記5つのパッチをダウンロードしてきて適用。

[root@pbw work]# tar xfz qdbm-1.8.78.tar.gz
[root@pbw work]# cd qdbm-1.8.78/
[root@pbw qdbm-1.8.78]# patch -p1 < ../qdbm-configure.patch
patching file cgi/configure.in
patching file configure.in
patching file java/configure.in
patching file perl/configure.in
patching file plus/configure.in
patching file ruby/configure.in
[root@pbw qdbm-1.8.78]# patch -p1 < ../qdbm-perl.patch
patching file perl/Makefile.in
[root@pbw qdbm-1.8.78]# patch -p1 < ../qdbm-ruby19.patch
patching file ruby/Makefile.in
patching file ruby/configure.in
Hunk #1 succeeded at 8 (offset -9 lines).
patching file ruby/curia/mod_curia.c
patching file ruby/curia/rbcrtest
patching file ruby/depot/mod_depot.c
patching file ruby/depot/rbdptest
patching file ruby/myrbdoc
patching file ruby/villa/mod_villa.c
patching file ruby/villa/rbvltest
[root@pbw qdbm-1.8.78]# patch -p1 < ../qdbm-runpath.patch
patching file Makefile.in
patching file cgi/Makefile.in
patching file plus/Makefile.in
[root@pbw qdbm-1.8.78]# patch -p1 < ../qdbm-1.8.78
patch: **** read error : Is a directory
[root@pbw qdbm-1.8.78]# patch -p1 < ../qdbm-1.8.78-darwin.patch
patching file Makefile.in
[root@pbw qdbm-1.8.78]#

そして、「./configure; make ; make install」を実行。

そのあとは、Hyper Estraier側は特に再コンパイル等は不要で、コマンドを再実行

$ rm -rf casket3/
$ /usr/local/bin/estcmd gather -cl -il ja -sd casket3 ./draft
/usr/local/bin/estcmd: INFO: reading list from the directory: ./draft
/usr/local/bin/estcmd: INFO: status: name=casket3 dnum=0 wnum=0 fsiz=6899171 crnum=0 csiz=0 dknum=0
/usr/local/bin/estcmd: INFO: 1 (/var/www/cl2/draft/1.html): registered
/usr/local/bin/estcmd: INFO: 2 (/var/www/cl2/draft/10.html): registered
/usr/local/bin/estcmd: INFO: 3 (/var/www/cl2/draft/100.html): registered
<略>
/usr/local/bin/estcmd: INFO: flushing index words: name=casket3 dnum=1663 wnum=238115 fsiz=88518147 crnum=7035 csiz=641234 dknum=0
/usr/local/bin/estcmd: INFO: closing: name=casket3 dnum=1663 wnum=238718 fsiz=88669699 crnum=0 csiz=0 dknum=0
/usr/local/bin/estcmd: INFO: finished successfully: elapsed time: 0h 1m 10s
#

gcc7環境でも問題無く実行できるようになりました。

Oracle Cloud上のOralce Linux 8インスタンスでOSアップデートがpython3-clickの競合で失敗していた


Oracle Cloud上に立てていたOracle Linux 8サーバにdnf automaticによるアップデート設定を書けてあったんだけど、いまみてみたらアップデートが途中から失敗していた模様。

# dnf check-update
Ksplice for Oracle Linux 8 (x86_64)             2.7 MB/s | 418 kB     00:00
MySQL 8.0 for Oracle Linux 8 (x86_64)           7.6 MB/s | 1.6 MB     00:00
MySQL 8.0 Tools Community for Oracle Linux 8 (x 653 kB/s | 106 kB     00:00
MySQL 8.0 Connectors Community for Oracle Linux 109 kB/s |  14 kB     00:00
Oracle Software for OCI users on Oracle Linux 8  31 MB/s | 8.0 MB     00:00
Oracle Linux 8 EPEL Packages for Development (x  39 MB/s |  19 MB     00:00
Oracle Linux 8 BaseOS Latest (x86_64)            42 MB/s |  37 MB     00:00
Oracle Linux 8 Application Stream (x86_64)       42 MB/s |  29 MB     00:00
Latest Unbreakable Enterprise Kernel Release 6   44 MB/s |  22 MB     00:00

iwl100-firmware.noarch     999:39.31.5.1-999.8.el8                 ol8_baseos_latest
iwl1000-firmware.noarch    999:39.31.5.1-999.8.el8                 ol8_baseos_latest
iwl105-firmware.noarch     999:18.168.6.1-999.8.el8                ol8_baseos_latest
iwl135-firmware.noarch     999:18.168.6.1-999.8.el8                ol8_baseos_latest
iwl2000-firmware.noarch    999:18.168.6.1-999.8.el8                ol8_baseos_latest
iwl2030-firmware.noarch    999:18.168.6.1-999.8.el8                ol8_baseos_latest
iwl3160-firmware.noarch    999:25.30.13.0-999.8.el8                ol8_baseos_latest
iwl3945-firmware.noarch    999:15.32.2.9-999.8.el8                 ol8_baseos_latest
iwl4965-firmware.noarch    999:228.61.2.24-999.8.el8               ol8_baseos_latest
iwl5000-firmware.noarch    999:8.83.5.1_1-999.8.el8                ol8_baseos_latest
iwl5150-firmware.noarch    999:8.24.2.2-999.8.el8                  ol8_baseos_latest
iwl6000-firmware.noarch    999:9.221.4.1-999.8.el8                 ol8_baseos_latest
iwl6000g2a-firmware.noarch 999:18.168.6.1-999.8.el8                ol8_baseos_latest
iwl6050-firmware.noarch    999:41.28.5.1-999.8.el8                 ol8_baseos_latest
iwl7260-firmware.noarch    999:25.30.13.0-999.8.el8                ol8_baseos_latest
kernel-uek.x86_64          5.4.17-2102.203.5.el8uek                ol8_UEKR6
kernel-uek-devel.x86_64    5.4.17-2102.203.5.el8uek                ol8_UEKR6
ksplice.x86_64             1.0.55-1.el8                            ol8_ksplice
ksplice-core0.x86_64       1.0.55-1.el8                            ol8_ksplice
ksplice-tools.x86_64       1.0.55-1.el8                            ol8_ksplice
linux-firmware.noarch      999:20210617-999.8.git0f66b74b.el8      ol8_baseos_latest
linux-firmware.src         999:20210617-999.8.git0f66b74b.el8      ol8_baseos_latest
perl-Algorithm-Diff.src    1.1903-10.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-Archive-Tar.src       2.32-440.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Archive-Zip.src       1.67-1.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-CPAN.src              2.27-2.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-CPAN-Meta.src         2.150010-397.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-CPAN-Meta-Requirements.src
                           2.140-397.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-CPAN-Meta-YAML.src    0.018-1001.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Carp.src              1.50-439.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Config-Perl-V.src     0.32-441.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Data-OptList.src      0.110-7.module+el8.3.0+7729+86a74f64    ol8_appstream
perl-Data-Section.src      0.200007-8.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Digest.src            1.17-396.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Env.src               1.04-396.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Exporter.src          5.73-440.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-ExtUtils-CBuilder.src 1:0.280231-439.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-ExtUtils-Install.src  2.14-440.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-ExtUtils-MakeMaker.src
                           2:7.42-1.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-ExtUtils-Manifest.src 1:1.72-438.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-ExtUtils-ParseXS.src  1:3.40-439.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-File-Fetch.src        0.56-3.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-File-HomeDir.src      1.004-6.module+el8.3.0+7729+86a74f64    ol8_appstream
perl-File-Path.src         2.16-439.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-File-Temp.src         1:0.230.900-439.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-File-Which.src        1.23-4.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-Filter-Simple.src     0.95-439.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Getopt-Long.src       1:2.51-1.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-HTTP-Tiny.src         0.076-439.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-IO-Compress.src       2.093-1.module+el8.3.0+7729+86a74f64    ol8_appstream
perl-IO-Socket-IP.src      0.39-6.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-IPC-Cmd.src           2:1.04-2.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-IPC-System-Simple.src 1.25-18.module+el8.3.0+7729+86a74f64    ol8_appstream
perl-JSON-PP.src           1:4.04-2.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Locale-Maketext.src   1.29-440.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-MRO-Compat.src        0.13-5.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-Math-BigInt.src       1:1.9998.18-1.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-Math-BigRat.src       0.2614-2.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Module-Build.src      2:0.42.29-4.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-Module-CoreList.src   1:5.20191220-1.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-Module-Load.src       1:0.34-439.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Module-Load-Conditional.src
                           0.70-1.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-Module-Metadata.src   1.000037-1.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Package-Generator.src 1.106-12.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Params-Check.src      1:0.38-396.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Perl-OSType.src       1.010-397.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-PerlIO-via-QuotedPrint.src
                           0.08-396.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Pod-Checker.src       4:1.73-396.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Pod-Escapes.src       1:1.07-396.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Pod-Parser.src        1.63-1001.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-Pod-Perldoc.src       3.28.01-442.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-Pod-Simple.src        1:3.40-1.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Pod-Usage.src         4:1.69-396.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Software-License.src  0.103014-5.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Sub-Exporter.src      0.987-16.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Sub-Install.src       0.928-15.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Term-ANSIColor.src    4.06-397.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Term-Cap.src          1.17-396.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Test-Harness.src      1:3.42-2.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Test-Simple.src       3:1.302170-1.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-Text-Balanced.src     2.03-396.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Text-Diff.src         1.45-7.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-Text-Glob.src         0.11-5.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-Text-ParseWords.src   3.30-396.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Text-Tabs+Wrap.src    2013.0523-396.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-Text-Template.src     1.58-1.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-Thread-Queue.src      3.13-2.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-Time-Local.src        1:1.280-2.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-URI.src               1.76-5.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-autodie.src           2.29-1001.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-bignum.src            0.51-439.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-constant.src          1.33-1001.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-experimental.src      0.020-439.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-inc-latest.src        2:0.500-10.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-libnet.src            3.11-4.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-local-lib.src         2.000024-7.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-parent.src            1:0.237-2.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-perlfaq.src           5.20191102-1.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-podlators.src         1:4.12-2.module+el8.3.0+7729+86a74f64   ol8_appstream
python3-asn1crypto.noarch  1.3.0-4.el8                             ol8_developer_EPEL
python3-click.noarch       7.1.2-3.el8                             ol8_developer_EPEL
python3-oauthlib.noarch    3.0.2-8.el8                             ol8_developer_EPEL
python36-oci-cli.noarch    2.26.2-1.el8                            ol8_oci_included
python36-oci-sdk.x86_64    2.42.0-1.el8                            ol8_oci_included
Security: kernel-uek-5.4.17-2102.202.5.el8uek.x86_64 is an installed security update
Security: kernel-uek-5.4.17-2102.201.3.el8uek.x86_64 is the currently running version
# dnf update -y
Last metadata expiration check: 0:07:28 ago on Mon 19 Jul 2021 09:41:55 AM JST.
Error:
 Problem: package python36-oci-cli-2.26.2-1.el8.noarch requires python3-click = 6.7, but none of the providers can be installed
  - cannot install both python3-click-7.1.2-3.el8.noarch and python3-click-6.7-8.el8.noarch
  - cannot install both python3-click-6.7-8.el8.noarch and python3-click-7.1.2-3.el8.noarch
  - cannot install the best update candidate for package python36-oci-cli-2.26.1-1.el8.noarch
  - cannot install the best update candidate for package python3-click-6.7-8.el8.noarch
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
#

ol8_developer_EPELレポジトリからpython3-click-7.1.2-3のアップデートがきたけど、python36-oci-cliはpython3-clock-6.7要求だから、失敗、というもの。

現状を確認するために「dnf repolist –all」を実行

]# dnf repolist --all
repo id                          repo name                              status
ol8_MySQL80                      MySQL 8.0 for Oracle Linux 8 (x86_64)  enabled
ol8_MySQL80_connectors_community MySQL 8.0 Connectors Community for Ora enabled
ol8_MySQL80_tools_community      MySQL 8.0 Tools Community for Oracle L enabled
ol8_UEKR6                        Latest Unbreakable Enterprise Kernel R enabled
ol8_UEKR6_RDMA                   Oracle Linux 8 UEK6 RDMA (x86_64)      disabled
ol8_addons                       Oracle Linux 8 Addons (x86_64)         disabled
ol8_appstream                    Oracle Linux 8 Application Stream (x86 enabled
ol8_baseos_latest                Oracle Linux 8 BaseOS Latest (x86_64)  enabled
ol8_codeready_builder            Oracle Linux 8 CodeReady Builder (x86_ disabled
ol8_developer                    Oracle Linux 8 Development Packages (x disabled
ol8_developer_EPEL               Oracle Linux 8 EPEL Packages for Devel enabled
ol8_developer_UEKR6              Developer Preview of UEK Release 6 (x8 disabled
ol8_distro_builder               Oracle Linux 8 Distro Builder (x86_64) disabled
ol8_ksplice                      Ksplice for Oracle Linux 8 (x86_64)    enabled
ol8_kvm_appstream                Oracle Linux 8 KVM Application Stream  disabled
ol8_oci_included                 Oracle Software for OCI users on Oracl enabled
ol8_u0_baseos_base               Oracle Linux 8 BaseOS GA (x86_64)      disabled
ol8_u1_baseos_base               Oracle Linux 8.1 BaseOS (x86_64)       disabled
ol8_u2_baseos_base               Oracle Linux 8.2 BaseOS (x86_64)       disabled
ol8_u3_baseos_base               Oracle Linux 8.3 BaseOS (x86_64)       disabled
ol8_u4_baseos_base               Oracle Linux 8.4 BaseOS (x86_64)       disabled
ol8_x86_64_userspace_ksplice     Ksplice aware userspace packages for O disabled
#

これはEPELからパッケージを持ってこないようにするしかないかな・・・というところ

# cat /etc/yum.repos.d/oracle-epel-ol8.repo
[ol8_developer_EPEL]
name=Oracle Linux $releasever EPEL Packages for Development ($basearch)
baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL8/developer/EPEL/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1
#

これに「exclude=python3-click」を追加して対象外に設定

# cat /etc/yum.repos.d/oracle-epel-ol8.repo
[ol8_developer_EPEL]
name=Oracle Linux $releasever EPEL Packages for Development ($basearch)
baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL8/developer/EPEL/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1
exclude=python3-click
#

アップデート成功

# dnf check-update
Oracle Linux 8 EPEL Packages for Development (x  62 kB/s | 2.5 kB     00:00

iwl100-firmware.noarch     999:39.31.5.1-999.8.el8                 ol8_baseos_latest
iwl1000-firmware.noarch    999:39.31.5.1-999.8.el8                 ol8_baseos_latest
iwl105-firmware.noarch     999:18.168.6.1-999.8.el8                ol8_baseos_latest
iwl135-firmware.noarch     999:18.168.6.1-999.8.el8                ol8_baseos_latest
iwl2000-firmware.noarch    999:18.168.6.1-999.8.el8                ol8_baseos_latest
iwl2030-firmware.noarch    999:18.168.6.1-999.8.el8                ol8_baseos_latest
iwl3160-firmware.noarch    999:25.30.13.0-999.8.el8                ol8_baseos_latest
iwl3945-firmware.noarch    999:15.32.2.9-999.8.el8                 ol8_baseos_latest
iwl4965-firmware.noarch    999:228.61.2.24-999.8.el8               ol8_baseos_latest
iwl5000-firmware.noarch    999:8.83.5.1_1-999.8.el8                ol8_baseos_latest
iwl5150-firmware.noarch    999:8.24.2.2-999.8.el8                  ol8_baseos_latest
iwl6000-firmware.noarch    999:9.221.4.1-999.8.el8                 ol8_baseos_latest
iwl6000g2a-firmware.noarch 999:18.168.6.1-999.8.el8                ol8_baseos_latest
iwl6050-firmware.noarch    999:41.28.5.1-999.8.el8                 ol8_baseos_latest
iwl7260-firmware.noarch    999:25.30.13.0-999.8.el8                ol8_baseos_latest
kernel-uek.x86_64          5.4.17-2102.203.5.el8uek                ol8_UEKR6
kernel-uek-devel.x86_64    5.4.17-2102.203.5.el8uek                ol8_UEKR6
ksplice.x86_64             1.0.55-1.el8                            ol8_ksplice
ksplice-core0.x86_64       1.0.55-1.el8                            ol8_ksplice
ksplice-tools.x86_64       1.0.55-1.el8                            ol8_ksplice
linux-firmware.noarch      999:20210617-999.8.git0f66b74b.el8      ol8_baseos_latest
linux-firmware.src         999:20210617-999.8.git0f66b74b.el8      ol8_baseos_latest
perl-Algorithm-Diff.src    1.1903-10.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-Archive-Tar.src       2.32-440.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Archive-Zip.src       1.67-1.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-CPAN.src              2.27-2.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-CPAN-Meta.src         2.150010-397.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-CPAN-Meta-Requirements.src
                           2.140-397.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-CPAN-Meta-YAML.src    0.018-1001.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Carp.src              1.50-439.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Config-Perl-V.src     0.32-441.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Data-OptList.src      0.110-7.module+el8.3.0+7729+86a74f64    ol8_appstream
perl-Data-Section.src      0.200007-8.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Digest.src            1.17-396.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Env.src               1.04-396.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Exporter.src          5.73-440.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-ExtUtils-CBuilder.src 1:0.280231-439.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-ExtUtils-Install.src  2.14-440.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-ExtUtils-MakeMaker.src
                           2:7.42-1.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-ExtUtils-Manifest.src 1:1.72-438.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-ExtUtils-ParseXS.src  1:3.40-439.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-File-Fetch.src        0.56-3.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-File-HomeDir.src      1.004-6.module+el8.3.0+7729+86a74f64    ol8_appstream
perl-File-Path.src         2.16-439.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-File-Temp.src         1:0.230.900-439.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-File-Which.src        1.23-4.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-Filter-Simple.src     0.95-439.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Getopt-Long.src       1:2.51-1.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-HTTP-Tiny.src         0.076-439.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-IO-Compress.src       2.093-1.module+el8.3.0+7729+86a74f64    ol8_appstream
perl-IO-Socket-IP.src      0.39-6.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-IPC-Cmd.src           2:1.04-2.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-IPC-System-Simple.src 1.25-18.module+el8.3.0+7729+86a74f64    ol8_appstream
perl-JSON-PP.src           1:4.04-2.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Locale-Maketext.src   1.29-440.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-MRO-Compat.src        0.13-5.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-Math-BigInt.src       1:1.9998.18-1.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-Math-BigRat.src       0.2614-2.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Module-Build.src      2:0.42.29-4.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-Module-CoreList.src   1:5.20191220-1.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-Module-Load.src       1:0.34-439.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Module-Load-Conditional.src
                           0.70-1.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-Module-Metadata.src   1.000037-1.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Package-Generator.src 1.106-12.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Params-Check.src      1:0.38-396.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Perl-OSType.src       1.010-397.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-PerlIO-via-QuotedPrint.src
                           0.08-396.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Pod-Checker.src       4:1.73-396.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Pod-Escapes.src       1:1.07-396.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Pod-Parser.src        1.63-1001.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-Pod-Perldoc.src       3.28.01-442.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-Pod-Simple.src        1:3.40-1.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Pod-Usage.src         4:1.69-396.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Software-License.src  0.103014-5.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-Sub-Exporter.src      0.987-16.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Sub-Install.src       0.928-15.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Term-ANSIColor.src    4.06-397.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Term-Cap.src          1.17-396.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Test-Harness.src      1:3.42-2.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Test-Simple.src       3:1.302170-1.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-Text-Balanced.src     2.03-396.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Text-Diff.src         1.45-7.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-Text-Glob.src         0.11-5.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-Text-ParseWords.src   3.30-396.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-Text-Tabs+Wrap.src    2013.0523-396.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-Text-Template.src     1.58-1.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-Thread-Queue.src      3.13-2.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-Time-Local.src        1:1.280-2.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-URI.src               1.76-5.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-autodie.src           2.29-1001.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-bignum.src            0.51-439.module+el8.3.0+7729+86a74f64   ol8_appstream
perl-constant.src          1.33-1001.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-experimental.src      0.020-439.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-inc-latest.src        2:0.500-10.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-libnet.src            3.11-4.module+el8.3.0+7729+86a74f64     ol8_appstream
perl-local-lib.src         2.000024-7.module+el8.3.0+7729+86a74f64 ol8_appstream
perl-parent.src            1:0.237-2.module+el8.3.0+7729+86a74f64  ol8_appstream
perl-perlfaq.src           5.20191102-1.module+el8.3.0+7729+86a74f64
                                                                   ol8_appstream
perl-podlators.src         1:4.12-2.module+el8.3.0+7729+86a74f64   ol8_appstream
python3-asn1crypto.noarch  1.3.0-4.el8                             ol8_developer_EPEL
python3-oauthlib.noarch    3.0.2-8.el8                             ol8_developer_EPEL
python36-oci-cli.noarch    2.26.2-1.el8                            ol8_oci_included
python36-oci-sdk.x86_64    2.42.0-1.el8                            ol8_oci_included
Security: kernel-uek-5.4.17-2102.202.5.el8uek.x86_64 is an installed security update
Security: kernel-uek-5.4.17-2102.201.3.el8uek.x86_64 is the currently running version
# dnf update -y
Last metadata expiration check: 0:00:29 ago on Mon 19 Jul 2021 09:57:01 AM JST.
Dependencies resolved.
================================================================================
 Package             Arch   Version                    Repository          Size
================================================================================
Installing:
 kernel-uek          x86_64 5.4.17-2102.203.5.el8uek   ol8_UEKR6           65 M
 kernel-uek-devel    x86_64 5.4.17-2102.203.5.el8uek   ol8_UEKR6           18 M
Upgrading:
 iwl100-firmware     noarch 999:39.31.5.1-999.8.el8    ol8_baseos_latest  154 k
 iwl1000-firmware    noarch 999:39.31.5.1-999.8.el8    ol8_baseos_latest  217 k
 iwl105-firmware     noarch 999:18.168.6.1-999.8.el8   ol8_baseos_latest  238 k
 iwl135-firmware     noarch 999:18.168.6.1-999.8.el8   ol8_baseos_latest  247 k
 iwl2000-firmware    noarch 999:18.168.6.1-999.8.el8   ol8_baseos_latest  241 k
 iwl2030-firmware    noarch 999:18.168.6.1-999.8.el8   ol8_baseos_latest  250 k
 iwl3160-firmware    noarch 999:25.30.13.0-999.8.el8   ol8_baseos_latest  1.7 M
 iwl3945-firmware    noarch 999:15.32.2.9-999.8.el8    ol8_baseos_latest   92 k
 iwl4965-firmware    noarch 999:228.61.2.24-999.8.el8  ol8_baseos_latest  105 k
 iwl5000-firmware    noarch 999:8.83.5.1_1-999.8.el8   ol8_baseos_latest  298 k
 iwl5150-firmware    noarch 999:8.24.2.2-999.8.el8     ol8_baseos_latest  151 k
 iwl6000-firmware    noarch 999:9.221.4.1-999.8.el8    ol8_baseos_latest  171 k
 iwl6000g2a-firmware noarch 999:18.168.6.1-999.8.el8   ol8_baseos_latest  314 k
 iwl6050-firmware    noarch 999:41.28.5.1-999.8.el8    ol8_baseos_latest  247 k
 iwl7260-firmware    noarch 999:25.30.13.0-999.8.el8   ol8_baseos_latest   18 M
 ksplice             x86_64 1.0.55-1.el8               ol8_ksplice         16 k
 ksplice-core0       x86_64 1.0.55-1.el8               ol8_ksplice        270 k
 ksplice-tools       x86_64 1.0.55-1.el8               ol8_ksplice         97 k
 linux-firmware      noarch 999:20210617-999.8.git0f66b74b.el8
                                                       ol8_baseos_latest  178 M
 python3-asn1crypto  noarch 1.3.0-4.el8                ol8_developer_EPEL 184 k
 python3-oauthlib    noarch 3.0.2-8.el8                ol8_developer_EPEL 182 k
 python36-oci-cli    noarch 2.26.2-1.el8               ol8_oci_included   7.4 M
 python36-oci-sdk    x86_64 2.42.0-1.el8               ol8_oci_included    16 M

Transaction Summary
================================================================================
Install   2 Packages
Upgrade  23 Packages

Total download size: 307 M
Downloading Packages:
<略>
Upgraded:
  iwl100-firmware-999:39.31.5.1-999.8.el8.noarch
  iwl1000-firmware-999:39.31.5.1-999.8.el8.noarch
  iwl105-firmware-999:18.168.6.1-999.8.el8.noarch
  iwl135-firmware-999:18.168.6.1-999.8.el8.noarch
  iwl2000-firmware-999:18.168.6.1-999.8.el8.noarch
  iwl2030-firmware-999:18.168.6.1-999.8.el8.noarch
  iwl3160-firmware-999:25.30.13.0-999.8.el8.noarch
  iwl3945-firmware-999:15.32.2.9-999.8.el8.noarch
  iwl4965-firmware-999:228.61.2.24-999.8.el8.noarch
  iwl5000-firmware-999:8.83.5.1_1-999.8.el8.noarch
  iwl5150-firmware-999:8.24.2.2-999.8.el8.noarch
  iwl6000-firmware-999:9.221.4.1-999.8.el8.noarch
  iwl6000g2a-firmware-999:18.168.6.1-999.8.el8.noarch
  iwl6050-firmware-999:41.28.5.1-999.8.el8.noarch
  iwl7260-firmware-999:25.30.13.0-999.8.el8.noarch
  ksplice-1.0.55-1.el8.x86_64
  ksplice-core0-1.0.55-1.el8.x86_64
  ksplice-tools-1.0.55-1.el8.x86_64
  linux-firmware-999:20210617-999.8.git0f66b74b.el8.noarch
  python3-asn1crypto-1.3.0-4.el8.noarch
  python3-oauthlib-3.0.2-8.el8.noarch
  python36-oci-cli-2.26.2-1.el8.noarch
  python36-oci-sdk-2.42.0-1.el8.x86_64
Installed:
  kernel-uek-5.4.17-2102.203.5.el8uek.x86_64
  kernel-uek-devel-5.4.17-2102.203.5.el8uek.x86_64

Complete!
#

MariaDB 5.5から10.6にアップデートして死にかけた件(utf8が無くなった)


CentOS7上で動いているMariaDB 5.5サーバをMariaDB 10.6にアップデートして死にかけた。

データベースのアップデート自体は問題なかったのだが、アプリケーション側で問題発生。

/var/log/messages に下記の様なメッセージが多発

Jul 13 10:50:11 ホスト名 kernel: dict[23339]: segfault at a8 ip 00007f99c6fa9fa1 sp 00007ffc4641fe50 error 4 in libmysqlclient.so.18.0.0[7f99c6f4b000+320000]
Jul 13 10:50:11 ホスト名 mariadbd: 2021-07-13 10:50:11 7 [Warning] Aborted connection 7 to db: 'unconnected' user: 'unauthenticated' host: 'localhost' (This connection closed normally without authentication)
Jul 13 10:50:11 ホスト名 kernel: dict[23340]: segfault at a8 ip 00007f3950ee4fa1 sp 00007ffe8bec4f70 error 4 in libmysqlclient.so.18.0.0[7f3950e86000+320000]
Jul 13 10:50:11 ホスト名 kernel: dict[23341]: segfault at a8 ip 00007f89b3d8efa1 sp 00007ffed464d830 error 4 in libmysqlclient.so.18.0.0[7f89b3d30000+320000]
Jul 13 10:50:11 ホスト名 mariadbd: 2021-07-13 10:50:11 8 [Warning] Aborted connection 8 to db: 'unconnected' user: 'unauthenticated' host: 'localhost' (This connection closed normally without authentication)
Jul 13 10:50:33 ホスト名 kernel: auth[23362]: segfault at a8 ip 00007f197609dfa1 sp 00007ffe82dc98a0 error 4 in libmysqlclient.so.18.0.0[7f197603f000+320000]

authとdictでlibmysqlclient.so.18.0.0 のsegmentation faultが発生しているという・・・

で・・このauthとdictというのはdovecot/authとdovecot/dictで、そこで何か起こっているようだ

/var/log/dovecot/dovecot.log を見てみる

Jul 13 10:50:05 ホスト名1 dovecot: dict(23024): Error: mysql(127.0.0.1): Connect failed to database (vmail): Can't connect to MySQL s
erver on '127.0.0.1' (111 "Connection refused") - waiting for 5 seconds before retry
Jul 13 10:50:05 ホスト名1 dovecot: dict(23024): Error: mysql(127.0.0.1): Connect failed to database (vmail): Can't connect to MySQL s
erver on '127.0.0.1' (111 "Connection refused") - waiting for 5 seconds before retry
Jul 13 10:50:10 ホスト名1 dovecot: dict: Error: #007Character set 'utf8' is not a compiled character set and is not specified in the '/usr/share/mysql/charsets/Index.xml' file
Jul 13 10:50:10 ホスト名1 dovecot: dict(23024): Error: mysql(127.0.0.1): Connect failed to database (vmail): Can't initialize character set utf8 (path: /usr/share/mysql/charsets/) - waiting for 25 seconds before retry
Jul 13 10:50:10 ホスト名1 dovecot: dict: Error: #007Character set 'utf8' is not a compiled character set and is not specified in the '/usr/share/mysql/charsets/Index.xml' file
Jul 13 10:50:10 ホスト名1 dovecot: dict(23024): Error: mysql(127.0.0.1): Connect failed to database (vmail): Can't initialize character set utf8 (path: /usr/share/mysql/charsets/) - waiting for 25 seconds before retry
Jul 13 10:50:11 ホスト名1 dovecot: dict: Error: #007Character set 'utf8' is not a compiled character set and is not specified in the '/usr/share/mysql/charsets/Index.xml' file
Jul 13 10:50:11 ホスト名1 dovecot: dict(23338): Error: mysql(127.0.0.1): Connect failed to database (vmail): Can't initialize character set utf8 (path: /usr/share/mysql/charsets/) - waiting for 1 seconds before retry

mariadb 10.6で文字コード utf8の指定ができないというエラーなようだ。

/usr/share/mysql/charsets/ に utf8の定義があるか確認してみる

# ls -l /usr/share/mysql/charsets/
合計 236
-rw-r--r-- 1 root root 23531  7月  5 19:47 Index.xml
-rw-r--r-- 1 root root  1749  7月  5 19:47 README
-rw-r--r-- 1 root root  5526  7月  5 19:47 armscii8.xml
-rw-r--r-- 1 root root  5512  7月  5 19:47 ascii.xml
-rw-r--r-- 1 root root  8241  7月  5 19:47 cp1250.xml
-rw-r--r-- 1 root root  8365  7月  5 19:47 cp1251.xml
-rw-r--r-- 1 root root  5569  7月  5 19:47 cp1256.xml
-rw-r--r-- 1 root root  8902  7月  5 19:47 cp1257.xml
-rw-r--r-- 1 root root  5506  7月  5 19:47 cp850.xml
-rw-r--r-- 1 root root  5528  7月  5 19:47 cp852.xml
-rw-r--r-- 1 root root  5613  7月  5 19:47 cp866.xml
-rw-r--r-- 1 root root  6529  7月  5 19:47 dec8.xml
-rw-r--r-- 1 root root  5516  7月  5 19:47 geostd8.xml
-rw-r--r-- 1 root root  5728  7月  5 19:47 greek.xml
-rw-r--r-- 1 root root  5517  7月  5 19:47 hebrew.xml
-rw-r--r-- 1 root root  5502  7月  5 19:47 hp8.xml
-rw-r--r-- 1 root root  5529  7月  5 19:47 keybcs2.xml
-rw-r--r-- 1 root root  5510  7月  5 19:47 koi8r.xml
-rw-r--r-- 1 root root  6532  7月  5 19:47 koi8u.xml
-rw-r--r-- 1 root root  9816  7月  5 19:47 latin1.xml
-rw-r--r-- 1 root root  7238  7月  5 19:47 latin2.xml
-rw-r--r-- 1 root root  5515  7月  5 19:47 latin5.xml
-rw-r--r-- 1 root root  7438  7月  5 19:47 latin7.xml
-rw-r--r-- 1 root root  8047  7月  5 19:47 macce.xml
-rw-r--r-- 1 root root  8058  7月  5 19:47 macroman.xml
-rw-r--r-- 1 root root  6530  7月  5 19:47 swe7.xml
# grep utf8 /usr/share/mysql/charsets/Index.xml
<charset name="utf8mb3">
  <collation name="utf8mb3_general_ci"  id="33">
  <collation name="utf8mb3_bin"         id="83">
#

なんと無い。

/usr/share/mysql/charsets/Index.xml のutf8関連記述を見てみる

<charset name="utf8mb3">
  <family>Unicode</family>
  <description>UTF-8 Unicode</description>
  <alias>utf-8</alias>
  <collation name="utf8mb3_general_ci"  id="33">
   <flag>primary</flag>
   <flag>compiled</flag>
  </collation>
  <collation name="utf8mb3_bin"         id="83">
    <flag>binary</flag>
    <flag>compiled</flag>
  </collation>
</charset>

おやぁ???

以前mariadb 10.5にアップデートしたサーバの/usr/share/mysql/charsets/Index.xmlの該当箇所と比較すると、いままでは utf8だったエントリが utf8mb3 に置き換わっているようだ。

<charset name="utf8">
  <family>Unicode</family>
  <description>UTF-8 Unicode</description>
  <alias>utf-8</alias>
  <collation name="utf8_general_ci"     id="33">
   <flag>primary</flag>
   <flag>compiled</flag>
  </collation>
  <collation name="utf8_bin"            id="83">
    <flag>binary</flag>
    <flag>compiled</flag>
  </collation>
</charset>

で・・・ /etc/my.cnf の設定で言語に関する設定は下記の様になっていた

[mysqld]
<略>
# character-set-server に関する値は未設定
<略>
[client]
default-character-set=utf8

クライアントからのアクセス時のデフォルトがutf8と設定されていた。

そこで/etc/my.cnf の文字コード指定を utf8mb3 に変更

[mysqld]
<略>
character-set-server=utf8mb3
<略>
[client]
default-character-set=utf8mb3

これで接続できない、という事象はなくなった。

なくなったが、/var/log/messages には下記のメッセージが出続けている。

Jul 13 13:10:01 ホスト名 mariadbd: 2021-07-13 13:10:01 925 [Warning] Aborted connection 925 to db: 'unconnected' user: 'unauthenticated' host: 'localhost' (This connection closed normally without authentication)
Jul 13 13:10:02 ホスト名 mariadbd: 2021-07-13 13:10:02 934 [Warning] Aborted connection 934 to db: 'unconnected' user: 'unauthenticated' host: 'localhost' (This connection closed normally without authentication)
Jul 13 13:10:06 ホスト名 mariadbd: 2021-07-13 13:10:06 935 [Warning] Aborted connection 935 to db: 'unconnected' user: 'unauthenticated' host: 'localhost' (This connection closed normally without authentication)
Jul 13 13:10:06 ホスト名 mariadbd: 2021-07-13 13:10:06 936 [Warning] Aborted connection 936 to db: 'unconnected' user: 'unauthenticated' host: 'localhost' (This connection closed normally without authentication)
Jul 13 13:10:22 ホスト名 mariadbd: 2021-07-13 13:10:22 811 [Warning] Aborted connection 811 to db: 'amavisd' user: 'amavisd' host: 'localhost' (Got timeout reading communication packets)
Jul 13 13:11:01 ホスト名 mariadbd: 2021-07-13 13:11:01 786 [Warning] Aborted connection 786 to db: 'amavisd' user: 'amavisd' host: 'localhost' (Got timeout reading communication packets)
Jul 13 13:12:26 ホスト名 mariadbd: 2021-07-13 13:12:26 839 [Warning] Aborted connection 839 to db: 'amavisd' user: 'amavisd' host: 'localhost' (Got timeout reading communication packets)
Jul 13 13:12:26 ホスト名 mariadbd: 2021-07-13 13:12:26 828 [Warning] Aborted connection 828 to db: 'amavisd' user: 'amavisd' host: 'localhost' (Got timeout reading communication packets)

iRedMailフォーラム「mysqld [Warning] Aborted connection」によると、ログレベル下げろ、とのこと

mysqlを起動しようとしたら問題が・・・

# mysql -u root
ERROR 2019 (00000): Can't initialize character set utf8mb3 (path: compiled_in)
#

とりあえず /etc/my.cnf の最後に下記を追加

[mysql]
default-character-set=utf8

警告はでるのもの操作は可能(なお、default-character-set=utf8mb3 だと起動できなかった)

# mysql -u root
mysql: Warning: Charset id '33' csname 'utf8mb3' trying to replace existing csname 'utf8'
mysql: Warning: Charset id '83' csname 'utf8mb3' trying to replace existing csname 'utf8'
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 1103
Server version: 10.6.3-MariaDB-log MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

起動したのでフォーラムにあった設定を入れる。

MariaDB [(none)]> show global variables like '%log_warnings%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_warnings  | 2     |
+---------------+-------+
1 row in set (0.002 sec)

MariaDB [(none)]> set global log_warnings=1;
Query OK, 0 rows affected (0.000 sec)

MariaDB [(none)]> show global variables like '%log_warnings%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_warnings  | 1     |
+---------------+-------+
1 row in set (0.002 sec)

MariaDB [(none)]> quit
Bye
#

しばらく放置・・・

Jul 13 13:40:01 ホスト名 mariadbd: 2021-07-13 13:40:01 313 [Warning] Aborted connection 313 to db: 'unconnected' user: 'unauthenticated' host: 'localhost' (This connection closed normally without authentication)
Jul 13 13:40:02 ホスト名 mariadbd: 2021-07-13 13:40:02 314 [Warning] Aborted connection 314 to db: 'unconnected' user: 'unauthenticated' host: 'localhost' (This connection closed normally without authentication)
Jul 13 13:40:04 ホスト名 mariadbd: 2021-07-13 13:40:04 315 [Warning] Aborted connection 315 to db: 'unconnected' user: 'unauthenticated' host: 'localhost' (This connection closed normally without authentication)
Jul 13 13:42:53 ホスト名 mariadbd: 2021-07-13 13:42:53 359 [Warning] Aborted connection 359 to db: 'vmail' user: 'vmail' host: 'localhost' (Got an error reading communication packets)
Jul 13 13:42:53 ホスト名 mariadbd: 2021-07-13 13:42:53 352 [Warning] Aborted connection 352 to db: 'vmail' user: 'vmail' host: 'localhost' (Got an error reading communication packets)
Jul 13 13:42:53 ホスト名 mariadbd: 2021-07-13 13:42:53 357 [Warning] Aborted connection 357 to db: 'vmail' user: 'vmail' host: 'localhost' (Got an error reading communication packets)
Jul 13 13:42:53 ホスト名 mariadbd: 2021-07-13 13:42:53 351 [Warning] Aborted connection 351 to db: 'vmail' user: 'vmail' host: 'localhost' (Got an error reading communication packets)

うーん?

あれ?反映されてない

# mysql -u root
mysql: Warning: Charset id '33' csname 'utf8mb3' trying to replace existing csname 'utf8'
mysql: Warning: Charset id '83' csname 'utf8mb3' trying to replace existing csname 'utf8'
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 474
Server version: 10.6.3-MariaDB-log MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show global variables like '%log_warnings%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_warnings  | 2     |
+---------------+-------+
1 row in set (0.002 sec)

MariaDB [(none)]> set global log_warnings=1;
Query OK, 0 rows aff
MariaDB [(none)]>

なんだろ?とりあえず再設定・・・

今度は大丈夫か?

…2時間経過

大丈夫そうだな


2021/07/15追記

iredmailでは/usr/local/bin/fail2ban_banned_dbがcronにより毎分実行されているのだが、これがmysqlコマンドを使ってデータベース操作をしているようで、下記のメールが届くようになってしまった・・・

mysql: Warning: Charset id '33' csname 'utf8mb3' trying to replace existing csname 'utf8'
mysql: Warning: Charset id '83' csname 'utf8mb3' trying to replace existing csname 'utf8'

mysqlコマンドを実行した際のメッセージをなんとしてでも消さなければならないようだ。

utf8がutf8mb3になった変更について「MariaDB Server/MDEV-8334/Rename utf8 to utf8mb3

MariaDBの「OLD_MODE」という設定

# mysql -u root
mysql: Warning: Charset id '33' csname 'utf8mb3' trying to replace existing csname 'utf8'
mysql: Warning: Charset id '83' csname 'utf8mb3' trying to replace existing csname 'utf8'
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 38510
Server version: 10.6.3-MariaDB-log MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> SELECT REPLACE(@@OLD_MODE, ',', '\n');
+--------------------------------+
| REPLACE(@@OLD_MODE, ',', '\n') |
+--------------------------------+
| UTF8_IS_UTF8MB3                |
+--------------------------------+
1 row in set (0.023 sec)

MariaDB [(none)]>

現状は「UTF8_IS_UTF8MB3」が設定されているので、UTF8=UTF8MB3扱いになるらしいが、設定されていない場合は「UTF8=UTF8MB4」となるそうな。

だったら、「utf8」でアクセスした場合でも勝手に読み替えて欲しいもんなんだけど、どうなっているのか???

MariaDB [(none)]> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8mb3                    |
| character_set_connection | utf8mb3                    |
| character_set_database   | utf8mb3                    |
| character_set_filesystem | binary                     |
| character_set_results    | utf8mb3                    |
| character_set_server     | utf8mb3                    |
| character_set_system     | utf8mb3                    |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.002 sec)

MariaDB [(none)]>
MariaDB [(none)]> show global variables like '%character_set%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8mb3                    |
| character_set_connection | utf8mb3                    |
| character_set_database   | utf8mb3                    |
| character_set_filesystem | binary                     |
| character_set_results    | utf8mb3                    |
| character_set_server     | utf8mb3                    |
| character_set_system     | utf8mb3                    |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.002 sec)

MariaDB [(none)]> show global variables like 'collation%';
+----------------------+--------------------+
| Variable_name        | Value              |
+----------------------+--------------------+
| collation_connection | utf8mb3_general_ci |
| collation_database   | utf8mb3_general_ci |
| collation_server     | utf8mb3_general_ci |
+----------------------+--------------------+
3 rows in set (0.002 sec)

MariaDB [(none)]>

ん?????

トラブル生じた時に、MariaDB10.5にしなかったっけ?と

# rpm -qa | grep MariaDB
MariaDB-client-10.5.11-1.el7.centos.x86_64
MariaDB-compat-10.6.3-1.el7.centos.x86_64
MariaDB-common-10.6.3-1.el7.centos.x86_64
MariaDB-server-10.6.3-1.el7.centos.x86_64
#

あー・・・MariaDB-clientとMariaDB-serverのバージョンがずれていました。

そんなわけで、MariaDB-clientの方も 10.6.3に揃えて再実行

# mysql -u root
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 405
Server version: 10.6.3-MariaDB-log MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> exit
Bye
#

というわけで、解決しました。

RHEL8/Oracle Linux8のmariadbでバイナリログを有効にする方法


RHEL8/Oracle Linux 8のmariadbをバックアップソフトでオンラインバックアップする場合、バイナリログを有効にする必要がある。

MySQL MySQL 5.7 Reference Manual「2.5.10 Managing MySQL Server with systemd
Oracle MySQL 8.0 リファレンスマニュアル「2.5.9 systemd を使用した MySQL Server の管理
RHEL8 さまざまな種類のサーバーのデプロイメント第9章 データベースサーバー「9.2. MariaDB の使用
MariaDB Administration「Starting and Stopping MariaDB » systemd

設定ファイルを書かずに、いまだけバイナリログで有効にして起動させる場合は以下となる。

# systemctl show-environment 
# systemctl set-environment MYSQLD_OPTS="--log-bin"
# systemctl restart mariadb
#

起動時から有効にする手法について確認すると /lib/systemd/system/mariadb@.service に /etc/systemd/system/mariadb@.service.d/MY_SPECIAL.conf に書くという記述があったので設定してみたものの読み込まれる気配がない。

いろいろ試した結果、/etc/systemd/system/mariadb.service.d/ファイル名.conf でファイルを置いた場合に動作するということが分かった。

# vi /etc/systemd/system/mariadb.service.d/override.conf
# cat /etc/systemd/system/mariadb.service.d/override.conf
[Service]
Environment="MYSQLD_OPTS=--log-bin"
# systemctl daemon-reload
# systemctl restart mariadb
#

ファイルを編集したあとは、daemon-reloadを実行する必要があった。

なお、 /etc/default/mysql, /etc/default/mysqld, /etc/sysconfig/mysql にて「MYSQLD_OPTS=”–log-bin”」を設定する、という手法も実験してみたが、これらは動作しなかった。

CentOS代替のVzLinux(VirtuozzoLinux)をインストールしてみた


2021/07/13追記

急にアクセスが増えてきたのでVzLinux 8.4の簡単な評価を先に書いておくと、Alma Linux, Rocky Linux, Oracle Linux の3つに対する優位点が、2021/07/13時点のVzLinuxには無いので、特に採用するべきではないと思います。

個人的にはOracle Cloudも使っているので、Oracle Linux 8を使っています。

仮想コンテナであるOpenVZに対応したvzlinux kernelが提供されているのであればVzLinuxを選択する理由にもなるのですが、インストールしてみた限りでは使えない
そして、VzLinux 8.4を「日本語」でインストールするとロケール関連の動作が怪しくなる、という明確な問題があるので、現時点ではプラスポイント0、むしろマイナス、という感じです。


以下本文です


このblogのOracle Linux関連記事にこんな広告が表示された。

画像

VzLinux」なんてものがあるのかと別途ググってアクセスしてみた。(直接リンク飛ぶと規約上微妙なので)

画像

VzLinuxは、Linuxベースの仮想コンテナのVirtuozzo とそのオープンソース版OpenVZ の作っているLinux ディストリビューションで、この仮想コンテナを動かすにはRHEL/CentOSやUbuntuのデフォルトカーネル設定ではダメなので、稼働できる形でコンパイルしたものを提供していたものをディストリビューションとしても提供し始めたような感じである。

これに関連してか「Virtuozzo Linux 8 Quick Start Guide」の「3.3. Updating the Kernel」には、カーネルのアップデートのために「yum update vzkernel vzkernel-devel」を実行する、とあるが、実際のVzLinux 8上しても、vzkernelというパッケージは存在せず実行できない。

おそらくは、仮想コンテナVirtuozzo/OpenVZ用に提供されているバージョンであればvzkernelを使う、という話なんだろう、と思われる。

それはさておき、仮想環境にインストールしてみた。

VzLinux 8.3の時点ではセキュアブート非対応であるため、仮想マシンもそのように設定して起動。(VzLinux 8.4でもセキュアブート非対応であった)

画像

言語の選択で「日本語」を選ぶことができるが、インストール完了後、X-Windowアプリの一部でアプリ起動に失敗するので、基本的には「English」で進めた方が良いようだ。

(画像は日本語で進めた時のもの)

画像

基本的にはRHEL8/CentOS8そのままの表示である

画像

選択が終わったらインストール開始

Server with GUIでインストールした場合は下記の様になる。

画像

「日本語」を選択した場合、「端末」を選択すると、こんな感じでぐるぐる表示がされるものの端末は開かない。

/var/log/messagesを開くと「failback ‘C’ locale」という表示が出ているので「localectl list-locales」で確認すると、日本語に関するlocaleがインストールされていない。

というわけで、日本語に設定している場合は「dnf install glibc-langpack-ja」で日本語localeを追加するか、「localectl set-locale en_US.utf8」を実行して英語設定にする必要がある。

英語環境であれば下記の様に端末が正常に開く。

日本語localeを追加した場合も正常に端末が開くようになる。

画面を比較してみると、日本語locale追加以前は時刻表記が英語のまま、などの動作していましたね・・・


さて、kernel 4.18.0-305.vl8.x86_64 で起動してきている。

また、2021/06/16時点ではISOは8.3であったものの、updateすると8.4になった。

VzLinux 8のデフォルトレポジトリはこんな感じで、理由がよく分からないが「BaseOS」や「AppStream」などが無効化されており、「VirtuozzoLinux Base」と「VirtuozzoLinux Updates」のみが有効となっている。

ちなみにbaseos,appstream,plus,powertoolsを有効にしてみたが、vzkernelというパッケージは存在しませんでした。

とりあえずは、セキュアブート不要であれば使えるCentOS8代替としては使えそうです。


vzkernelはやはりOpenVZ対応カーネルな模様で https://src.openvz.org/projects/OVZ/repos/vzkernel/browse で開発されていました。(ブランチの選択肢に branch-rh8-4.18.0-240.1.1.vz8.6.x-ovz なんてものが見える。

また、 https://download.openvz.org/virtuozzo/releases/7.0/x86_64/iso/ で openvz-iso-7.0.16-552.iso という形でOpenVZ用カーネルで起動するRHEL7互換のものが配布されている。