On 2024-09-10 Tu 6:20 AM, Muralikrishna Bandaru wrote:
Hi,
I built PG17 rc1 using meson on Windows with the option "-Dplperl=enabled" . When I tried to create the extension,it crashed the database.
--
postgres=# create extension plperl; server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request. The connection to the server was lost. Attempting reset: Succeeded.
The log contains the following error.
src/pl/plperl/Util.c: loadable library and perl binaries are mismatched (got first handshake key 0000000012d00080, needed 0000000012c00080)
--
This issue is seen with strawberry perl 5.40 not with 5.38 . The Perl that is used during compilation and on the target machine is the same.
I have used strawberry perl 5.40 , which is available in the strawberry perl home page ,but 5.40 is not available in the release page . So, is it recommended to use perl 5.40 ?
Please let me know if you need any other information.
We've seen similar things before. See for example:
This looks like we are defining something we should not be, or not defining something we should be. We just need to find out what it is :-)
In the meantime, I would suggest sticking to 5.38.
Now I've had a chance to take a look I see that Strawberry 5.40 has USE_THREAD_SAFE_LOCALE defined. Can you try what happens with 5.40 if you comment out theses lines in meson.build?
if cc.get_id() == 'msvc' # prevent binary mismatch between MSVC built plperl and Strawberry or # msys ucrt perl libraries perl_ccflags += ['-DNO_THREAD_SAFE_LOCALE'] endif
Hi Andrew,
Thanks. I commented above lines in the meson.build file and built the installer with Strawberry 5.40 . Now able to create the extension.
--
c:\Program Files\PostgreSQL\17>bin\psql.exe -d postgres -p 5436 psql (17rc1) WARNING: Console code page (437) differs from Windows code page (1252) 8-bit characters might not work correctly. See psql reference page "Notes for Windows users" for details. Type "help" for help.