LINUX.ORG.RU
ФорумAdmin

Не работает Java на VPS-е


0

1

Купил VPS, на нём происходят чудеса. Собственно чистый дебиан 6 (или центос, пробовал и то и то, симптомы одинаковые). Качаем с сайта оракл обычный jdk x64 1.7.0.5, распаковываем в /srv. Качаем последний томкат, распаковываем. Ставим JAVA_HOME, пускаем bin/startup.sh. В logs появляются лог-файлы, пустые. В процессах висит java. При попытке к ней приконнектиться jmap-ом или jstack-ом оные виснут, никакой реакции. Порт эта гадость тоже занять не может, в общем тупо висит всё. На сигналы тоже не отвечает, только -KILL. Хелло-ворлд даже не компилируется, javac повисает.

Пробовал 6-ю жабу с репозиториев дебиана, там чуть получше. В catalina.out появляются строчки

Jul 19, 2012 12:07:02 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-0.0.0.0-8080"]
Jul 19, 2012 12:07:03 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Jul 19, 2012 12:07:03 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 9295 ms
Jul 19, 2012 12:07:03 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Jul 19, 2012 12:07:03 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.29
Т.е. немного инициализации проходит, оно даже на порт вешается, но дальше опять всё висит намертво, на запросы на порту не отвечает, в логах ничего нет и т.д. Консольный hello world компилируется и работает.

Обычный софт на впсе вроде работает, apache httpd крутится, It works отдаёт.

В общем-то с джавой не в первый раз сталкиваюсь, уже много лет программирую и свой VPS (нормальный) на хецнере есть, где всё крутится как часы, никогда с таким не сталкивался. Пока буду пробовать другие жабы, но очень не хочется от 7-й отказываться, вкусные там плюшки, некомфортно без них.

Интереса ради под стрейсом пустил компиляйию хелло-ворлда, тут полный вывод, последние строчки:

mmap(NULL, 1052672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7fad6a8c9000
mprotect(0x7fad6a8c9000, 4096, PROT_NONE) = 0
clone(child_stack=0x7fad6a9c8ff0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7fad6a9c99d0, tls=0x7fad6a9c9700, child_tidptr=0x7fad6a9c99d0) = 945
futex(0x7fad6a9c99d0, FUTEX_WAIT, 945, NULL
Чего это за futex и почему на нём процесс висит - непонятно.

При этом скомпилированный хелло-ворлд 7-й джавой пускается и работает, т.е. в целом оно работает, но на каких-то инструкциях или функциях виснет.



Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от tazhate

Да тут местный казахстанский, вроде хостер один из лучших, тикет написал, но пока не разобрались, пока пробую сам решить вопрос.

Legioner
() автор топика

Покрути параметры жабы касательно памяти.

post-factum
()
Ответ на: комментарий от post-factum

Ну не висением на futex-е же... strace -f показывает, что там два потока крутятся нонстопом, жрут процессор и ничего не делают.

Legioner
() автор топика
Ответ на: комментарий от Legioner

Ну не висением на futex-е же...

В OpenVZ нехватка памяти может давать очень странные эффекты.

strace -f показывает, что там два потока крутятся нонстопом, жрут процессор и ничего не делают.

Вывод strace из первого поста обрезан. Возможно что-то ещё осталось в буфере вывода.

Deleted
()
Ответ на: комментарий от kostian

С openvz есть один универсальный workaround: не использовать openvz.

+1

Deleted
()
Ответ на: комментарий от Deleted

В первом посте был просто strace, т.е. основной поток висит, могу дать вывод с strace -f, но там ничего интересного нет. Сейчас попробую память ограничить.

Legioner
() автор топика
Ответ на: комментарий от kostian

Ну если верить тому багу, ссылка на который была выше, то баг в JIT-компиляторе.

Legioner
() автор топика
Ответ на: комментарий от Legioner

В первом посте был просто strace, т.е. основной поток висит, могу дать вывод с strace -f, но там ничего интересного нет.

Я про это:

futex(0x7fad6a9c99d0, FUTEX_WAIT, 945, NULL
Очевидно, что конец куда-то потерялся. И возможно там есть ещё строки. Хотя я могу и ошибаться.

Deleted
()
Ответ на: комментарий от Deleted

Нет, в консоли так и висит без закрывающей скобки, как я понимаю, скобка закрывается, когда системный вызов возвращает управление, а тут ничего не возвращает. Больше строк нет.

Legioner
() автор топика

Временно решил проблему скачав JDK 1.5 и томкат 5.5 (сейчас ещё 6-й проверю). Вроде запускается, стартовую страничку показывает.

Legioner
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.