{"thread":{"id":"54406","subject":"[Bug] Git 2.29.0-rc1 t5562.8 Hang on NonStop","startedAt":"2020-10-13T14:41:23Z","lastAt":"2020-10-13T14:41:23Z","messageCount":1,"participants":["Randall S. Becker"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"407448","messageId":"05db01d6a16e$e9cc8ea0$bd65abe0$@nexbridge.com","threadId":"54406","inReplyTo":null,"subject":"[Bug] Git 2.29.0-rc1 t5562.8 Hang on NonStop","fromName":"Randall S. Becker","fromEmail":"rsbecker@nexbridge.com","sentAt":"2020-10-13T14:41:13Z","receivedAt":"2020-10-13T14:41:23Z","isPatch":false,"sender":{"key":"randall.becker@nexbridge.ca","avatar":"https://avatars.githubusercontent.com/u/28956764?v=4"},"body":"This is a repeat of a prior unresolved situation. During the full regression\nsuite, subtest t5562.8 (fetch gzipped empty) appears to have hung on the\nNonStop port. The code was in a loop repeatedly calling waitpid here in\ngit-http-backend:\n\n  waitpid + 0x320 (SLr)\n  $n_EnterPriv + 0x280 (Milli)\n  cleanup_children + 0x250 (UCr)\n  cleanup_children_on_exit + 0x30 (UCr)\n  git_atexit_dispatch + 0xB0 (UCr)\n  __process_atexit_functions + 0xA0 (DLL zcredll)\n  CRE_TERMINATOR_ + 0xB50 (DLL zcredll)\n  exit + 0x2A0 (DLL zcrtldll)\n  die_webcgi + 0xA0 (UCr)\n  die_errno + 0x150 (UCr)\n  write_or_die + 0xC0 (UCr)\n  end_headers + 0x70 (UCr)\n  die_webcgi + 0x160 (UCr)\n  die + 0x120 (UCr)\n  inflate_request + 0x3D0 (UCr)\n  run_service + 0x540 (UCr)\n  service_rpc + 0x1F0 (UCr)\n  cmd_main + 0x3B0 (UCr)\n  main + 0x120 (UCr)\n  _MAIN + 0x80 (UCr)\n\nI do not see any relevant diff between rc0 and rc1 that could account for\nthis. I also experienced this hang during 2.28.0 testing and in earlier\nreleases transiently. 2.21.0 had this hang also. I have noticed a number of\nreports of this subtest hanging on different platforms. It looks like the\nsituation is here:\n\n                while (waitpid(p->pid, NULL, 0) < 0 && errno == EINTR)\n                        ; /* spin waiting for process exit or error */\n\nIt is possible that, without kernel threads, the child never terminates (or\nis waiting on a deferred signal that is not being delivered). If both git\nand git-http-backend are in cleanup_children at the same time, it is\npossible that neither will terminate, if git-http-backend has a child that\nis waiting on something else - apparent from this trace.\n\nSincerely,\nRandall\n\n-- Brief whoami:\n NonStop developer since approximately 211288444200000000\n UNIX developer since approximately 421664400\n-- In my real life, I talk too much.\n\n\n"}]}