OpenJDK на FreeBSD: данное зарезервированное пространство должно быть уже зарезервировано

Я пытаюсь запустить Artifactory на компьютере с FreeBSD. Я установил /usr/ports/devel/artifactory, казалось бы, без проблем, а затем запустил «/usr/local/etc/rc.d/artifactory start». Он сказал, что Artifactory запускается, и не подавал никаких явных признаков ошибки, но когда скрипт закончился, Artifactory не работал. Я обнаружил, что каждый раз, когда я это делаю, к /usr/local/artifactory/logs/boot.log добавляется следующее:

# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (g1PageBasedVirtualSpace.cpp:54), pid=87801, tid=100176
#  guarantee(rs.is_reserved()) failed: Given reserved space must have been reserved already.

Поиск в Google, что «данное зарезервированное пространство должно быть уже зарезервировано», не дает никакой особенно полезной для меня информации. Кажется, это сообщение из OpenJDK.

В файле журнала также упоминается, что был создан другой файл с более подробной информацией об ошибке. Этот файл имеет трассировку стека и другую информацию:

---------------  T H R E A D  ---------------

Current thread (0x29cb0800):  JavaThread "Unknown thread" [_thread_in_vm, id=100176, stack(0xbf9be000,0xbf9fe000)]

Stack: [0xbf9be000,0xbf9fe000],  sp=0xbf9fd528,  free space=253k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x8234ed]  JVM_handle_bsd_signal+0x166bbd
V  [libjvm.so+0x36ef3f]  SUNWprivate_1.1+0x36ef3f
V  [libjvm.so+0x40df4c]  AsyncGetCallTrace+0x2c0bc
V  [libjvm.so+0x40def4]  AsyncGetCallTrace+0x2c064
V  [libjvm.so+0x40ff0b]  AsyncGetCallTrace+0x2e07b
V  [libjvm.so+0x41017e]  AsyncGetCallTrace+0x2e2ee
V  [libjvm.so+0x3f5874]  AsyncGetCallTrace+0x139e4
V  [libjvm.so+0x7ea485]  JVM_handle_bsd_signal+0x12db55
V  [libjvm.so+0x7ea105]  JVM_handle_bsd_signal+0x12d7d5
V  [libjvm.so+0x471291]  AsyncGetCallTrace+0x8f401
V  [libjvm.so+0x7cccd3]  JVM_handle_bsd_signal+0x1103a3
V  [libjvm.so+0x4d0eeb]  JNI_CreateJavaVM+0x6b
C  [java+0x3c35]  JavaMain+0x1d5
C  [libthr.so.3+0x76dc]  operator->+0x81c
C  0x00000000


---------------  P R O C E S S  ---------------

Java Threads: ( => current thread )

Other Threads:

=>0x29cb0800 (exited) JavaThread "Unknown thread" [_thread_in_vm, id=100176, stack(0xbf9be000,0xbf9fe000)]

VM state:not at safepoint (not fully initialized)

VM Mutex/Monitor currently owned by a thread:  ([mutex/lock_event])
[0x29c48640] Heap_lock - owner thread: 0x29cb0800

GC Heap History (0 events):
No events

Deoptimization events (0 events):
No events

Internal exceptions (0 events):
No events

Events (0 events):
No events


Dynamic libraries:
0x08048000      /usr/local/openjdk8/bin/java
0x2807d000      /lib/libz.so.6
0x28091000      /lib/libthr.so.3
0x280b3000      /lib/libc.so.7
0x28c00000      /usr/local/openjdk8/jre/lib/i386/server/libjvm.so
0x28237000      /lib/libm.so.5
0x2825d000      /usr/lib/libc++.so.1
0x2830c000      /lib/libcxxrt.so.1
0x28325000      /lib/libgcc_s.so.1
0x28331000      /usr/local/openjdk8/jre/lib/i386/libverify.so
0x2833d000      /usr/local/openjdk8/jre/lib/i386/libjava.so
0x2836a000      /usr/local/openjdk8/jre/lib/i386/libzip.so
0x28054000      /libexec/ld-elf.so.1

