Re: [Bus error] huge_pages default value (try) not fall back

From: Dmitry Dolgov <9erthalion6(at)gmail(dot)com>
To: Fan Liu <fan(dot)liu(at)ericsson(dot)com>
Cc: "pgsql-bugs(at)lists(dot)postgresql(dot)org" <pgsql-bugs(at)lists(dot)postgresql(dot)org>
Subject: Re: [Bus error] huge_pages default value (try) not fall back
Date: 2020-02-18 09:32:40
Message-ID: 20200218093240.jd3lgoxmisyl2tt5@localhost
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

> On Tue, Feb 18, 2020 at 07:52:50AM +0000, Fan Liu wrote:
> Hi,
>
> We have seen a bus error when running postgresql in container (where on K8s). According current finding, there is bug on K8s, they are working on it.
> But we also want to know why huge_pages default value(try) didn't fall back.
>
> K8s BUG https://github.com/kubernetes/kubernetes/issues/71233
>
> Problem quick summary:
> When hugepage not working, initdb produce bus error.

Thanks for reporting!

This one is fun. If I understand everything correctly, Postgres will
fall back to non huge pages if it fails to allocate some. But in this
case kernel actually allocates everything without problems (there are
some available huge pages on a node after all), and return SIGBUS only
when a first page fault within this cgroup happened, see the docs [1]:

The HugeTLB controller allows to limit the HugeTLB usage per control
group and enforces the controller limit during page fault. Since
HugeTLB doesn't support page reclaim, enforcing the limit at page
fault time implies that, the application will get SIGBUS signal if
it tries to access HugeTLB pages beyond its limit. This requires the
application to know beforehand how much HugeTLB pages it would
require for its use.

Unfortunately I'm not sure what would be the best solution in this
situation.

[1]: https://www.kernel.org/doc/html/latest/_sources/admin-guide/cgroup-v1/hugetlb.rst.txt

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Fan Liu 2020-02-18 12:31:51 RE: [Bus error] huge_pages default value (try) not fall back
Previous Message Fan Liu 2020-02-18 07:52:50 [Bus error] huge_pages default value (try) not fall back