From: Christian Weisgerber Subject: Commit e600f1246e15 breaks test_update_conflict_wt_rm_vs_repo_rm on FreeBSD To: gameoftrees@openbsd.org Date: Mon, 22 Mar 2021 22:10:30 +0100 I'm updating the FreeBSD port to got 0.50, and regress/cmdline/update.sh throws an error: ./update.sh -q -r "/tmp" got: readlink: /tmp/got-test-update_conflict_wt_rm_vs_repo_rm-jQlcrkFR/wt/beta: No such file or directory --- /tmp/got-test-update_conflict_wt_rm_vs_repo_rm-jQlcrkFR/stdout.expected 2021-03-22 18:20:15.175124000 +0100 +++ /tmp/got-test-update_conflict_wt_rm_vs_repo_rm-jQlcrkFR/stdout 2021-03-22 18:20:15.161657000 +0100 @@ -1,2 +0,0 @@ -D beta -Updated to commit 4c0fba2fe44f69c9adb88a085187149bb4ab557e test failed; leaving test data in /tmp/got-test-update_conflict_wt_rm_vs_repo_rm-jQlcrkFR Specificially, it's the line (cd $testroot/wt && got update > $testroot/stdout) in test_update_conflict_wt_rm_vs_repo_rm(). I've bisected this down to commit e600f1246e15, "ensure that old commits remain referenced after rebase and histedit". Unfortunately that is a large change. The ktrace is baffling. On FreeBSD I see 47982 got CALL openat(AT_FDCWD,0x800704080,0x100) 47982 got NAMI "/tmp/got-test-update_conflict_wt_rm_vs_repo_rm-ZzWKzRq6/wt/beta" 47982 got RET openat -1 errno 2 No such file or directory 47982 got CALL readlink(0x800704080,0x7fffffffd430,0x400) 47982 got NAMI "/tmp/got-test-update_conflict_wt_rm_vs_repo_rm-ZzWKzRq6/wt/beta" 47982 got RET readlink -1 errno 2 No such file or directory Meanwhile, on OpenBSD there's 61448 got CALL open(0x1d3545fec00,0x100) 61448 got NAMI "/tmp/got-test-update_conflict_wt_rm_vs_repo_rm-ybHVRPHj\ /wt/beta" 61448 got RET open -1 errno 2 No such file or directory and then it proceeds to do other things. There is no readlink() call. *scratches head* -- Christian "naddy" Weisgerber naddy@mips.inka.de