суббота, 22 февраля 2014 г.

Unknown OS

Забавная штука встретилась.
Есть сервер под управлением freebsd-9. И установлена там openjdk реализация славной java. И работает на нём jboss as с неким приложением.
Решено обновить систему до 10-й версии (10.0-RELEASE) - она под виртуализацией работает стабильнее и отдаёт гипервизору много управляющих сигналов, чего раньше не делала. Заодно обновить порты, пакеты, поставить заплатки. Заодно и openjdk обновить на самую актуальную версию.
Обновились...

При рестарте jboss не "поднимается" с потрясающим стектрейсом:
12:29:23,190 INFO  [ServerInfo] Java version: 1.7.0_51,Oracle Corporation
12:29:23,191 INFO  [ServerInfo] Java VM: OpenJDK 64-Bit Server VM 24.51-b03,Oracle Corporation
12:29:23,191 INFO  [ServerInfo] OS-System: FreeBSD 10.0-RELEASE,amd64
12:29:23,624 INFO  [Server] Core system initialized
12:29:24,748 ERROR [MainDeployer] Could not create deployment: file: ...
org.jboss.deployment.DeploymentException: Unexpected error during load of: org.jboss.management.j2ee.LocalJBossServerDomain, msg=sun.net.PortConfig: unknown OS; - nested throwable: (java.lang.ClassNotFoundException: Unexpected error during load of: org.jboss.management.j2ee.LocalJBossServerDomain, msg=sun.net.PortConfig: unknown OS)
    at org.jboss.system.ServiceConfigurator.install(ServiceConfigurator.java:196)
    at org.jboss.system.ServiceController.install(ServiceController.java:226)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    ...
    at org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:482)
    at org.jboss.system.server.ServerImpl.start(ServerImpl.java:362)
    at org.jboss.Main.boot(Main.java:200)
    at org.jboss.Main$1.run(Main.java:490)
    at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.ClassNotFoundException: Unexpected error during load of: org.jboss.management.j2ee.LocalJBossServerDomain, msg=sun.net.PortConfig: unknown OS
    at org.jboss.mx.loading.RepositoryClassLoader.loadClassImpl(RepositoryClassLoader.java:550)
    at org.jboss.mx.loading.RepositoryClassLoader.loadClass(RepositoryClassLoader.java:405)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at org.jboss.mx.server.MBeanServerImpl.instantiate(MBeanServerImpl.java:1204)
    at org.jboss.mx.server.MBeanServerImpl.instantiate(MBeanServerImpl.java:286)
    at org.jboss.mx.server.MBeanServerImpl.createMBean(MBeanServerImpl.java:344)
    at org.jboss.system.ServiceCreator.install(ServiceCreator.java:157)
    at org.jboss.system.ServiceConfigurator.internalInstall(ServiceConfigurator.java:449)
    at org.jboss.system.ServiceConfigurator.install(ServiceConfigurator.java:171)
    ... 36 more
Caused by: java.lang.InternalError: sun.net.PortConfig: unknown OS
    ... 44 more
12:29:24,773 INFO  [Server] Runtime shutdown hook called, forceHalt: true
12:29:24,773 INFO  [Server] JBoss SHUTDOWN: Undeploying all packages
12:29:24,781 INFO  [Server] Shutdown complete
Shutdown complete
Halting VM
Вот уж действительно, unexpected error - неизвестная операционная система!

Благо, решение тут же нашлось. В общем, проблема получилась скорее в виде исключения. На freebsd-10-release редакции крайняя на тот момент версия openjdk (openjdk-7.51.13_1) имела недописку в коде. Когда инициализация виртуальной машины была невозможна из-за некорректной обработки полученного ответа о переменных окружения. Они оперативно выпустили целенаправленный патч и залили в порты подправленную версию openjdk-7.51.13_1.1, в которой эта проблема как раз и решалась. Судя по всему, на freebsd-9 всех редакций тоже аналогичная проблема, так что это точно проблема не ОС, а именно пакета openjdk.

Но в любом случае, ошибка повеселила.

Комментариев нет:

Отправить комментарий