HPX示例运行抛出"failed to insert update_agas_cache_action into typename to id registry"异常求助
HPX示例运行抛出"failed to insert update_agas_cache_action into typename to id registry"异常求助
兄弟你好,看你在Ubuntu22.04上折腾HPX编译,不管是1.9.X分支还是master分支,换了tcmalloc或系统malloc都碰到这个AGAS相关的异常,所有示例运行都挂掉,给你几个我踩坑后总结的排查方向试试:
- 先把基础依赖补全:HPX在Ubuntu22.04上对Boost版本有要求(至少1.74以上),CMake得是3.18及以上版本,另外libnuma-dev、Python3这些配套依赖也得装全。你可以先跑一遍命令确认:
sudo apt install build-essential cmake libboost-all-dev libnuma-dev python3 - 彻底清理后重新编译:旧的build缓存很容易搞出奇怪问题,直接删掉整个build目录,从头用CMake配置编译试试:
先别加额外自定义参数,用最基础的配置跑通再说。rm -rf build cmake -S . -B build -DHPX_BUILD_EXAMPLES=ON -DHPX_WITH_MALLOC=system cmake --build build -j$(nproc) - 试试指定运行时参数:HPX程序有时候需要明确指定线程数,你给示例加个参数再运行,比如单线程测试:
先排除多线程环境带来的冲突问题。./build/examples/hello_world --hpx:threads=1 - 确认AGAS组件正常启用:AGAS是HPX的核心组件,默认应该是开启的,但可以在CMake配置时显式加上
-DHPX_WITH_AGAS=ON,避免编译时意外禁用了这个组件。 - 排查环境变量干扰:看看有没有设置过
HPX_HOME、LD_LIBRARY_PATH这类和HPX相关的环境变量,先临时取消掉,直接运行编译好的二进制文件,避免路径或配置冲突。
如果这些都试过还是不行,你可以把CMake配置时的完整输出日志贴出来,或者编译过程的详细日志,这样更容易定位问题。
备注:内容来源于stack exchange,提问作者procollision
相关产品推荐
相关产品推荐

