git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 1/1] maintenance: fix a SEGFAULT when no repository

From
Derrick Stolee <stolee@gmail.com>
Date
Nov 26, 2020, 11:21 UTC
Message-ID
<54fa678c-7150-8c48-50e5-b33923a69249@gmail.com>
In-Reply-To
<20201126082255.yyxx2kpskj3td5og@contrib-buster.localdomain>
On 11/26/2020 3:22 AM, Rafael Silva wrote:
Show 27 quoted lines
> On Tue, Nov 24, 2020 at 12:22:40PM -0500, Derrick Stolee wrote:
>> If the above code change fixes your test (below), then that would
>> probably be a safer change.
> 
> I agree, switching the maintenance command option to use RUN_SETUP
> seems like a nicer approach here. Given the all current operations
> requires the command to be executed inside the a git repository this
> will make the command consistent across the subcommand. 
> 
> Also, it seems this provides an opportunity to cleanup the
> register and unregister subcommands that currently implement the
> check to ensure the commands are running from a git repository.
> 
>>
>> The reason to use RUN_SETUP_GENTLY was probably due to some thought
>> of modifying the background maintenance schedule without being in a
>> Git repository. However, we currently run the [un]register logic
>> inside of the stop|start subcommands, so a GIT_DIR is required there,
>> too.
>>
> 
> Indeed. Aside from this reason, another concern that I have is that
> switching the validation to all subcommands (on this case by switching
> the maintenance command option) will change a bit the behaviour of register
> subcommand. Currently, the behaviour of "register" subcommand is to return
> with 0 without any messages when running outside of repository and switching
> will make the command fail instead.

Excellent point. It would be good to cover this case with a test, to demonstrate that as _intended_ behavior. It makes sense to fail instead of "succeed" when doing nothing.

> Nevertheless, I am inclined to go with your suggestion given that it seems
> better approach to support the automatically and make the behaviour
> consistent for all subcommands given that changing the behaviour of
> "git maintenance register" command will (hopefully) be okay.

Yes. I would say that changing that behavior aligns it with what it should be doing. The best news is that the 'register' subcommand does not exist in a released version of Git, so no one depends on the current behavior.

Thanks, -Stolee

Previous: Rafael SilvaNext: Eric Sunshine
Message 7 of 22 in “maintenance: Fix a SEGFAULT when no repository when running git maintenance run/start”
  1. 0/1 maintenance: Fix a SEGFAULT when no repository when running git maintenance run/startRafael Silva, Nov 24, 2020
  2. 1/1 maintenance: fix a SEGFAULT when no repositoryRafael Silva, Nov 24, 2020
  3. Derrick StoleeNov 24, 2020
  4. Junio C HamanoNov 24, 2020
  5. Derrick StoleeNov 24, 2020
  6. Rafael SilvaNov 26, 2020
  7. Derrick StoleeNov 26, 2020
  8. Eric SunshineNov 24, 2020
  9. SZEDER GáborNov 24, 2020
  10. Eric SunshineNov 24, 2020
  11. Rafael SilvaNov 26, 2020
  12. Martin ÅgrenNov 24, 2020
  13. Rafael SilvaNov 26, 2020
  14. 0/1 maintenance: Fix SEGFAULT when running outside of a repositoryRafael Silva, Nov 26, 2020
  15. 1/1 maintenance: fix SEGFAULT when no repositoryRafael Silva, Nov 26, 2020
  16. Derrick StoleeNov 27, 2020
  17. Josh SteadmonDec 8, 2020
  18. Junio C HamanoDec 8, 2020
  19. Junio C HamanoDec 8, 2020
  20. Christian CouderDec 24, 2020
  21. Junio C HamanoDec 24, 2020
  22. Rafael SilvaDec 9, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.