Linux プログラミングを行っているときに、blkid ライブラリのライブラリ関数がメモリをリークする状況に遭遇しました... それに関するドキュメントはあまり多くありません ( https://www.kernel.org/pub/linux/utils/ util-linux/v2.21/libblkid-docs/libblkid-Cache.html ) したがって、この問題の解決策を見つけるためにコミュニティに頼ります。
関数はblkid_get_cache
valgrind であり、次のように報告されます。
==29769== 4,129 (72 direct, 4,057 indirect) bytes in 1 blocks are definitely lost in loss record 68 of 69
==29769== at 0x4C29DB4: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==29769== by 0x67360BB: blkid_get_cache (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==29769== by 0x652DBAC: gather_disk_stat() (disk_status.cpp:96)
==29769== by 0x652DD5A: execute (disk_status.cpp:124)
==29769== by 0x42599B: PluginHelper::executeClientPlugin(plugin_descriptor*) (plugin_helper.cpp:333)
==29769== by 0x432BB5: main (main.cpp:48)
ここで、このコードは 24 時間年中無休で実行されるデーモン プロセスで使用されるため、制御不能なメモリの増加を回避したいと考えています。
libblkid を今まで使っていた人はいますか? このメモリの問題を解決するにはどうすればよいですか? (極端な場合、私はそれを行うことができfree()
ます...しかし、システムの安定性に影響はありますか?)