VM Arguments:
jvm_args: -Djava.util.logging.config.file=/usr/local/artifactory/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xms512m -Xmx2g -Xss256k -XX:+UseG1GC -Djruby.compile.invokedynamic=false -Dfile.encoding=UTF8 -Dartdist=zip -Dartifactory.home=/usr/local/artifactory -Dfile.encoding=UTF8 -Djruby.compile.invokedynamic=false -Djava.endorsed.dirs=/usr/local/artifactory/tomcat/endorsed -Dcatalina.base=/usr/local/artifactory/tomcat -Dcatalina.home=/usr/local/artifactory/tomcat -Djava.io.tmpdir=/usr/local/artifactory/tomcat/temp
java_command: org.apache.catalina.startup.Bootstrap start
java_class_path (initial): /usr/local/artifactory/tomcat/bin/bootstrap.jar:/usr/local/artifactory/tomcat/bin/tomcat-juli.jar
Launcher Type: SUN_STANDARD

Environment Variables:
JAVA_HOME=/usr/local/openjdk8
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/nonexistent/bin
SHELL=/bin/csh
HOSTTYPE=FreeBSD
OSTYPE=FreeBSD
MACHTYPE=i386

Signal Handlers:
SIGSEGV: [libjvm.so+0x824280], sa_mask[0]=11111111111111111111111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGBUS: [libjvm.so+0x824280], sa_mask[0]=11111111111111111111111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGFPE: [libjvm.so+0x6b92f0], sa_mask[0]=11111111111111111111111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGPIPE: [libjvm.so+0x6b92f0], sa_mask[0]=11111111111111111111111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGXFSZ: [libjvm.so+0x6b92f0], sa_mask[0]=11111111111111111111111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGILL: [libjvm.so+0x6b92f0], sa_mask[0]=11111111111111111111111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGUSR1: SIG_DFL, sa_mask[0]=11111111011111110111111111111111, sa_flags=none
SIGUSR2: [libjvm.so+0x6b9fe0], sa_mask[0]=00000000000000000000000000000000, sa_flags=SA_RESTART|SA_SIGINFO
SIGHUP: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGINT: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGTERM: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGQUIT: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none


---------------  S Y S T E M  ---------------

OS:BSD
uname:FreeBSD 10.1-RELEASE FreeBSD 10.1-RELEASE #0 r274401: Tue Nov 11 22:51:51 UTC 2014     [email protected]:/usr/obj/usr/src/sys/GENERIC i386
rlimit: STACK 65536k, CORE infinity, NPROC 5547, NOFILE 94860, AS infinity
load average:0.26 0.19 0.80

CPU:total 8 (4 cores per cpu, 1 threads per core) family 6 model 26 stepping 5, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, tsc, tscinvbit, tscinv

Memory: 4k page, physical 3372996k(2931288k free), swap 13807988388243963904k(13807988392538586972k free)

vm_info: OpenJDK Server VM (25.60-b23) for bsd-x86 JRE (1.8.0_60-b24), built on Nov 14 2015 17:53:51 by "bob" with gcc 4.2.1 Compatible FreeBSD Clang 3.4.1 (tags/RELEASE_34/dot1-final 208032)

time: Sat Nov 14 18:21:52 2015
elapsed time: 0 seconds (0d 0h 0m 0s)

Все пакеты обновлены и собраны из исходников. Все, что связано с Java, устанавливается заново (вместе с Artifactory) и с неизменной конфигурацией по умолчанию.

Любые идеи? Спасибо.


person Bob Vesterman    schedule 14.11.2015    source источник
comment
Вы пытались уменьшить максимальный размер кучи до менее 2 г?   -  person Dror Bereznitsky    schedule 16.11.2015
comment
Похоже, что установка по умолчанию установила ровно 2g. Я переключил его на 1g, и он запустился. Благодарю вас!   -  person Bob Vesterman    schedule 18.11.2015


Ответы (1)


Кажется, это проблема с распределением памяти. Размер кучи по умолчанию, определенный в сценарии запуска Artifactory, составляет 2 г, что больше, чем максимальный размер кучи, который может быть выделен JVM на 32-битной машине FreeBSD.
Решением в этом случае будет уменьшение максимального размера кучи до ~1,5 г.

person Dror Bereznitsky    schedule 18.11.2015