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

Re: Error in `git': free(): invalid pointer (was Re: [PATCH] sequencer: improve config handling)

From
Kaartic Sivaraam <kaartic.sivaraam@gmail.com>
Date
Dec 21, 2017, 15:02 UTC
Message-ID
<1513868549.3546.2.camel@gmail.com>
In-Reply-To
<18737953.1042351513802399608.JavaMail.defaultUser@defaultHost>
On Thursday 21 December 2017 02:09 AM, phillip.wood@talktalk.net wrote:
Show 6 quoted lines
> 
> 
>     Hi Kaartic
> 
>     I'm replying off list as I've only got access to webmail at the
>     moment.
No issues brought the CCs including the list to ensure we don't miss things.
>     Are you able to do a backtrace with debugging symbols
>     please, I'm finding it hard to glean anything from the backtrace
>     here. 

That's confusing, I already had the following in my `config.mak` while compiling,

DEVELOPER=1 DEVELOPERS=1 CFLAGS += -g -O2 CFLAGS += -DFLEX_ARRAY=2048

NO_GETTEXT=1 prefix=/home/$(USER)/.local #CFLAGS += -Wno-unused-value

As you can see the `-g` flag is there in CFLAGS.

If this output doesn't give much sense could you be specific about what output you want i.e., by mentioning the command, showing a sample etc., I'm not sure how to go about debugging with "git rebase" as it's a script.

> Also does it definitely bisect to this patch or the merge of
>     this branch?
> 
"git bisect" speaking,
28d6daed4f119940ace31e523b3b272d3d153d04 is the first bad commit
commit 28d6daed4f119940ace31e523b3b272d3d153d04
Author: Phillip Wood <phillip.wood@dunelm.org.uk>
Date:   Wed Dec 13 11:46:21 2017 +0000
    sequencer: improve config handling
    
    The previous config handling relied on global variables, called
    git_default_config() even when the key had already been handled by
    git_sequencer_config() and did not initialize the diff configuration
    variables. Improve this by: i) loading the default values for message
    cleanup and gpg signing of commits into struct replay_opts;
    ii) restructuring the code to return immediately once a key is
    handled; and iii) calling git_diff_basic_config(). Note that
    unfortunately it is not possible to return early if the key is handled
    by git_gpg_config() as it does not indicate to the caller if the key
    has been handled or not.
    
    The sequencer should probably have been calling
    git_diff_basic_config() before as it creates a patch when there are
    conflicts. The shell version uses 'diff-tree' to create the patch so
    calling git_diff_basic_config() should match that. Although 'git
    commit' calls git_diff_ui_config() I don't think the output of
    print_commit_summary() is affected by anything that is loaded by that
    as print_commit_summary() always turns on rename detection so would
    ignore the value in the user's configuration anyway. The other values
    loaded by git_diff_ui_config() are about the formatting of patches so
    are not relevant to print_commit_summary().
    
    Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>

:040000 040000 bbd487cc285ae12cefb97a9661de4ff27d182727 9460ac528bf68f331088412f62e5d6a39305854b M builtin :100644 100644 99452a0e89777999418c116386f924be396ed04a 7051b20b76292e3b539875f0dc38108a734d2164 M sequencer.c :100644 100644 77cb174b2aaf3972ebb9e6ec379252be96dedd3d 3a5072c2ab9088c237b83d92deae3c801289e543 M sequencer.h

FWIW, I started the bisection with `v2.11.0`  as good (because "git rebase -i HEAD~10 worked there) and the tip of `next` (cfbfd45ee (Sync with master, 2017-12-19)) as bad.

Here's the bisect log for a shorter range of bisection (which was possible after I discovered the bad commit in the previous bisect)

git bisect start # bad: [cfbfd45ee6e49007fdeb00008904064ba98f65e0] Sync with master git bisect bad cfbfd45ee6e49007fdeb00008904064ba98f65e0 # good: [a4212f7ebd7158a1e237d776fb4bbd7a295d0bda] Merge branch 'pw/sequencer-in-process-commit' into next git bisect good a4212f7ebd7158a1e237d776fb4bbd7a295d0bda # good: [bdae4af87053490adad2dc9fb184d6d050d46a4c] Merge branch 'sg/setup-doc-update' git bisect good bdae4af87053490adad2dc9fb184d6d050d46a4c # bad: [6d12e08217360cfc042ec484129771f73ad7b97f] Merge branch 'rs/strbuf-read-once-reset-length' into next git bisect bad 6d12e08217360cfc042ec484129771f73ad7b97f # bad: [1b791d2503742b060f91b8159b85c06335634bd8] Merge branch 'ab/simplify-perl-makefile' into next git bisect bad 1b791d2503742b060f91b8159b85c06335634bd8 # bad: [abfed699db9f0f0e6f03f5ee3e9d137944ba4216] Merge branch 'sb/clone-recursive-submodule-doc' into next git bisect bad abfed699db9f0f0e6f03f5ee3e9d137944ba4216 # bad: [ec4d2b9c843b8b338ffa8906eea70095b3098c1e] Merge branch 'pw/sequencer-in-process-commit' into next git bisect bad ec4d2b9c843b8b338ffa8906eea70095b3098c1e # good: [5279b80103bde3ec5d6108fa8f43de2017668039] Merge branch 'tb/check-crlf-for-safe-crlf' into next git bisect good 5279b80103bde3ec5d6108fa8f43de2017668039 # bad: [28d6daed4f119940ace31e523b3b272d3d153d04] sequencer: improve config handling git bisect bad 28d6daed4f119940ace31e523b3b272d3d153d04 # first bad commit: [28d6daed4f119940ace31e523b3b272d3d153d04] sequencer: improve config handling

-- 
Kaartic
Previous: phillip.wood@talktalk.net
Message 120 of 120 in “sequencer: dont't fork git commit”
  1. 0/8 sequencer: dont't fork git commitPhillip Wood, Sep 25, 2017
  2. 1/8 commit: move empty message checks to libgitPhillip Wood, Sep 25, 2017
  3. 4/8 commit: move post-rewrite code to libgitPhillip Wood, Sep 25, 2017
  4. 2/8 commit: move code to update HEAD to libgitPhillip Wood, Sep 25, 2017
  5. Junio C HamanoOct 7, 2017
  6. Phillip WoodOct 24, 2017
  7. Junio C HamanoOct 24, 2017
  8. 3/8 sequencer: refactor update_head()Phillip Wood, Sep 25, 2017
  9. 5/8 commit: move print_commit_summary() to libgitPhillip Wood, Sep 25, 2017
  10. 6/8 sequencer: simplify adding Signed-off-by: trailerPhillip Wood, Sep 25, 2017
  11. 7/8 sequencer: load commit related configPhillip Wood, Sep 25, 2017
  12. 8/8 sequencer: try to commit without forking 'git commit'Phillip Wood, Sep 25, 2017
  13. 0/8 sequencer: dont't fork git commitPhillip Wood, Nov 6, 2017
  14. 3/8 commit: move post-rewrite code to libgitPhillip Wood, Nov 6, 2017
  15. Junio C HamanoNov 7, 2017
  16. Phillip WoodNov 7, 2017
  17. 5/8 sequencer: don't die in print_commit_summary()Phillip Wood, Nov 6, 2017
  18. Junio C HamanoNov 7, 2017
  19. Johannes SchindelinNov 7, 2017
  20. Junio C HamanoNov 7, 2017
  21. Phillip WoodNov 10, 2017
  22. Junio C HamanoNov 10, 2017
  23. Phillip WoodNov 13, 2017
  24. 6/8 sequencer: simplify adding Signed-off-by: trailerPhillip Wood, Nov 6, 2017
  25. Johannes SchindelinNov 7, 2017
  26. Junio C HamanoNov 7, 2017
  27. Phillip WoodNov 7, 2017
  28. 7/8 sequencer: load commit related configPhillip Wood, Nov 6, 2017
  29. Johannes SchindelinNov 7, 2017
  30. Phillip WoodNov 7, 2017
  31. 8/8 sequencer: try to commit without forking 'git commit'Phillip Wood, Nov 6, 2017
  32. Johannes SchindelinNov 7, 2017
  33. Phillip WoodNov 7, 2017
  34. Johannes SchindelinNov 7, 2017
  35. 4/8 commit: move print_commit_summary() to libgitPhillip Wood, Nov 6, 2017
  36. Junio C HamanoNov 7, 2017
  37. Phillip WoodNov 7, 2017
  38. Junio C HamanoNov 8, 2017
  39. 2/8 Add a function to update HEAD after creating a commitPhillip Wood, Nov 6, 2017
  40. Junio C HamanoNov 7, 2017
  41. Johannes SchindelinNov 7, 2017
  42. Phillip WoodNov 7, 2017
  43. 1/8 commit: move empty message checks to libgitPhillip Wood, Nov 6, 2017
  44. Johannes SchindelinNov 7, 2017
  45. Phillip WoodNov 7, 2017
  46. 0/9 sequencer: dont't fork git commitPhillip Wood, Nov 10, 2017
  47. 1/9 t3404: check intermediate squash messagesPhillip Wood, Nov 10, 2017
  48. 2/9 commit: move empty message checks to libgitPhillip Wood, Nov 10, 2017
  49. Ramsay JonesNov 10, 2017
  50. Phillip WoodNov 13, 2017
  51. 6/9 sequencer: don't die in print_commit_summary()Phillip Wood, Nov 10, 2017
  52. 3/9 Add a function to update HEAD after creating a commitPhillip Wood, Nov 10, 2017
  53. Junio C HamanoNov 10, 2017
  54. Phillip WoodNov 13, 2017
  55. 4/9 commit: move post-rewrite code to libgitPhillip Wood, Nov 10, 2017
  56. 9/9 sequencer: try to commit without forking 'git commit'Phillip Wood, Nov 10, 2017
  57. 5/9 commit: move print_commit_summary() to libgitPhillip Wood, Nov 10, 2017
  58. 7/9 sequencer: simplify adding Signed-off-by: trailerPhillip Wood, Nov 10, 2017
  59. 8/9 sequencer: load commit related configPhillip Wood, Nov 10, 2017
  60. Junio C HamanoNov 10, 2017
  61. Phillip WoodNov 13, 2017
  62. Junio C HamanoNov 14, 2017
  63. 0/8 sequencer: don't fork git commitPhillip Wood, Nov 17, 2017
  64. 1/8 t3404: check intermediate squash messagesPhillip Wood, Nov 17, 2017
  65. 2/8 commit: move empty message checks to libgitPhillip Wood, Nov 17, 2017
  66. 3/8 Add a function to update HEAD after creating a commitPhillip Wood, Nov 17, 2017
  67. 4/8 commit: move post-rewrite code to libgitPhillip Wood, Nov 17, 2017
  68. 6/8 sequencer: simplify adding Signed-off-by: trailerPhillip Wood, Nov 17, 2017
  69. 7/8 sequencer: load commit related configPhillip Wood, Nov 17, 2017
  70. 5/8 commit: move print_commit_summary() to libgitPhillip Wood, Nov 17, 2017
  71. 8/8 sequencer: try to commit without forking 'git commit'Phillip Wood, Nov 17, 2017
  72. Junio C HamanoNov 18, 2017
  73. Junio C HamanoNov 18, 2017
  74. Phillip WoodNov 18, 2017
  75. Phillip WoodNov 18, 2017
  76. 0/9 sequencer: don't fork git commitPhillip Wood, Nov 24, 2017
  77. 1/9 t3404: check intermediate squash messagesPhillip Wood, Nov 24, 2017
  78. 6/9 sequencer: simplify adding Signed-off-by: trailerPhillip Wood, Nov 24, 2017
  79. 2/9 commit: move empty message checks to libgitPhillip Wood, Nov 24, 2017
  80. 4/9 commit: move post-rewrite code to libgitPhillip Wood, Nov 24, 2017
  81. 3/9 Add a function to update HEAD after creating a commitPhillip Wood, Nov 24, 2017
  82. 5/9 commit: move print_commit_summary() to libgitPhillip Wood, Nov 24, 2017
  83. 7/9 sequencer: load commit related configPhillip Wood, Nov 24, 2017
  84. Junio C HamanoNov 24, 2017
  85. Phillip WoodNov 24, 2017
  86. Junio C HamanoDec 4, 2017
  87. Phillip WoodDec 5, 2017
  88. Phillip WoodDec 5, 2017
  89. Phillip WoodDec 9, 2017
  90. 8/9 sequencer: try to commit without forking 'git commit'Phillip Wood, Nov 24, 2017
  91. 9/9 t3512/t3513: remove KNOWN_FAILURE_CHERRY_PICK_SEES_EMPTY_COMMIT=1Phillip Wood, Nov 24, 2017
  92. Stefan BellerDec 4, 2017
  93. Phillip WoodDec 5, 2017
  94. 0/9 sequencer: don't fork git commitPhillip Wood, Dec 11, 2017
  95. 1/9 t3404: check intermediate squash messagesPhillip Wood, Dec 11, 2017
  96. 4/9 commit: move post-rewrite code to libgitPhillip Wood, Dec 11, 2017
  97. 3/9 Add a function to update HEAD after creating a commitPhillip Wood, Dec 11, 2017
  98. 5/9 commit: move print_commit_summary() to libgitPhillip Wood, Dec 11, 2017
  99. 2/9 commit: move empty message checks to libgitPhillip Wood, Dec 11, 2017
  100. 6/9 sequencer: simplify adding Signed-off-by: trailerPhillip Wood, Dec 11, 2017
  101. 9/9 t3512/t3513: remove KNOWN_FAILURE_CHERRY_PICK_SEES_EMPTY_COMMIT=1Phillip Wood, Dec 11, 2017
  102. 8/9 sequencer: try to commit without forking 'git commit'Phillip Wood, Dec 11, 2017
  103. Jonathan NiederJan 10, 2018
  104. Johannes SchindelinJan 10, 2018
  105. Phillip WoodJan 11, 2018
  106. Johannes SchindelinJan 11, 2018
  107. 7/9 sequencer: load commit related configPhillip Wood, Dec 11, 2017
  108. Phillip WoodDec 11, 2017
  109. Junio C HamanoDec 11, 2017
  110. Phillip WoodDec 12, 2017
  111. sequencer: improve config handlingPhillip Wood, Dec 13, 2017
  112. Error in `git': free(): invalid pointer (was Re: [PATCH] sequencer: improve config handling)Kaartic Sivaraam, Dec 20, 2017
  113. Johannes SchindelinDec 21, 2017
  114. Kaartic SivaraamDec 21, 2017
  115. Johannes SchindelinDec 22, 2017
  116. Kaartic SivaraamDec 25, 2017
  117. phillip.wood@talktalk.netDec 21, 2017
  118. Kaartic SivaraamDec 21, 2017
  119. phillip.wood@talktalk.netDec 22, 2017
  120. Kaartic SivaraamDec 21, 2017

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.