Re: PG94RC1- plv8 functions - problem with input parameter length - Mailing list pgsql-general

From Misa Simic
Subject Re: PG94RC1- plv8 functions - problem with input parameter length
Date
Msg-id CAH3i69=rkGnK+FA0H+D4fj-Are4UGf+E7DAtkePZqvstwH9hpg@mail.gmail.com
Whole thread Raw
In response to Re: PG94RC1- plv8 functions - problem with input parameter length  (Adrian Klaver <adrian.klaver@aklaver.com>)
Responses Re: PG94RC1- plv8 functions - problem with input parameter length  (Adrian Klaver <adrian.klaver@aklaver.com>)
Re: PG94RC1- plv8 functions - problem with input parameter length  (Adrian Klaver <adrian.klaver@aklaver.com>)
Re: PG94RC1- plv8 functions - problem with input parameter length  (Andres Freund <andres@2ndquadrant.com>)
List pgsql-general


On Friday, November 28, 2014, Adrian Klaver <adrian.klaver@aklaver.com> wrote:
On 11/28/2014 12:18 PM, Misa Simic wrote:


On Friday, November 28, 2014, Adrian Klaver <adrian.klaver@aklaver.com
<mailto:adrian.klaver@aklaver.com>> wrote:

    On 11/28/2014 07:56 AM, Misa Simic wrote:

        Hi all,

        We have found a strange problem with plv8 functions in PG94RC1

        PG 9.3 works fine.

        in PG94RC1 in plv8 functions regardless what function does
        i.e.nothing

        CREATE OR REPLACE FUNCTION
        test.test_text_length_plv8(in___param1 text)
        RETURNS text
        AS
        $BODY$
        return 'OK'
        $BODY$ LANGUAGE plv8;

        if length of in_param1 is higher then (or equal to) 200 characters
        connection just brake... current connection and it brakes - other
        connections as well... Not sure what it does - but all sessions just
        says server disconnected and we need and can reconect again....

        ie.
        SELECT test.test_text_length_plv8('__aaaa') works fine

        SELECT
        test.test_text_length_plv8('__aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa__aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa__aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa__aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa__aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa__aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa__aaaaaaaaaaaaaaaaaaaa')

        exactly 200 chars - just brake conncetion witout any
        message...but in
        separate session when we run next command it says:

        WARNING:  terminating connection because of crash of another
        server process
        DETAIL:  The postmaster has commanded this server process to
        roll back
        the current transaction and exit, because another server process
        exited
        abnormally and possibly corrupted shared memory.
        HINT:  In a moment you should be able to reconnect to the
        database and
        repeat your command.

        We have tested using pgadmin and psql...

        Versions:
        PostgreSQL 9.4rc1 on x86_64-unknown-linux-gnu, compiled by gcc
        (Ubuntu
        4.9.1-16ubuntu6) 4.9.1, 64-bit
        plv8: 1.5.0-dev1

        The same version of plv8 on PG9.3 - works fine without problems...

        Any suggestions?


    Have you tried this with another language, say plpgsql, to see if
    this a generic problem or specific to plV8?


Yes, plv8 specific..

Sql, plpgsql, plr, plpythonu work fine...

Though plv8 just produce problems in rc1.. Beta1 no probs....

Given that other PLs are not having problems, this is probably something that needs to be brought up with the plV8 maintainers:

https://code.google.com/p/plv8js/wiki/PLV8

https://code.google.com/p/plv8js/issues/list

A look at plv8 repo shows the last change was June 7, 2014. A lot has happened since then in the Postgres 9.4 code, so it is entirely possible the plv8 code is not aware of the changes.

To get more specific information you could try:

https://wiki.postgresql.org/wiki/Getting_a_stack_trace_of_a_running_PostgreSQL_backend_on_Linux/BSD




        Thanks,

        Misa






    --
    Adrian Klaver
    adrian.klaver@aklaver.com



--
Adrian Klaver
adrian.klaver@aklaver.com

Thanks Adrian,

Not sure any more where problem could be....

We have just found that it creates problems on machines with ubuntu 14.10 (pg94rc1) - we have tried to install 14.10 in different environments (cloud, xen, virtual box) - and everywhere problems happens...

Other wierd thing problem hapens just if input parametar length is 200-255. 256 work fine.

We have noticed that other versions of pg (i.e 9.3, 94beta1) what work fine are on different version of ubuntu. So we have tried pg94rc1 on ubuntu 14.04 - and work fine...

We haven't tried other OS...

Thanks,
Misa


pgsql-general by date:

Previous
From: Andy Colson
Date:
Subject: Re: recovering from "too many failures" wal error
Next
From: Giuseppe Sacco
Date:
Subject: Slow delete when many foreign tables are defined