В Ubuntu Linux 10.10 (у меня была та же проблема в 10.04) java (из openjdk-6-jre-headless) вылетает по неизвестной причине:
me@ub:~$ java -version
#
# A fatal error has been detected by the Java Runtime Environment:
#
# java.lang.OutOfMemoryError: requested 304 bytes for CHeapObj-new. Out of swap space?
#
# Internal Error (allocation.inline.hpp:39), pid=14459, tid=140557172041488
# Error: CHeapObj-new
#
# JRE version: 6.0_20-b20
# Java VM: OpenJDK 64-Bit Server VM (17.0-b16 mixed mode linux-amd64 )
# Derivative: IcedTea6 1.9.1
# Distribution: Ubuntu 10.10, package 6b20-1.9.1-1ubuntu3
# An error report file with more information is saved as:
# /home/me/hs_err_pid14459.log
Свободной памяти много, так что это не причина. Если я захожу как другой пользователь, то все работает:
guests@ub:~$ java -version
java version "1.6.0_20"
OpenJDK Runtime Environment (IcedTea6 1.9.1) (6b20-1.9.1-1ubuntu3)
OpenJDK 64-Bit Server VM (build 17.0-b16, mixed mode)
Похоже, сбой вызван какими-то локальными изменениями, которые я сделал.
- У обоих пользователей не установлены переменные окружения JAVA*.
- Сбой не зависит от текущего рабочего каталога.
- По данным strace, ни один файл в домашнем каталоге не открывается.
Понятия не имею, в чем может быть причина. Любая помощь будет оценена по достоинству.
решение1
Проблема была вызвана моими настройками в /etc/security/limits.conf, где я установил "ограничение адресного пространства" на 1 ГБ. По какой-то причине Java требуется больше 1 ГБ виртуальной памяти для запуска:
wojdyr@ub:~$ java -version
java version "1.6.0_20"
OpenJDK Runtime Environment (IcedTea6 1.9.1) (6b20-1.9.1-1ubuntu3)
OpenJDK 64-Bit Server VM (build 17.0-b16, mixed mode)
wojdyr@ub:~$ ulimit -Sv 1048576
wojdyr@ub:~$ java -version
#
# A fatal error has been detected by the Java Runtime Environment:
#
# java.lang.OutOfMemoryError: requested 304 bytes for CHeapObj-new. Out of swap space?
#
# Internal Error (allocation.inline.hpp:39), pid=3319, tid=140563844388624
# Error: CHeapObj-new
Я не понимаю, зачем столько памяти. Все остальные программы, которые я использую, работают нормально с ограничением в 1 ГБ. В любом случае, проблема решена.