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>
Date: 2020-10-15T08:32:46Z
Lists: pgsql-hackers
Hi, On 2020-10-14 17:56:16 -0700, Andres Freund wrote: > Oh dear. It's not as simple as that. The issue indeed are relocations, > but we don't hit those errors. The issue rather is that the systemz > specific relative redirection code thought that the only relative > symbols are functions. So it creates a stub function to redirect > them. Which turns out to not work well with variables like > CurrentMemoryContext... That might be a problem - but the main problem causing the crash at hand is likely something else. The prototypes we create for ExecAggTransReparent() were missing the 'zeroext' parameter for a the 'isnull' attribute, because the code for copying the attributes from llvmjit_types.bc didn't go deep enough (i.e. I didn't quite grok the pretty weird API). On s390x that lead to the newValue argument in ExecAggTransReparent() having a 0 lower byte, but set higher bytes - which then *sometimes* fooled the if (!newValueIsNull) check, which assumed that the higher bits were unset. I have a fix for this, but I've just stared at s390 assembly code for ~10h, never having done so before. So that'll have to wait for tomorrow. It's quite possible that that fix would also help on other architectures... 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