Skip to content
This repository has been archived by the owner on Oct 19, 2021. It is now read-only.

LMDB: retry mdb_env_open() on memory allocation failure #1614

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

nayuta-ueno
Copy link
Contributor

#1580

  • LMDBのmapsizeは、mdb_env_open()で反映される
  • mdb_env_open()は失敗すると内部でフラグを立て、再度実行してもエラーを返すようになる
    • mdb_env_close()で閉じる
  • Raspberry Pi Zeroではallocationできるサイズも、Raspberry Pi3では失敗した
    • 0x8000_0000から下げていって、0x5d00_0000くらいで成功した

よって今回は、mdb_env_open()がENOMEMで失敗する場合に限り、allocationするサイズを減らしながら成功するサイズを見つけるようにする。
下げすぎないよう、retry countで下限を付ける(0x4000_0000)。

@nayuta-ueno nayuta-ueno self-assigned this Oct 1, 2019
@nayuta-ueno
Copy link
Contributor Author

何かの値から計算できる方がよいのだが、見つからないため暫定で対策する。

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
suspend hold until needed wontfix
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant