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

Re: Segmentation fault in git apply

From
Michael Blume <blume.mike@gmail.com>
Date
Jan 14, 2015, 18:48 UTC
Message-ID
<CAO2U3Qhd_DPP09BUyMr6NKUtOe4EQQ7G83BRg7MbtQXFPjKv8w@mail.gmail.com>
In-Reply-To
<CAO2U3Qj-Hg2tb72NgO6wb-aqAxFG7aga2ZDeZNDCPJzGtmHTAA@mail.gmail.com>
On Wed, Jan 14, 2015 at 10:44 AM, Michael Blume <blume.mike@gmail.com> wrote:
Show 132 quoted lines
> On Wed, Jan 14, 2015 at 10:40 AM, Michael Blume <blume.mike@gmail.com> wrote:
>> On Wed, Jan 14, 2015 at 10:20 AM, Michael Blume <blume.mike@gmail.com> wrote:
>>> This is a mac with a fresh build of git from pu branch, commit 53b80d0.
>>>
>>> With my gitconfig looking like
>>>
>>> [user]
>>>     email = blume.mike@gmail.com
>>>     name = Michael Blume
>>> [apply]
>>>     whitespace = fix
>>> [core]
>>>     whitespace = fix,trailing-space,space-before-tab, tab-in-indent, tabwidth=4
>>>
>>> If I run
>>> git clone git@github.com:MichaelBlume/clojure.git
>>> cd clojure
>>> git checkout origin/rebase-start
>>> git rebase origin/rebase-base
>>>
>>> I get
>>>
>>> src/jvm/clojure/lang/Compiler.java                          |  26
>>> +++++++++++++++++---------
>>>  test/clojure/test_clojure/compilation.clj                   |  33
>>> ++++++++++++++++++++++++++++++++-
>>>  test/clojure/test_clojure/compilation/examples_clj_1561.clj | 121
>>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>>  3 files changed, 170 insertions(+), 10 deletions(-)
>>>  create mode 100644 test/clojure/test_clojure/compilation/examples_clj_1561.clj
>>> First, rewinding head to replay your work on top of it...
>>> Applying: CLJ-1603 - add reducible cycle, iterate, repeat
>>> Applying: CLJ-1515 Reify range
>>> Applying: CLJ-1499 Direct iterators for PersistentHashMap,
>>> APersistentSet, PersistentQueue, and PersistentStructMap, and records.
>>> Added new IMapIterable interface for key and val iterators.
>>> Applying: CLJ-1602 Make keys and vals return Iterable result
>>> Applying: fix AOT bug preventing overriding of clojure.core functions
>>> Applying: catch multiple rest forms
>>> Applying: zipmap using iterators and transient maps
>>> Applying: Define merge/merge-with after reduce has loaded
>>> Applying: very simple test of the merge function
>>> Applying: Support get on arbitrary java.util.List instances
>>> Applying: CLJ-1451 add take-until
>>> Applying: CLJ-1606 - complete eduction's xform without completing outer rfn
>>> Applying: add unrolled vector implementation
>>> Applying: add transient? predicate
>>> Applying: fix emitted line numbers
>>> Using index info to reconstruct a base tree...
>>> M src/jvm/clojure/lang/Compiler.java
>>> Falling back to patching base and 3-way merge...
>>> Auto-merging src/jvm/clojure/lang/Compiler.java
>>> Applying: just use a not
>>> Applying: trailing whitespace
>>> Applying: don't mix tabs/spaces in clojure.xml/emit-element
>>> Applying: avoid mixing tabs with spaces in clojure core code
>>> Applying: don't optimize for defrecord lookup if keyword is namespaced
>>> Applying: CLJ-1572 - Extend CollReduce to IReduceInit for supported arity
>>> Applying: unrolled impls for maps
>>> Applying: CLJ-703: Remove flush and sync calls when writing class files.
>>> Applying: CLJ-1078: Add queue and queue? to clojure.core
>>> Applying: make RT.boundedLength lazier
>>> Applying: first try for adding compare
>>> Applying: Fix for #CLJ-1565
>>> Applying: CLJ-1074: Read +/- Infinity and NaN
>>> Applying: Fix CLJ-1074 for EdnReader too, see
>>> eaeda2e7bf2697e565decdf14a8a99fbf8588c57
>>> Applying: add get-and-set! to expose AtomicReference.getAndSet() for atoms
>>> Applying: CLJ-1472 Locking macro without explicit monitor-enter, monitor-exit
>>> Applying: CLJ-1449: Add starts-with? ends-with? contains? to clojure.string
>>> Applying: if test expr of an if statement is a literal, don't emit the
>>> runtime test
>>> Applying: evaluate def symbol metadata only once
>>> Applying: CLJ-1295: Speed up dissoc on array-maps
>>> Applying: some throwing
>>> Applying: don't pass offset to ArrayChunk
>>> Applying: make EMPTY accessible
>>> Applying: add handy create methods
>>> Applying: regenerate
>>> Applying: regenerate
>>> /Users/michael.blume/libexec/git-core/git-am: line 854: 92059
>>> Segmentation fault: 11  git apply --index "$dotest/patch" > /dev/null
>>> 2>&1
>>> /Users/michael.blume/workspace/clojure/.git/rebase-apply/patch:13: tab
>>> in indent.
>>>    IPersistentVector v = (IPersistentVector) asTransient().conj(val)
>>> /Users/michael.blume/workspace/clojure/.git/rebase-apply/patch:14: tab
>>> in indent.
>>>    .persistent();
>>> /Users/michael.blume/workspace/clojure/.git/rebase-apply/patch:15: tab
>>> in indent.
>>>    return (IPersistentVector) ((IObj) v).withMeta(meta);
>>> /Users/michael.blume/workspace/clojure/.git/rebase-apply/patch:25: tab
>>> in indent.
>>> ITransientCollection coll = PersistentVector.EMPTY
>>> /Users/michael.blume/workspace/clojure/.git/rebase-apply/patch:27: tab
>>> in indent.
>>> return (ITransientVector) coll.conj(e0).conj(e1).conj(e2)
>>> warning: squelched 1 whitespace error
>>> warning: 6 lines add whitespace errors.
>>> Using index info to reconstruct a base tree...
>>> M src/jvm/clojure/lang/PersistentUnrolledVector.java
>>> <stdin>:13: tab in indent.
>>>    IPersistentVector v = (IPersistentVector) asTransient().conj(val)
>>> <stdin>:14: tab in indent.
>>>    .persistent();
>>> <stdin>:15: tab in indent.
>>>    return (IPersistentVector) ((IObj) v).withMeta(meta);
>>> <stdin>:25: tab in indent.
>>> ITransientCollection coll = PersistentVector.EMPTY
>>> <stdin>:27: tab in indent.
>>> return (ITransientVector) coll.conj(e0).conj(e1).conj(e2)
>>> warning: squelched 1 whitespace error
>>> warning: 6 lines applied after fixing whitespace errors.
>>> Falling back to patching base and 3-way merge...
>>> fatal: Unable to create
>>> '/Users/michael.blume/workspace/clojure/.git/index.lock': File exists.
>>>
>>> If no other git process is currently running, this probably means a
>>> git process crashed in this repository earlier. Make sure no other git
>>> process is running and remove the file manually to continue.
>>> Failed to merge in the changes.
>>> Patch failed at 0041 regenerate
>>> The copy of the patch that failed is found in:
>>>    /Users/michael.blume/workspace/clojure/.git/rebase-apply/patch
>>>
>>> When you have resolved this problem, run "git rebase --continue".
>>> If you prefer to skip this patch, run "git rebase --skip" instead.
>>> To check out the original branch and stop rebasing, run "git rebase --abort".
>>
>> Same problem, exists on master, checking 2.2.2
> Exists in 2.2.2, checking 2.0.0
Ok, problem exists in 2.0.0 but not in 1.8.0, bisecting...
Previous: Michael BlumeNext: Michael Blume
Message 4 of 26 in “Segmentation fault in git apply”
  1. Michael BlumeJan 14, 2015
  2. Michael BlumeJan 14, 2015
  3. Michael BlumeJan 14, 2015
  4. Michael BlumeJan 14, 2015
  5. Michael BlumeJan 14, 2015
  6. Michael BlumeJan 14, 2015
  7. Kyle J. McKayJan 15, 2015
  8. Kyle J. McKayJan 15, 2015
  9. Junio C HamanoJan 16, 2015
  10. apply: count the size of postimage correctlyJunio C Hamano, Jan 16, 2015
  11. test: add git apply whitespace expansion testsKyle J. McKay, Jan 18, 2015
  12. Junio C HamanoJan 18, 2015
  13. Kyle J. McKayJan 19, 2015
  14. Junio C HamanoJan 21, 2015
  15. Kyle J. McKayJan 22, 2015
  16. Junio C HamanoJan 22, 2015
  17. Kyle J. McKayJan 23, 2015
  18. 0/4 apply --whitespace=fix buffer corruption fixJunio C Hamano, Jan 22, 2015
  19. 1/4 apply.c: typofixJunio C Hamano, Jan 22, 2015
  20. Stefan BellerJan 22, 2015
  21. Junio C HamanoJan 22, 2015
  22. Stefan BellerJan 22, 2015
  23. 2/4 apply: make update_pre_post_images() sanity check the given postlenJunio C Hamano, Jan 22, 2015
  24. 3/4 apply: count the size of postimage correctlyJunio C Hamano, Jan 22, 2015
  25. 4/4 apply: detect and mark whitespace errors in context lines when fixingJunio C Hamano, Jan 22, 2015
  26. Junio C HamanoJan 14, 2015

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.