The memory statistics code leads to segfaults during initialization (on machines with InfiniPath networking): (gdb) bt full #0 ips_ptl_init (ep=0x1fc6af8, ptl=0x1fc6f88, ctl=0x1fc6d78) at ptl.c:224 err = PSM_OK num_of_send_bufs = 1024 num_of_send_desc = 4096 imm_size = 128 context = 0x1fc6b70 user_info = 0x1fc6b90 enable_shcontexts = 0 current_count = #1 0x00007fb2aa672abf in __psm_ep_open_internal ( unique_job_key=unique_job_key@entry=0x7ffed1ee5800 "<\207\020#5\271\267\200\354x\242e8\364zo", devid_enabled=devid_enabled@entry=0x7ffed1ee5724, opts_i=opts_i@entry=0x7ffed1ee5810, mq=, epo=epo@entry=0x7ffed1ee5710, epido=epido@entry=0x7ffed1ee5708) at psm_ep.c:929 ep = 0x1fc6af8 num_units = 1 len = err = epaddr = 0x1e9dd78 buf = "miriel044:2.0.", '\000' p = e = old_cpuaff = 0x0 old_unit = 0x0 yield_cnt = {e_void = 0xfa, e_str = 0xfa , e_int = 250, e_uint = 250, e_long = 250, e_ulong = 250, e_ulonglong = 250} no_cpuaff = {e_void = 0x0, e_str = 0x0, e_int = 0, e_uint = 0, e_long = 0, e_ulong = 0, e_ulonglong = 0} env_unit_id = {e_void = 0xffffffffffffffff, e_str = 0xffffffffffffffff , e_int = -1, e_uint = 4294967295, e_long = -1, e_ulong = 18446744073709551615, e_ulonglong = 18446744073709551615} env_port_id = {e_void = 0x0, e_str = 0x0, e_int = 0, e_uint = 0, e_long = 0, e_ulong = 0, e_ulonglong = 0} env_sl = {e_void = 0x0, e_str = 0x0, e_int = 0, e_uint = 0, e_long = 0, e_ulong = 0, e_ulonglong = 0} ptl_sizes = default_cpuaff = opts = {timeout = 180000000000, unit = -1, affinity = 0, shm_mbytes = 10, sendbufs_num = 1024, network_pkey = 65535, port = 0, outsl = 0, service_id = 1152940698815692800, path_res_type = PSM_PATH_RES_NONE, senddesc_num = 4096, imm_size = 128} amsh_ptl = 0x1fc6e48 ips_ptl = 0x1fc6f88 self_ptl = 0x1fc99c8 i = 3 It looks like ptl.c:24 is writing past the region that was malloc'd. Turning stats off solves the problem. diff --git a/psm_utils.c b/psm_utils.c index c8651fe..5514921 100644 --- a/psm_utils.c +++ b/psm_utils.c @@ -1058,7 +1058,7 @@ psmi_log_memstats(psmi_memtype_t type, int64_t nbytes) return; } -#define psmi_stats_mask PSMI_STATSTYPE_MEMORY +#define psmi_stats_mask 0 #ifdef malloc #undef malloc go.scm?id=770ae098604d0bd9f21d625e8959e6c7ced3c36f'>tests: go: Fix typo....* tests/go.scm (fixture-go-mod-unparseable): Rename this… (fixture-go-mod-unparsable): …to this. Adjust the only caller. Tobias Geerinckx-Rice 2021-09-01import: go: Improve error handling....* guix/import/go.scm (go-module->guix-package*): Handle errors, remove memoize. (go-module-recursive-import): Remove 'guard', add memoize. * guix/scripts/import/go.scm (guix-import-go): Adjust. * tests/go.scm: Adjust. Signed-off-by: Ludovic Courtès <ludo@gnu.org> zimoun 2021-07-18import: go: Upgrade go.mod parser....Upgrade the go.mod parser to handle the full go.mod spec, and to gracefully handle unexpected/malformed syntax. Restructure parser usage, making the parse tree available for other uses. guix/import/go.scm (parse-go.mod): Parse using (ice-9 peg) instead of regex matching for more robustness. Return a list of directives. (go.mod-directives): New procedure. (go.mod-requirements): Likewise. (go-module->guix-package): Use it. (%go.mod-replace-directive-rx): Remove unused variable. tests/go.scm (testing-parse-mod): Adjust accordingly. (go.mod-requirements) (fixture-go-mod-unparseable) (fixture-go-mod-retract) (fixture-go-mod-strings): New variables. ("parse-go.mod: simple") ("parse-go.mod: comments and unparseable lines") ("parse-go.mod: retract") ("parse-go.mod: raw strings and quoted strings") ("parse-go.mod: complete"): New tests. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Sarah Morgensen 2021-07-17tests/go: Remove unused variable....* tests/go.scm: Delete extraneous newline. (fixture-latest-for-go-check): Remove variable. Maxim Cournoyer