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 ★★★★★
() автор топика
Ответ на: комментарий от melkor217

Время шло, а поток рекламы не прекращался :D

^_____^

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