Bug 1467833

Summary: java -version segfaults in mock chroot on ppc64le
Product: [Fedora] Fedora Reporter: Mat Booth <mat.booth>
Component: glibcAssignee: Carlos O'Donell <codonell>
Status: CLOSED DUPLICATE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: rawhideCC: ahughes, akurtako, arjun.is, codonell, dbhole, dj, fweimer, java-sig-commits, jerboaa, jvanek, law, mfabian, mizdebsk, msimacek, msrb, mvala, omajid, pfrankli, sgehwolf, siddhesh
Target Milestone: ---   
Target Release: ---   
Hardware: ppc64le   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-07-07 10:06:12 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Mat Booth 2017-07-05 09:21:29 UTC
All my archful java builds are failing on ppc64le. For example these Eclipse builds:

https://koji.fedoraproject.org/koji/taskinfo?taskID=20323213
https://koji.fedoraproject.org/koji/taskinfo?taskID=20323337

And any time a noarch java build hits a ppc64le builder, that fails too. For example this jetty build:

https://koji.fedoraproject.org/koji/taskinfo?taskID=20322295

Comment 1 Mikolaj Izdebski 2017-07-06 12:24:16 UTC
Reason - Java segfaults when ran in mock chroot, even with no arguments. Only in mock, does not happen on the same host outsides of chroot.

<mock-chroot> sh-4.4# java -version
<mock-chroot> sh-4.4# echo $?
139

(139-128=11 - signal number of SIGSEGV)

<mock-chroot> sh-4.4# rpm -q java-1.8.0-openjdk-headless
java-1.8.0-openjdk-headless-1.8.0.131-7.b12.fc27.ppc64le

The same version works without chroot, same host:

[root@mizdebsk-rhbz1467833 ~]# java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
[root@mizdebsk-rhbz1467833 ~]# rpm -q java-1.8.0-openjdk-headless
java-1.8.0-openjdk-headless-1.8.0.131-7.b12.fc27.ppc64le

Comment 2 Severin Gehwolf 2017-07-06 17:44:53 UTC
This is strange as a build of eclipse one day earlier passed fine. Same java version: ppc64le 1:1.8.0.131-7.b12.fc27

See: https://koji.fedoraproject.org/koji/buildinfo?buildID=914908

Comment 3 Deepak Bhole 2017-07-06 17:50:06 UTC
(In reply to Severin Gehwolf from comment #2)
> This is strange as a build of eclipse one day earlier passed fine. Same java
> version: ppc64le 1:1.8.0.131-7.b12.fc27
> 
> See: https://koji.fedoraproject.org/koji/buildinfo?buildID=914908

Do we use Zero or the JIT on ppc64le?

Comment 4 Severin Gehwolf 2017-07-06 18:06:51 UTC
(In reply to Deepak Bhole from comment #3)
> (In reply to Severin Gehwolf from comment #2)
> > This is strange as a build of eclipse one day earlier passed fine. Same java
> > version: ppc64le 1:1.8.0.131-7.b12.fc27
> > 
> > See: https://koji.fedoraproject.org/koji/buildinfo?buildID=914908
> 
> Do we use Zero or the JIT on ppc64le?

JIT, AFAIK.

Comment 5 Severin Gehwolf 2017-07-06 18:17:12 UTC
Comparing the good vs bad eclipse builds root log I see these differences:

Good:
kernel-headers.ppc64le 4.12.0-0.rc7.git2.1.fc27
glibc.ppc64le 2.25.90-15.fc27

Bad:
kernel-headers-4.12.0-1.fc27.ppc64le
glibc-2.25.90-18.fc27.ppc64le

glibc got some ppc64le changes:
https://koji.fedoraproject.org/koji/buildinfo?buildID=915808

I wonder if downgrading to 2.25.90-15 fixes the issue. Do you still have the chroot available for you to try?

Comment 6 Mikolaj Izdebski 2017-07-07 09:00:38 UTC
Yes, glibc downgrade from glibc-2.25.90-19.fc27.ppc64le to glibc-2.25.90-15.fc27.ppc64le fixes the issue.

Comment 7 Severin Gehwolf 2017-07-07 09:15:53 UTC
(In reply to Mikolaj Izdebski from comment #6)
> Yes, glibc downgrade from glibc-2.25.90-19.fc27.ppc64le to
> glibc-2.25.90-15.fc27.ppc64le fixes the issue.

Thanks! I'll reassign to glibc as per comment 2 and comment 6.

Comment 8 Mikolaj Izdebski 2017-07-07 09:28:18 UTC
Additional info:
This started to happen after update from glibc-2.25.90-15.fc27 to glibc-2.25.90-17.fc27.
Reproducible with latest koji build too (glibc-2.25.90-20.fc27).
Breaks other system apps too (including dnf, making upgrade/downgrade impossible once affected glibc version is installed)

Comment 9 Florian Weimer 2017-07-07 09:37:28 UTC
(In reply to Mikolaj Izdebski from comment #1)
> Reason - Java segfaults when ran in mock chroot, even with no arguments.
> Only in mock, does not happen on the same host outsides of chroot.

Are the versions of glibc inside and outside the chroot identical?
Does the chroot have mounted /proc and /sys file systems?  Thanks.

Comment 10 Florian Weimer 2017-07-07 10:06:12 UTC
Never mind, the chroot setup problems are a red herring.

Backtrace looks like this:

#0  0x0000000000000000 in ?? ()
#1  0x00003fffb6cb2380 in ?? ()
#2  0x00003fffb6cb2838 in ?? ()
#3  0x00003fffb7fba73c in resolve_ifunc (sym_map=<optimized out>, map=<optimized out>, value=70367515977760)
    at ../sysdeps/powerpc/powerpc64/dl-machine.h:674
#4  elf_machine_rela (skip_ifunc=<optimized out>, reloc_addr_arg=0x3fffb6d40098, version=<optimized out>, 
    sym=<optimized out>, reloc=0x3fffb6bf8c48, map=0x20030bb0) at ../sysdeps/powerpc/powerpc64/dl-machine.h:729
#5  elf_dynamic_do_Rela (skip_ifunc=<optimized out>, lazy=<optimized out>, nrelative=<optimized out>, 
    relsize=<optimized out>, reladdr=<optimized out>, map=<optimized out>) at do-rel.h:137
#6  _dl_relocate_object (scope=0x20030f28, reloc_mode=<optimized out>, consider_profiling=<optimized out>)
    at dl-reloc.c:259
#7  0x0000003c00000008 in ?? ()

*** This bug has been marked as a duplicate of bug 1467518 ***