Re: gs_group_1 crashing on 13beta2/s390x
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Christoph Berg <myon@debian.org>, Tom Lane <tgl@sss.pgh.pa.us>, Andrew Gierth <andrew@tao11.riddles.org.uk>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>, Andres Freund <andres@anarazel.de>
Date: 2020-10-14T21:58:35Z
Lists: pgsql-hackers
Hi,
Christoph helped me to get access to a s390x machine - I wasn't able to
reproduce exactly the error he hit. Initially all tests passed, but
after recompiling with build flags more similar to Christop's I was able
to hit another instance of what I assume to be the same bug.
I am fairly sure that I see the problem. Before a post LLVM 10 change
the "runtime linker" for JITed code only asserted that relocations that
need to be performed are of a known type. Since the debian build -
correctly - uses a release version of LLVM, this results in unhandled
relocations basically being resolved to 0.
I suspect that building with LDFLAGS="-Wl,-z,relro -Wl,-z,now" - which
is what I think the debian package does - creates the types of
relocations that LLVM doesn't handle for elf + s390.
10 release branch:
void RuntimeDyldELF::resolveSystemZRelocation(const SectionEntry &Section,
uint64_t Offset, uint64_t Value,
uint32_t Type, int64_t Addend) {
uint8_t *LocalAddress = Section.getAddressWithOffset(Offset);
switch (Type) {
default:
llvm_unreachable("Relocation type not implemented yet!");
break;
11/master:
void RuntimeDyldELF::resolveSystemZRelocation(const SectionEntry &Section,
uint64_t Offset, uint64_t Value,
uint32_t Type, int64_t Addend) {
uint8_t *LocalAddress = Section.getAddressWithOffset(Offset);
switch (Type) {
default:
report_fatal_error("Relocation type not implemented yet!");
break;
Verifying that that's the case by rebuilding against 11 (and then an
LLVM debug build, which will take a day or two).
Greetings,
Andres Freund
Commits
-
llvmjit: Work around bug in LLVM 3.9 causing crashes after 72559438f92.
- c835c7ffe21d 12.5 landed
- 4a4f4487d2d2 11.10 landed
- fe2a16d8b3e6 14.0 landed
- efc9a8e9800c 13.1 landed
-
llvmjit: Also copy parameter / return value attributes from template functions.
- f3dee5b9aba6 11.10 landed
- c8a2bb0f1abf 12.5 landed
- ae3e75abab22 13.1 landed
- 72559438f92f 14.0 landed