On 10/8/24 8:15 AM, Patrick Steinhardt wrote:
It was reported on the mailing list that running `git maintenance start` immediately segfaults starting with b6c3f8e12c (builtin/maintenance: fix leak in `get_schedule_cmd()`, 2024-09-26). And indeed, this segfault is trivial to reproduce up to a point where one is scratching their head why we didn't catch this regression in our test suite.
+test_expect_success 'start without GIT_TEST_MAINT_SCHEDULER' ' + test_when_finished "rm -rf crontab.log script repo" && + mkdir script && + write_script script/crontab <<-EOF && + echo "\$*" >>"$(pwd)"/crontab.log + EOF + git init repo && + ( + cd repo && + sane_unset GIT_TEST_MAINT_SCHEDULER && + PATH="$(pwd)/../script:$PATH" git maintenance start --scheduler=crontab + ) && + test_grep -- -l crontab.log && + test_grep -- git_cron_edit_tmp crontab.log +' +
I see why we didn't catch this immediately. This is a good way to work around this issue of "mocking" the scheduler. Thanks for the fast response. -Stolee