WildFly “WFLYCTL0113: ” is an invalid value for parameter instance-id. Values must have a minimum length of 1 characters”

podman上でWildFlyを動かしている際に、アプリ再起動したところ、なぜか

WFLYCTL0013: Operation ("add") failed - address: ([("subsystem" => "undertow")]) - failure description: "WFLYCTL0113: '' is an invalid value for parameter instance-id. Values must have a minimum length of 1 characters"

というエラーが出てしまいWildFlyの立ち上げがERRORとなってしまいました。

今までは、コンテナを作り直しでごまかし動かしてましたが、原因調べてみました。

WFLYCTL0113の原因

WildFly上のログに環境変数のログが記録されますが

java.version.date = 2020-07-14
java.vm.compressedOopsMode = 32-bit
java.vm.info = mixed mode
java.vm.name = OpenJDK 64-Bit Server VM
java.vm.specification.name = Java Virtual Machine Specification
java.vm.specification.vendor = Oracle Corporation
java.vm.specification.version = 11
java.vm.vendor = Ubuntu
java.vm.version = 11.0.8+10-post-Ubuntu-0ubuntu120.04
javax.management.builder.initial = org.jboss.as.jmx.PluggableMBeanServerBuilder
jboss.bind.address = 0.0.0.0
jboss.bind.address.management = 0.0.0.0
jboss.home.dir = /opt/java/wildfly-17.0.1.Final
jboss.host.name =
jboss.modules.dir = /opt/java/wildfly-17.0.1.Final/modules
jboss.modules.system.pkgs = org.jboss.byteman
jboss.node.name =
jboss.qualified.host.name =
jboss.server.base.dir = /opt/java/wildfly-17.0.1.Final/standalone
jboss.server.config.dir = /opt/java/wildfly-17.0.1.Final/standalone/configuration
jboss.server.data.dir = /opt/java/wildfly-17.0.1.Final/standalone/data
jboss.server.deploy.dir = /opt/java/wildfly-17.0.1.Final/standalone/data/content
jboss.server.log.dir = /opt/java/wildfly-17.0.1.Final/standalone/log
jboss.server.name =
jboss.server.persist.config = true
jboss.server.temp.dir = /opt/java/wildfly-17.0.1.Final/standalone/tmp
jdk.debug = release
line.separator =

なぜか、

jboss.host.name =

jboss.host.nameが空になっています。これが原因です。

# set > tmp

でLinuxの環境変数を確認してみると

HOSTNAME=

となっておりました。確かにHOSTNAMEが空です。hostnameコマンドではホスト名が表示されるのですが、

WildFlyでは上記HOSTNAMEを参照しているようです。

なので

# HOSTNAME=localhost

のようにホスト名を設定してあげれば、WildFlyが正常に起動するようになりました。