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

Re: [PATCH v3] describe: refresh the index when 'broken' flag is used

From
Junio C Hamano <gitster@pobox.com>
Date
Jun 25, 2024, 16:05 UTC
Message-ID
<xmqqy16t6m8u.fsf@gitster.g>
In-Reply-To
<xmqq34p1813n.fsf@gitster.g>
Junio C Hamano <gitster@pobox.com> writes:
Show 15 quoted lines
> (#leftoverbit)
>
> Outside the scope of this patch, I'd prefer to see somebody makes
> sure that it is truly equivalent to prepare a separate and new
> struct child_process for each run_command() call and to reuse the
> same struct child_process after calling child_process_clear() each
> time.  It is unclear if they are equivalent in general, even though
> in this particular case I think we should be OK.
>
> There _might_ be other things in the child_process structure that
> need to be reset to the initial state before it can be reused, but
> are not cleared by child_process_clear().  .git_cmd and other flags
> as well as in/out/err file descriptors do not seem to be cleared,
> and other callers of run_command() may even be depending on the
> current behaviour that they are kept.

Ahh, the reuse of the same struct came directly from Karthik's review on the second iteration. I guess Karthik volunteered himself into this #leftoverbit task? I am not convinced that

 (1) the selective clearing done by current child_process_clear() is
     the best thing we can do to make child_process reusable, and
 (2) among the current callers, there is nobody that depends on the
     state left by the previous use of child_process in another
     run_command() call that is left uncleared by child_process_clear().

If (1) is false, then reusing child_process structure is not quite safe, and if (2) is false, updating child_process_clear() to really clear everything will first need to adjust some callers.

Thanks.
Previous: Junio C HamanoNext: Karthik Nayak
Message 3 of 32 in “describe: refresh the index when 'broken' flag is used”
  1. describe: refresh the index when 'broken' flag is usedAbhijeet Sonar, Jun 25, 2024
  2. Junio C HamanoJun 25, 2024
  3. Junio C HamanoJun 25, 2024
  4. Karthik NayakJun 26, 2024
  5. Abhijeet SonarJun 26, 2024
  6. describe: refresh the index when 'broken' flag is usedAbhijeet Sonar, Jun 26, 2024
  7. Abhijeet SonarJun 26, 2024
  8. describe: refresh the index when 'broken' flag is usedAbhijeet Sonar, Jun 26, 2024
  9. Karthik NayakJun 26, 2024
  10. Abhijeet SonarJun 26, 2024
  11. Re* [PATCH v5] describe: refresh the index when 'broken' flag is usedJunio C Hamano, Jun 26, 2024
  12. Junio C HamanoJun 26, 2024
  13. Abhijeet SonarJun 26, 2024
  14. Junio C HamanoJun 26, 2024
  15. Junio C HamanoJun 26, 2024
  16. Abhijeet SonarJun 26, 2024
  17. Junio C HamanoJun 26, 2024
  18. Jeff KingJun 26, 2024
  19. Jeff KingJun 27, 2024
  20. Karthik NayakJun 26, 2024
  21. Junio C HamanoJun 26, 2024
  22. Junio C HamanoJun 26, 2024
  23. describe: refresh the index when 'broken' flag is usedAbhijeet Sonar, Jun 26, 2024
  24. Abhijeet SonarJun 26, 2024
  25. Abhijeet SonarJun 27, 2024
  26. Junio C HamanoJun 27, 2024
  27. Abhijeet SonarJun 27, 2024
  28. Karthik NayakJun 30, 2024
  29. Junio C HamanoJul 1, 2024
  30. Karthik NayakJul 2, 2024
  31. Junio C HamanoJul 3, 2024
  32. Karthik NayakJul 3, 2024

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.