sgerrand / alpine-pkg-glibc

A glibc compatibility layer package for Alpine Linux
2.05k stars 280 forks source link

java/eclipse thread error #30

Closed Andrei-Pozolotin closed 8 years ago

Andrei-Pozolotin commented 8 years ago

running inside docker: https://github.com/frol/docker-alpine-glibc https://github.com/frol/docker-alpine-oraclejdk8

with eclipse 4.5: https://eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/mars/2/eclipse-jee-mars-2-linux-gtk-x86_64.tar.gz&mirror_id=1135

basic launch:

 java -jar /opt/eclipse/plugins/org.eclipse.equinox.launcher_*.jar

produces error:

GLib (gthread-posix.c): Unexpected error from C library during 'pthread_cond_init': Invalid argument.  Aborting.

trace:

strace java -jar /opt/eclipse/plugins/org.eclipse.equinox.launcher_*.jar &> /tmp/strace.txt

result:

execve("/usr/bin/java", ["java", "-jar", "/opt/eclipse/plugins/org.eclipse"...], [/* 28 vars */]) = 0
brk(NULL)                               = 0x10a4000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8a1643c000
readlink("/proc/self/exe", "/usr/lib/jvm/java-8-oracle/bin/j"..., 4096) = 35
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/usr/lib/jvm/java-8-oracle/bin/../lib/amd64/jli/tls/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/lib/jvm/java-8-oracle/bin/../lib/amd64/jli/tls/x86_64", 0x7ffea436bed0) = -1 ENOENT (No such file or directory)
open("/usr/lib/jvm/java-8-oracle/bin/../lib/amd64/jli/tls/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/lib/jvm/java-8-oracle/bin/../lib/amd64/jli/tls", 0x7ffea436bed0) = -1 ENOENT (No such file or directory)
open("/usr/lib/jvm/java-8-oracle/bin/../lib/amd64/jli/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/lib/jvm/java-8-oracle/bin/../lib/amd64/jli/x86_64", 0x7ffea436bed0) = -1 ENOENT (No such file or directory)
open("/usr/lib/jvm/java-8-oracle/bin/../lib/amd64/jli/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/lib/jvm/java-8-oracle/bin/../lib/amd64/jli", {st_mode=S_IFDIR|0755, st_size=23, ...}) = 0
open("/usr/lib/jvm/java-8-oracle/bin/../lib/amd64/tls/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/lib/jvm/java-8-oracle/bin/../lib/amd64/tls/x86_64", 0x7ffea436bed0) = -1 ENOENT (No such file or directory)
open("/usr/lib/jvm/java-8-oracle/bin/../lib/amd64/tls/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/lib/jvm/java-8-oracle/bin/../lib/amd64/tls", 0x7ffea436bed0) = -1 ENOENT (No such file or directory)
open("/usr/lib/jvm/java-8-oracle/bin/../lib/amd64/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/lib/jvm/java-8-oracle/bin/../lib/amd64/x86_64", 0x7ffea436bed0) = -1 ENOENT (No such file or directory)
open("/usr/lib/jvm/java-8-oracle/bin/../lib/amd64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/lib/jvm/java-8-oracle/bin/../lib/amd64", {st_mode=S_IFDIR|0755, st_size=35, ...}) = 0
open("/usr/glibc-compat/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=22252, ...}) = 0
mmap(NULL, 22252, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f8a16436000
close(3)                                = 0
open("/usr/glibc-compat/lib/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240r\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=101936, ...}) = 0
mmap(NULL, 2212936, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8a15fff000
mprotect(0x7f8a16017000, 2093056, PROT_NONE) = 0
mmap(0x7f8a16216000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17000) = 0x7f8a16216000
mmap(0x7f8a16218000, 13384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f8a16218000
close(3)                                = 0
open("/usr/lib/jvm/java-8-oracle/bin/../lib/amd64/jli/libjli.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20#\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=102990, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8a16435000
mmap(NULL, 2184904, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8a15de9000
mprotect(0x7f8a15dfe000, 2097152, PROT_NONE) = 0
mmap(0x7f8a15ffe000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x7f8a15ffe000
close(3)                                = 0
open("/usr/lib/jvm/java-8-oracle/bin/../lib/amd64/jli/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/jvm/java-8-oracle/bin/../lib/amd64/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/glibc-compat/lib/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`\16\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=14608, ...}) = 0
mmap(NULL, 2109712, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8a15be5000
mprotect(0x7f8a15be7000, 2097152, PROT_NONE) = 0
mmap(0x7f8a15de7000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f8a15de7000
close(3)                                = 0
open("/usr/lib/jvm/java-8-oracle/bin/../lib/amd64/jli/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/jvm/java-8-oracle/bin/../lib/amd64/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/glibc-compat/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220\t\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1676960, ...}) = 0
mmap(NULL, 3783168, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8a15849000
mprotect(0x7f8a159db000, 2097152, PROT_NONE) = 0
mmap(0x7f8a15bdb000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x192000) = 0x7f8a15bdb000
mmap(0x7f8a15be1000, 14848, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f8a15be1000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8a16434000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8a16433000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8a16432000
arch_prctl(ARCH_SET_FS, 0x7f8a16433700) = 0
mprotect(0x7f8a15bdb000, 16384, PROT_READ) = 0
mprotect(0x7f8a15de7000, 4096, PROT_READ) = 0
mprotect(0x7f8a16216000, 4096, PROT_READ) = 0
mprotect(0x7f8a1643d000, 4096, PROT_READ) = 0
munmap(0x7f8a16436000, 22252)           = 0
set_tid_address(0x7f8a164339d0)         = 70
set_robust_list(0x7f8a164339e0, 24)     = 0
rt_sigaction(SIGRTMIN, {0x7f8a16005d30, [], SA_RESTORER|SA_SIGINFO, 0x7f8a1600fc10}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x7f8a16005dc0, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x7f8a1600fc10}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
brk(NULL)                               = 0x10a4000
brk(0x10c5000)                          = 0x10c5000
open("/opt/eclipse/plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar", O_RDONLY) = 3
mmap(NULL, 200704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8a16401000
lseek(3, -22, SEEK_END)                 = 50505
read(3, "PK\5\6\0\0\0\0\33\0\33\0=\10\0\0\f\275\0\0\0\0", 22) = 22
lseek(3, 48396, SEEK_SET)               = 48396
read(3, "PK\1\2\24\0\24\0\10\10\10\0\4\263\253F\311\267\334/\252\4\0\0\3\n\0\0\24\0\4\0"..., 1024) = 1024
lseek(3, 0, SEEK_SET)                   = 0
read(3, "PK\3\4\24\0\10\10\10\0\4\263\253F\0\0\0\0\0\0\0\0\0\0\0\0\24\0\4\0", 30) = 30
munmap(0x7f8a16401000, 200704)          = 0
lseek(3, 54, SEEK_SET)                  = 54
read(3, "\225UKs\242J\30\335\247*\377\301J\315\254\270\362R\20Me\241\210\221\4\20|'\233\251\6Z"..., 1194) = 1194
close(3)                                = 0
readlink("/proc/self/exe", "/usr/lib/jvm/java-8-oracle/bin/j"..., 4096) = 35
access("/usr/lib/jvm/java-8-oracle/lib/amd64/libjava.so", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/lib/jvm/java-8-oracle/jre/lib/amd64/libjava.so", F_OK) = 0
open("/usr/lib/jvm/java-8-oracle/jre/lib/amd64/jvm.cfg", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=627, ...}) = 0
read(3, "# Copyright (c) 2003, 2013, Orac"..., 4096) = 627
read(3, "", 4096)                       = 0
close(3)                                = 0
stat("/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libjvm.so", {st_mode=S_IFREG|0755, st_size=16938578, ...}) = 0
futex(0x7f8a15de80c8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
open("/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libjvm.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200\344!\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=16938578, ...}) = 0
mmap(NULL, 16670088, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8a14863000
mprotect(0x7f8a15526000, 2093056, PROT_NONE) = 0
mmap(0x7f8a15725000, 888832, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xcc2000) = 0x7f8a15725000
mmap(0x7f8a157fe000, 306568, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f8a157fe000
close(3)                                = 0
open("/usr/lib/jvm/java-8-oracle/bin/../lib/amd64/jli/libm.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/jvm/java-8-oracle/bin/../lib/amd64/libm.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/glibc-compat/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=22252, ...}) = 0
mmap(NULL, 22252, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f8a16436000
close(3)                                = 0
open("/usr/glibc-compat/lib/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260U\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1059160, ...}) = 0
mmap(NULL, 3154224, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8a14560000
mprotect(0x7f8a14662000, 2093056, PROT_NONE) = 0
mmap(0x7f8a14861000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x101000) = 0x7f8a14861000
close(3)                                = 0
mprotect(0x7f8a14861000, 4096, PROT_READ) = 0
munmap(0x7f8a16436000, 22252)           = 0
mmap(NULL, 1052672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f8a16331000
mprotect(0x7f8a16331000, 4096, PROT_NONE) = 0
clone(child_stack=0x7f8a16430ff0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7f8a164319d0, tls=0x7f8a16431700, child_tidptr=0x7f8a164319d0) = 71
futex(0x7f8a164319d0, FUTEX_WAIT, 71, NULLorg.eclipse.m2e.logback.configuration: The org.eclipse.m2e.logback.configuration bundle was activated before the state location was initialized.  Will retry after the state location is initialized.
GLib (gthread-posix.c): Unexpected error from C library during 'pthread_cond_init': Invalid argument.  Aborting.
 <unfinished ...>
+++ killed by SIGABRT (core dumped) +++
Aborted (core dumped)
frol commented 8 years ago

My mind is blank at the moment on how to troubleshoot the issue.

The org.eclipse.m2e.logback.configuration bundle was activated before the state location was initialized. Will retry after the state location is initialized.

This error sounds like a race condition bug in Eclipse itself. (I have searched on the Internet and there are some mentions of the error. Could you please check whether it works fine with Oracle JDK 8 on something mainstream like Ubuntu?)

Andrei-Pozolotin commented 8 years ago

1) re: Will retry after the state location is initialized

2) re: works on something mainstream like Ubuntu

3) re: race condition

sgerrand commented 8 years ago

@Andrei-Pozolotin: On a cursory look at the details you've provided, it appears that the Oracle version of java is trying to access files which do not exist. There are numerous lines in the strace output you supplied like

access("/usr/lib/jvm/java-8-oracle/lib/amd64/libjava.so", F_OK) = -1 ENOENT (No such file or directory)

which makes me believe that this is an issue with the java-8-oracle package, rather than glibc.

If you believe that this issue is actually with glibc and not the Oracle JVM package you're using, please add a comment to that effect and I'll reopen this issue.

gzunino commented 7 years ago

I did some testing today, using docker image openjdk:8-jdk-alpine and glibc 2.25-r0 and surprisingly java -jar plugins/org.eclipse.equinox.launcher_1.3.201.v20161025-1711.jar works with no errors.

But running ./eclipse executable fails with: "GLib (gthread-posix.c): Unexpected error from C library during 'pthread_cond_init': Invalid argument."

ghost commented 6 years ago

Hello, Same problem ... I would like run eclipse on alpine. GLib (gthread-posix.c): Unexpected error from C library during 'pthread_cond_init': Invalid argument. Aborting. tested with Oracle and OpenJDK javas. Error when launching eclipse executable and when java ... launcher.jar ... Any idea ? Philippe

virajkanwade commented 6 years ago

Has anybody been able to get this to work? Can you please share the exact steps?

Thanks.