Thread

Commits

  1. Translate ENOMEM to ERRCODE_OUT_OF_MEMORY in errcode_for_file_access().

  1. Correct SQLSTATE for ENOMEM in file access

    Alexander Kuzmenkov <akuzmenkov@timescale.com> — 2024-02-02T19:02:37Z

    Looking through the logs of some server that were experiencing out of
    memory errors, I noticed that errcode_for_file_access() reports
    ERRCODE_INTERNAL_ERROR for ENOMEM, while the correct SQLSTATE for this
    should probably be ERRCODE_OUT_OF_MEMORY. Attached is a small patch to
    fix this.
    
    ---
    Alexander Kuzmenkov
    Timescale
    
  2. Re: Correct SQLSTATE for ENOMEM in file access

    Tom Lane <tgl@sss.pgh.pa.us> — 2024-02-02T19:12:13Z

    Alexander Kuzmenkov <akuzmenkov@timescale.com> writes:
    > Looking through the logs of some server that were experiencing out of
    > memory errors, I noticed that errcode_for_file_access() reports
    > ERRCODE_INTERNAL_ERROR for ENOMEM, while the correct SQLSTATE for this
    > should probably be ERRCODE_OUT_OF_MEMORY. Attached is a small patch to
    > fix this.
    
    Hmm, do you think this is actually reachable?  AFAIK we should only be
    calling errcode_for_file_access() after functions that are unlikely to
    report ENOMEM.
    
    			regards, tom lane
    
    
    
    
  3. Re: Correct SQLSTATE for ENOMEM in file access

    Alexander Kuzmenkov <akuzmenkov@timescale.com> — 2024-02-02T19:28:39Z

    On Fri, Feb 2, 2024 at 8:12 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
    > Hmm, do you think this is actually reachable?  AFAIK we should only be
    > calling errcode_for_file_access() after functions that are unlikely to
    > report ENOMEM.
    
    It's reachable, that's how I noticed. I'm seeing logs like "XX000:
    could not load library \"/usr/lib/postgresql/15/lib/plpgsql.so\": out
    of memory" from internal_load_library and so on. Not sure what is the
    exact configuration required to reproduce this, probably at least the
    overcommit should be disabled.
    
    
    
    
  4. Re: Correct SQLSTATE for ENOMEM in file access

    Tom Lane <tgl@sss.pgh.pa.us> — 2024-02-02T20:20:13Z

    Alexander Kuzmenkov <akuzmenkov@timescale.com> writes:
    > On Fri, Feb 2, 2024 at 8:12 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
    >> Hmm, do you think this is actually reachable?  AFAIK we should only be
    >> calling errcode_for_file_access() after functions that are unlikely to
    >> report ENOMEM.
    
    > It's reachable, that's how I noticed. I'm seeing logs like "XX000:
    > could not load library \"/usr/lib/postgresql/15/lib/plpgsql.so\": out
    > of memory" from internal_load_library and so on. Not sure what is the
    > exact configuration required to reproduce this, probably at least the
    > overcommit should be disabled.
    
    OK, can't argue with experimental evidence ;-)
    
    			regards, tom lane