-
Notifications
You must be signed in to change notification settings - Fork 162
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
(JP) tcacheによるキャッシュ構築中に共有メモリ不足エラーとなると、メモリ開放漏れが発生することがある #9
Comments
再現条件:
仮説) 次に GpuScan が tcache_head を掴んで、この時点で refcnt = 2 |
対策) 「俺がこのキャッシュをビルド中」というフラグと共にオブジェクトをトラッキングする。 ビルド中の人がエラーで中断の場合、構築半ばの木を開放する。 |
上記の方針で修正しました。 (*) Columnar-Store 一枚分だけメモリが残っているのは正しい動作です。 [kaigai@magro pg_strom]$ psql postgres postgres=# explain select count(*) from t1 where sqrt((x-20.0)^2 + (y-20.0)^2) < 10; QUERY PLANAggregate (cost=344643.21..344643.22 rows=1 width=0) postgres=# select * from pgstrom_tcache_info(); postgres=# select count() from t1 where sqrt((x-20.0)^2 + (y-20.0)^2) < 10; postgres=# select * from pgstrom_shmem_active_info(); |
最新版ソースで再現確認を行い、再現しませんでした。 |
現時点の最新のソースで、psql上から大量のデータを持つテーブルの検索を行い、共有メモリ不足に陥ると、それまでに確保した領域が解放されない状況となりました。
explainでGpuScanとなることを確認した直後に、発生しているように見えます。
使用したテーブルは、 #4 で使用したものと同一のものです。
The text was updated successfully, but these errors were encountered: