Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tests segfaults on openSUSE Factory ppc64 #6

Closed
k0da opened this issue Mar 18, 2013 · 9 comments
Closed

tests segfaults on openSUSE Factory ppc64 #6

k0da opened this issue Mar 18, 2013 · 9 comments
Assignees

Comments

@k0da
Copy link

k0da commented Mar 18, 2013

full build log https://build.opensuse.org/package/rawlog?arch=ppc64&package=ivykis&project=openSUSE%3AFactory%3APowerPC&repository=standard

make[2]: Entering directory `/home/abuild/rpmbuild/BUILD/ivykis-0.39/test'
/bin/sh: line 5: 57597 Segmentation fault (core dumped) ${dir}$tst
FAIL: avl
/bin/sh: line 5: 57615 Segmentation fault (core dumped) ${dir}$tst
FAIL: iv_event_raw_test
PASS: struct_sizes
/bin/sh: line 5: 57649 Segmentation fault (core dumped) ${dir}$tst
FAIL: timer
/bin/sh: line 5: 57667 Segmentation fault (core dumped) ${dir}$tst
FAIL: timer_fairness
/bin/sh: line 5: 57685 Segmentation fault (core dumped) ${dir}$tst
FAIL: timer_order
/bin/sh: line 5: 57703 Segmentation fault (core dumped) ${dir}$tst
FAIL: timer_past
/bin/sh: line 5: 57721 Segmentation fault (core dumped) ${dir}$tst

FAIL: iv_signal_test

7 of 8 tests failed

Please report to libivykis-discuss@lists.sourceforge.net

@buytenh
Copy link
Owner

buytenh commented Mar 18, 2013

Is it possible to get shell access on an openSUSE ppc64 box? My only
ppc testing so far has been on AIX, I've been promised a ppc/Linux shell
account for some time now, but that never happened.

Also, note that 0.39 is not a long term supported version. Debian and
Fedora carry either 0.30 or 0.36 at this moment, both of which have
-stable branches that continue to receive bug fixes. The next -stable
branch will probably be around 0.42 or so.

@k0da
Copy link
Author

k0da commented Mar 18, 2013

I don't have ppc64 machine publically available :(
I think this should happen for Fedora as well, they just don't run tests during the build.

If you will guide me, I could provide additional debug information (I have access to the ppc machine)

@buytenh
Copy link
Owner

buytenh commented Mar 18, 2013

On Mon, Mar 18, 2013 at 05:51:29AM -0700, Dinar Valeev wrote:

I don't have ppc64 machine publically available :(
I think this should happen for Fedora as well, they just don't run
tests during the build.

ivykis 0.30 doesn't have a testsuite, so builds of 0.30 don't run
the tests as part of the build. (0.36 has a testsuite.)

If you will guide me, I could provide additional debug information
(I have access to the ppc machine)

At least a backtrace would be useful. :)

@k0da
Copy link
Author

k0da commented Mar 18, 2013

(gdb) run
Starting program: /home/abuild/rpmbuild/BUILD/ivykis-0.39/test/.libs/avl
warning: Could not load shared library symbols for linux-vdso64.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
._dl_runtime_resolve () at ../sysdeps/powerpc/powerpc64/dl-trampoline.S:76
76 ld r0,0(r3)
(gdb) bt
#0 ._dl_runtime_resolve () at ../sysdeps/powerpc/powerpc64/dl-trampoline.S:76
#1 0x00000fffb7f81100 in pthr_atfork (prepare=@0xfffb7f986e0: 0xfffb7f817f0 <iv_signal_prepare>, parent=@0xfffb7f986f8: 0xfffb7f81860 <iv_signal_parent>,
child=@0xfffb7f98710: 0xfffb7f818d0 <iv_signal_child>) at pthr.h:55
#2 0x00000fffb7f81990 in iv_signal_init () at iv_signal.c:92
#3 0x00000fffb7fd4618 in call_init (env=0xffffffff8a8, argv=0xffffffff898, argc=, l=) at dl-init.c:84
#4 call_init (l=, argc=, argv=0xffffffff898, env=0xffffffff8a8) at dl-init.c:34
#5 0x00000fffb7fd473c in _dl_init (main_map=0xfffb7ffc4f0, argc=, argv=0xffffffff898, env=0xffffffff8a8) at dl-init.c:133
#6 0x00000fffb7fc3f1c in ._dl_start_user () from /lib64/ld64.so.1
(gdb) bt full
#0 ._dl_runtime_resolve () at ../sysdeps/powerpc/powerpc64/dl-trampoline.S:76
No locals.
#1 0x00000fffb7f81100 in pthr_atfork (prepare=@0xfffb7f986e0: 0xfffb7f817f0 <iv_signal_prepare>, parent=@0xfffb7f986f8: 0xfffb7f81860 <iv_signal_parent>,
child=@0xfffb7f98710: 0xfffb7f818d0 <iv_signal_child>) at pthr.h:55
No locals.
#2 0x00000fffb7f81990 in iv_signal_init () at iv_signal.c:92
No locals.
#3 0x00000fffb7fd4618 in call_init (env=0xffffffff8a8, argv=0xffffffff898, argc=, l=) at dl-init.c:84
j =
jm =
addrs =
init_array =
#4 call_init (l=, argc=, argv=0xffffffff898, env=0xffffffff8a8) at dl-init.c:34
No locals.
#5 0x00000fffb7fd473c in _dl_init (main_map=0xfffb7ffc4f0, argc=, argv=0xffffffff898, env=0xffffffff8a8) at dl-init.c:133
preinit_array =
preinit_array_size = 0x0
i =
#6 0x00000fffb7fc3f1c in ._dl_start_user () from /lib64/ld64.so.1
_dl_rtld_libname2 = {name = 0x0, next = 0x0, dont_free = 0}
audit_list = 0x0
any_debug = 0
load_time = 147266
_dl_rtld_libname = {name = 0x10000200 "/lib64/ld64.so.1", next = 0xfffb7ffc3d0 <newname.10332>, dont_free = 0}
version_info = 0
relocate_time = 42485
preloadlist = 0x0
tls_init_tp_called = true
start_time = 245407786025836
library_path = 0xffffffffd0e "../src/.libs/"
_rtld_local_ro = {_dl_debug_mask = 0, _dl_osversion = 198144, _dl_platform = 0xffffffffbc9 "power7", _dl_platformlen = 6, _dl_pagesize = 65536, _dl_inhibit_cache = 0, _dl_initial_searchlist = {
r_list = 0xfffb7ffea18, r_nlist = 5}, _dl_clktck = 100, _dl_verbose = 0, _dl_debug_fd = 2, _dl_lazy = 1, _dl_bind_not = 0, _dl_dynamic_weak = 0, _dl_fpu_control = 0,
_dl_correct_cache_id = 1283, _dl_hwcap = 3691013570, _dl_hwcap_mask = 268436480, _dl_auxv = 0xffffffffa18, _dl_powerpc_cap_flags = {"vsx\000\000\000\000\000\000", "arch_2_06", "power6x\000\000",
"dfp\000\000\000\000\000\000", "pa6t\000\000\000\000\000", "arch_2_05", "ic_snoop\000", "smt\000\000\000\000\000\000", "booke\000\000\000\000", "cellbe\000\000\000", "power5+\000\000",
"power5\000\000\000", "power4\000\000\000", "notb\000\000\000\000\000", "efpdouble", "efpsingle", "spe\000\000\000\000\000\000", "ucache\000\000\000", "4xxmac\000\000\000",
"mmu\000\000\000\000\000\000", "fpu\000\000\000\000\000\000", "altivec\000\000", "ppc601\000\000\000", "ppc64\000\000\000\000", "ppc32\000\000\000\000"}, _dl_powerpc_platforms = {
"power4\000\000\000\000\000", "ppc970\000\000\000\000\000", "power5\000\000\000\000\000", "power5+\000\000\000\000", "power6\000\000\000\000\000", "ppc-cell-be", "power6x\000\000\000\000",
"power7\000\000\000\000\000", "ppca2\000\000\000\000\000\000"}, _dl_inhibit_rpath = 0x0, _dl_origin_path = 0x0, _dl_use_load_bias = 18446744073709551615, _dl_profile = 0x0,
_dl_profile_output = 0xfffb7fe2a80 "/var/tmp", _dl_trace_prelink = 0x0, _dl_trace_prelink_map = 0x0, _dl_init_all_dirs = 0xfffb7ffd9f0, _dl_hp_timing_overhead = 3,
_dl_sysinfo_dso = 0xfffb7fa0000, _dl_sysinfo_map = 0xfffb7ffca80, _dl_debug_printf = @0xfffb7ffa690: 0xfffb7fd58e0 <_dl_debug_printf>,
_dl_catch_error = @0xfffb7ffa5a0: 0xfffb7fd42f0 <_dl_catch_error>, _dl_signal_error = @0xfffb7ffa570: 0xfffb7fd3fc0 <_dl_signal_error>, _dl_mcount = @0xfffb7ffa768: 0xfffb7fd6dd0 <_dl_mcount>,
_dl_lookup_symbol_x = @0xfffb7ffa3d8: 0xfffb7fcd5d0 <_dl_lookup_symbol_x>, _dl_check_caller = @0xfffb7ffa960: 0xfffb7fd92d0 <_dl_check_caller>,
_dl_open = @0xfffb7ffa990: 0xfffb7fd9830 <_dl_open>, _dl_close = @0xfffb7ffaa20: 0xfffb7fdbd60 <_dl_close>, _dl_tls_get_addr_soft = @0xfffb7ffa8e8: 0xfffb7fd8c50 <_dl_tls_get_addr_soft>,
_dl_discover_osversion = @0xfffb7ffaaf8: 0xfffb7fdd360 <_dl_discover_osversion>, _dl_audit = 0x0, _dl_naudit = 0, _dl_pointer_guard = 1}
_dl_skip_args = 0
__pointer_chk_guard_local = 6884314826817413557
__thread_register = 0xfffb7d37710
_rtld_global_ro = {_dl_debug_mask = 0, _dl_osversion = 198144, _dl_platform = 0xffffffffbc9 "power7", _dl_platformlen = 6, _dl_pagesize = 65536, _dl_inhibit_cache = 0, _dl_initial_searchlist = {
r_list = 0xfffb7ffea18, r_nlist = 5}, _dl_clktck = 100, _dl_verbose = 0, _dl_debug_fd = 2, _dl_lazy = 1, _dl_bind_not = 0, _dl_dynamic_weak = 0, _dl_fpu_control = 0,
_dl_correct_cache_id = 1283, _dl_hwcap = 3691013570, _dl_hwcap_mask = 268436480, _dl_auxv = 0xffffffffa18, _dl_powerpc_cap_flags = {"vsx\000\000\000\000\000\000", "arch_2_06", "power6x\000\000",
"dfp\000\000\000\000\000\000", "pa6t\000\000\000\000\000", "arch_2_05", "ic_snoop\000", "smt\000\000\000\000\000\000", "booke\000\000\000\000", "cellbe\000\000\000", "power5+\000\000",
"power5\000\000\000", "power4\000\000\000", "notb\000\000\000\000\000", "efpdouble", "efpsingle", "spe\000\000\000\000\000\000", "ucache\000\000\000", "4xxmac\000\000\000",
"mmu\000\000\000\000\000\000", "fpu\000\000\000\000\000\000", "altivec\000\000", "ppc601\000\000\000", "ppc64\000\000\000\000", "ppc32\000\000\000\000"}, _dl_powerpc_platforms = {
"power4\000\000\000\000\000", "ppc970\000\000\000\000\000", "power5\000\000\000\000\000", "power5+\000\000\000\000", "power6\000\000\000\000\000", "ppc-cell-be", "power6x\000\000\000\000",
"power7\000\000\000\000\000", "ppca2\000\000\000\000\000\000"}, _dl_inhibit_rpath = 0x0, _dl_origin_path = 0x0, _dl_use_load_bias = 18446744073709551615, _dl_profile = 0x0,
_dl_profile_output = 0xfffb7fe2a80 "/var/tmp", _dl_trace_prelink = 0x0, _dl_trace_prelink_map = 0x0, _dl_init_all_dirs = 0xfffb7ffd9f0, _dl_hp_timing_overhead = 3,
_dl_sysinfo_dso = 0xfffb7fa0000, _dl_sysinfo_map = 0xfffb7ffca80, _dl_debug_printf = @0xfffb7ffa690: 0xfffb7fd58e0 <_dl_debug_printf>,
---Type to continue, or q to quit---
_dl_catch_error = @0xfffb7ffa5a0: 0xfffb7fd42f0 <_dl_catch_error>, _dl_signal_error = @0xfffb7ffa570: 0xfffb7fd3fc0 <_dl_signal_error>, _dl_mcount = @0xfffb7ffa768: 0xfffb7fd6dd0 <_dl_mcount>,
_dl_lookup_symbol_x = @0xfffb7ffa3d8: 0xfffb7fcd5d0 <_dl_lookup_symbol_x>, _dl_check_caller = @0xfffb7ffa960: 0xfffb7fd92d0 <_dl_check_caller>,
_dl_open = @0xfffb7ffa990: 0xfffb7fd9830 <_dl_open>, _dl_close = @0xfffb7ffaa20: 0xfffb7fdbd60 <_dl_close>, _dl_tls_get_addr_soft = @0xfffb7ffa8e8: 0xfffb7fd8c50 <_dl_tls_get_addr_soft>,
_dl_discover_osversion = @0xfffb7ffaaf8: 0xfffb7fdd360 <_dl_discover_osversion>, _dl_audit = 0x0, _dl_naudit = 0, _dl_pointer_guard = 1}
_dl_argv = 0xffffffff898
_rtld_local = {_dl_ns = {{_ns_loaded = 0xfffb7ffc4f0, _ns_nloaded = 6, _ns_main_searchlist = 0xfffb7ffc7c0, _ns_global_scope_alloc = 0, _ns_unique_sym_table = {lock = {mutex = {__data = {
__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 1, __spins = 0, __list = {__prev = 0x0, __next = 0x0}},
__size = '\000' <repeats 19 times>, "\001", '\000' <repeats 19 times>, __align = 0}}, entries = 0x0, size = 0, n_elements = 0, free = 0x0}, _ns_debug = {r_version = 0, r_map = 0x0,
r_brk = 0, r_state = RT_CONSISTENT, r_ldbase = 0}}, {_ns_loaded = 0x0, _ns_nloaded = 0, _ns_main_searchlist = 0x0, _ns_global_scope_alloc = 0, _ns_unique_sym_table = {lock = {mutex = {
__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 0, __spins = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = '\000' <repeats 39 times>, __align = 0}},
entries = 0x0, size = 0, n_elements = 0, free = 0x0}, _ns_debug = {r_version = 0, r_map = 0x0, r_brk = 0, r_state = RT_CONSISTENT, r_ldbase = 0}} <repeats 15 times>}, _dl_nns = 1,
_dl_load_lock = {mutex = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 1, __spins = 0, __list = {__prev = 0x0, __next = 0x0}},
__size = '\000' <repeats 19 times>, "\001", '\000' <repeats 19 times>, __align = 0}}, _dl_load_write_lock = {mutex = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0,
__kind = 1, __spins = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = '\000' <repeats 19 times>, "\001", '\000' <repeats 19 times>, __align = 0}}, _dl_load_adds = 6,
_dl_initfirst = 0x0, _dl_cpuclock_offset = 245407786029163, _dl_profile_map = 0x0, _dl_num_relocations = 114, _dl_num_cache_relocations = 138, _dl_all_dirs = 0xfffb7ffd9f0,
_dl_error_catch_tsd = @0xfffb7f13a30: 0xfffb7ea5a90 <__libc_dl_error_tsd>, _dl_rtld_map = {l_addr = 17590977822720, l_name = 0x10000200 "/lib64/ld64.so.1", l_ld = 0xfffb7ff9e60, l_next = 0x0,
l_prev = 0xfffb7ffe4a0, l_real = 0xfffb7ffbd10 <_rtld_local+2456>, l_ns = 0, l_libname = 0xfffb7ffc3a0 <_dl_rtld_libname>, l_info = {0x0, 0x0, 0xfffb7ff9ee0, 0xfffb7ff9ed0, 0xfffb7ff9e70,
0xfffb7ff9e90, 0xfffb7ff9ea0, 0xfffb7ff9f20, 0xfffb7ff9f30, 0xfffb7ff9f40, 0xfffb7ff9eb0, 0xfffb7ff9ec0, 0x0, 0x0, 0xfffb7ff9e60, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfffb7ff9ef0, 0x0, 0x0,
0xfffb7ff9f00, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfffb7ff9f70, 0x0, 0x0, 0x0, 0xfffb7ff9f10, 0x0, 0x0, 0x0, 0x0, 0xfffb7ff9f60, 0xfffb7ff9f50, 0xfffb7ff9f80, 0x0, 0xfffb7ff9fa0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0xfffb7ff9f90, 0x0 <repeats 25 times>, 0xfffb7ff9e80}, l_phdr = 0xfffb7fc0040, l_entry = 0, l_phnum = 6, l_ldnum = 0, l_searchlist = {r_list = 0x0, r_nlist = 0},
l_symbolic_searchlist = {r_list = 0x0, r_nlist = 0}, l_loader = 0x0, l_versions = 0xfffb7ffeff8, l_nversions = 5, l_nbuckets = 17, l_gnu_bitmask_idxbits = 3, l_gnu_shift = 8,
l_gnu_bitmask = 0xfffb7fc0280, {l_gnu_buckets = 0xfffb7fc02a0, l_chain = 0xfffb7fc02a0}, {l_gnu_chain_zero = 0xfffb7fc02d8, l_buckets = 0xfffb7fc02d8}, l_direct_opencount = 0,
l_type = lt_library, l_relocated = 1, l_init_called = 1, l_global = 1, l_reserved = 0, l_phdr_allocated = 0, l_soname_added = 0, l_faked = 0, l_need_tls_init = 0, l_auditing = 0,
l_audit_any_plt = 0, l_removed = 0, l_contiguous = 0, l_symbolic_in_local_scope = 0, l_free_initfini = 0, l_rpath_dirs = {dirs = 0x0, malloced = 0}, l_reloc_result = 0x0,
l_versyms = 0xfffb7fc0736, l_origin = 0x0, l_map_start = 17590977822720, l_map_end = 17590978069744, l_text_end = 17590977963688, l_scope_mem = {0x0, 0x0, 0x0, 0x0}, l_scope_max = 0,
l_scope = 0x0, l_local_scope = {0x0, 0x0}, l_dev = 0, l_ino = 0, l_runpath_dirs = {dirs = 0x0, malloced = 0}, l_initfini = 0x0, l_reldeps = 0x0, l_reldepsmax = 0, l_used = 1, l_feature_1 = 0,
l_flags_1 = 0, l_flags = 0, l_idx = 0, l_mach = {}, l_lookup_cache = {sym = 0xfffb7fc03f0, type_class = 1, value = 0xfffb7ffe4a0, ret = 0xfffb7d51d38}, l_tls_initimage = 0x0,
l_tls_initimage_size = 0, l_tls_blocksize = 0, l_tls_align = 0, l_tls_firstbyte_offset = 0, l_tls_offset = -1, l_tls_modid = 0, l_relro_addr = 236200, l_relro_size = 1368, l_serial = 0,
l_audit = 0xfffb7ffc178 <_rtld_local+3584>}, audit_data = {{cookie = 0, bindflags = 0} <repeats 16 times>}, _dl_rtld_lock_recursive = @0xfffb7f4f740: 0xfffb7f2ea60 <__GI___pthread_mutex_lock>,
_dl_rtld_unlock_recursive = @0xfffb7f4f7b8: 0xfffb7f301c0 <__GI___pthread_mutex_unlock>, _dl_make_stack_executable_hook = @0xfffb7f4f260: 0xfffb7f2b090 <__make_stacks_executable>,
_dl_stack_flags = 6, _dl_tls_dtv_gaps = false, _dl_tls_max_dtv_idx = 1, _dl_tls_dtv_slotinfo_list = 0xfffb7fff070, _dl_tls_static_nelem = 1, _dl_tls_static_size = 1776,
_dl_tls_static_used = 112, _dl_tls_static_align = 16, _dl_initial_dtv = 0xfffb7d30e10, _dl_tls_generation = 1, _dl_init_static_tls = @0xfffb7f4f2c0: 0xfffb7f2b940 <__pthread_init_static_tls>,
_dl_wait_lookup_done = @0xfffb7f4f2d8: 0xfffb7f2bb10 <__wait_lookup_done>, _dl_scope_free_list = 0x0}
_rtld_global = {_dl_ns = {{_ns_loaded = 0xfffb7ffc4f0, _ns_nloaded = 6, _ns_main_searchlist = 0xfffb7ffc7c0, _ns_global_scope_alloc = 0, _ns_unique_sym_table = {lock = {mutex = {__data = {
__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 1, __spins = 0, __list = {__prev = 0x0, __next = 0x0}},
__size = '\000' <repeats 19 times>, "\001", '\000' <repeats 19 times>, __align = 0}}, entries = 0x0, size = 0, n_elements = 0, free = 0x0}, _ns_debug = {r_version = 0, r_map = 0x0,
r_brk = 0, r_state = RT_CONSISTENT, r_ldbase = 0}}, {_ns_loaded = 0x0, _ns_nloaded = 0, _ns_main_searchlist = 0x0, _ns_global_scope_alloc = 0, _ns_unique_sym_table = {lock = {mutex = {
__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 0, __spins = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = '\000' <repeats 39 times>, __align = 0}},
entries = 0x0, size = 0, n_elements = 0, free = 0x0}, _ns_debug = {r_version = 0, r_map = 0x0, r_brk = 0, r_state = RT_CONSISTENT, r_ldbase = 0}} <repeats 15 times>}, _dl_nns = 1,
_dl_load_lock = {mutex = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 1, __spins = 0, __list = {__prev = 0x0, __next = 0x0}},
__size = '\000' <repeats 19 times>, "\001", '\000' <repeats 19 times>, __align = 0}}, _dl_load_write_lock = {mutex = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0,
__kind = 1, __spins = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = '\000' <repeats 19 times>, "\001", '\000' <repeats 19 times>, __align = 0}}, _dl_load_adds = 6,
_dl_initfirst = 0x0, _dl_cpuclock_offset = 245407786029163, _dl_profile_map = 0x0, _dl_num_relocations = 114, _dl_num_cache_relocations = 138, _dl_all_dirs = 0xfffb7ffd9f0,
_dl_error_catch_tsd = @0xfffb7f13a30: 0xfffb7ea5a90 <__libc_dl_error_tsd>, _dl_rtld_map = {l_addr = 17590977822720, l_name = 0x10000200 "/lib64/ld64.so.1", l_ld = 0xfffb7ff9e60, l_next = 0x0,
l_prev = 0xfffb7ffe4a0, l_real = 0xfffb7ffbd10 <_rtld_local+2456>, l_ns = 0, l_libname = 0xfffb7ffc3a0 <_dl_rtld_libname>, l_info = {0x0, 0x0, 0xfffb7ff9ee0, 0xfffb7ff9ed0, 0xfffb7ff9e70,
0xfffb7ff9e90, 0xfffb7ff9ea0, 0xfffb7ff9f20, 0xfffb7ff9f30, 0xfffb7ff9f40, 0xfffb7ff9eb0, 0xfffb7ff9ec0, 0x0, 0x0, 0xfffb7ff9e60, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfffb7ff9ef0, 0x0, 0x0,
0xfffb7ff9f00, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfffb7ff9f70, 0x0, 0x0, 0x0, 0xfffb7ff9f10, 0x0, 0x0, 0x0, 0x0, 0xfffb7ff9f60, 0xfffb7ff9f50, 0xfffb7ff9f80, 0x0, 0xfffb7ff9fa0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0xfffb7ff9f90, 0x0 <repeats 25 times>, 0xfffb7ff9e80}, l_phdr = 0xfffb7fc0040, l_entry = 0, l_phnum = 6, l_ldnum = 0, l_searchlist = {r_list = 0x0, r_nlist = 0},
l_symbolic_searchlist = {r_list = 0x0, r_nlist = 0}, l_loader = 0x0, l_versions = 0xfffb7ffeff8, l_nversions = 5, l_nbuckets = 17, l_gnu_bitmask_idxbits = 3, l_gnu_shift = 8,
l_gnu_bitmask = 0xfffb7fc0280, {l_gnu_buckets = 0xfffb7fc02a0, l_chain = 0xfffb7fc02a0}, {l_gnu_chain_zero = 0xfffb7fc02d8, l_buckets = 0xfffb7fc02d8}, l_direct_opencount = 0,
l_type = lt_library, l_relocated = 1, l_init_called = 1, l_global = 1, l_reserved = 0, l_phdr_allocated = 0, l_soname_added = 0, l_faked = 0, l_need_tls_init = 0, l_auditing = 0,
l_audit_any_plt = 0, l_removed = 0, l_contiguous = 0, l_symbolic_in_local_scope = 0, l_free_initfini = 0, l_rpath_dirs = {dirs = 0x0, malloced = 0}, l_reloc_result = 0x0,
l_versyms = 0xfffb7fc0736, l_origin = 0x0, l_map_start = 17590977822720, l_map_end = 17590978069744, l_text_end = 17590977963688, l_scope_mem = {0x0, 0x0, 0x0, 0x0}, l_scope_max = 0,
l_scope = 0x0, l_local_scope = {0x0, 0x0}, l_dev = 0, l_ino = 0, l_runpath_dirs = {dirs = 0x0, malloced = 0}, l_initfini = 0x0, l_reldeps = 0x0, l_reldepsmax = 0, l_used = 1, l_feature_1 = 0,
l_flags_1 = 0, l_flags = 0, l_idx = 0, l_mach = {}, l_lookup_cache = {sym = 0xfffb7fc03f0, type_class = 1, value = 0xfffb7ffe4a0, ret = 0xfffb7d51d38}, l_tls_initimage = 0x0,
l_tls_initimage_size = 0, l_tls_blocksize = 0, l_tls_align = 0, l_tls_firstbyte_offset = 0, l_tls_offset = -1, l_tls_modid = 0, l_relro_addr = 236200, l_relro_size = 1368, l_serial = 0,
l_audit = 0xfffb7ffc178 <_rtld_local+3584>}, audit_data = {{cookie = 0, bindflags = 0} <repeats 16 times>}, _dl_rtld_lock_recursive = @0xfffb7f4f740: 0xfffb7f2ea60 <__GI___pthread_mutex_lock>,
---Type to continue, or q to quit---
_dl_rtld_unlock_recursive = @0xfffb7f4f7b8: 0xfffb7f301c0 <__GI___pthread_mutex_unlock>, _dl_make_stack_executable_hook = @0xfffb7f4f260: 0xfffb7f2b090 <__make_stacks_executable>,
_dl_stack_flags = 6, _dl_tls_dtv_gaps = false, _dl_tls_max_dtv_idx = 1, _dl_tls_dtv_slotinfo_list = 0xfffb7fff070, _dl_tls_static_nelem = 1, _dl_tls_static_size = 1776,
_dl_tls_static_used = 112, _dl_tls_static_align = 16, _dl_initial_dtv = 0xfffb7d30e10, _dl_tls_generation = 1, _dl_init_static_tls = @0xfffb7f4f2c0: 0xfffb7f2b940 <__pthread_init_static_tls>,
_dl_wait_lookup_done = @0xfffb7f4f2d8: 0xfffb7f2bb10 <__wait_lookup_done>, _dl_scope_free_list = 0x0}
_dl_argc = 1
_dl_argv_internal = 0xffffffff898

@k0da
Copy link
Author

k0da commented Mar 18, 2013

Just tested 0.36.2 tests are passed.

@buytenh
Copy link
Owner

buytenh commented Mar 18, 2013

What is likely happening here is that the pthreads conditionalisation
code that is new in 0.39 is tripping something up.

When I wrote this code, I tested it on all platfors I have shell
accounts on, and it seemed to work fine on all of them, even on the
ancient dinosaur UNIX stuff.

So either I am making an invalid assumption somewhere that only trips
up Linux/ppc, or there is a lurking bug on Linux/ppc somewhere.

I can't really debug this remotely, so I would advise that you stick
with 0.36.x for now. Once a new stable branch is on the horizon I'll
coordinate with you and/or others on this issue.

@algernon
Copy link
Contributor

FWIW, Debian has ppc64 buildds now too. I can upload a 0.39 package to experimental, and see where the build goes.

@algernon
Copy link
Contributor

Debugged this further with @buytenh on a Debian ppc64el box, and concluded that we need -Wl,-u,pthread_atfork added to LDFLAGS if - and only if - pthread_atfork is in pthread_nonshared. So an extra configure check and some hackery may be needed.

With -Wl,-u,pthread_atfork added to the libivykis.so linker flags (so not for the tests, or anything else), the tests pass on ppc64el.

I'll try my hands on a patch a bit later.

@buytenh buytenh self-assigned this Dec 11, 2016
@buytenh
Copy link
Owner

buytenh commented Dec 11, 2016

This is fixed by commit "Avoid jumping to address zero when calling pthread_atfork() on Linux.":

6cbb729

This commit is in ivykis release 0.41.

@buytenh buytenh closed this as completed Dec 11, 2016
jsonn pushed a commit to jsonn/pkgsrc that referenced this issue Jan 5, 2017
* A fix for the aarch64/ppc64 linker issue that has been plaguing us
  for a while (buytenh/ivykis#6).  I don't
  have access to a ppc box, but I reproduced the problem in an aarch64
  (qemu-system-aarch64) virtual machine and fixed it there.

* libivykis.so now no longer pulls in libpthread.so, and linking
  against libpthread.so is now fully optional.  If libpthread isn't
  linked in, ivykis can perform various optimizations, such as
  skipping pthread mutex calls, and iv_event can skip creating an
  eventfd when running in single-threaded mode.

* iv_signal now lets you register a thread-specific signal interest,
  indicated by the IV_SIGNAL_FLAG_THIS_THREAD flag, for which the
  handler will be called when that signal is delivered to the thread
  the interest was registered in (and will not trigger if the signal
  is delivered to another thread in the process).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants