• Tom Lane's avatar
    Avoid "invalid memory alloc request size" while reading pg_stat_activity. · 8d0ddcce
    Tom Lane authored
    On a 64-bit machine, if you set track_activity_query_size and
    max_connections such that their product exceeds 1GB, shared memory
    setup will still succeed (given enough RAM), but attempts to read
    pg_stat_activity fail with "invalid memory alloc request size".
    Work around that by using MemoryContextAllocHuge to allocate the
    local copy of the activity strings.  Using the "huge" API costs us
    nothing extra in normal cases, and it seems better than throwing
    an error and/or explaining to people why they can't do this.
    
    This situation seems insanely profligate today, but who knows what
    people will consider normal in ten or twenty years?  So let's fix it
    in HEAD but not worry about a back-patch.
    
    Per report from James Tomson.
    
    Discussion: https://postgr.es/m/1CFDCCD6-B268-48D8-85C8-400D2790B2C3@pushd.com
    8d0ddcce
pgstat.c 172 KB