<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/libgit2.git, branch cmn/refdb-para</title>
<subtitle>github.com: libgit2/libgit2.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/'/>
<entry>
<title>refdb: use a constant for the number of per-thread creations/deletes</title>
<updated>2016-11-14T10:35:38+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2016-11-14T10:29:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=aef54a466ac5403690e7ff6c72fc1252dabf5899'/>
<id>aef54a466ac5403690e7ff6c72fc1252dabf5899</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>refdb: bubble up locked files on the read side</title>
<updated>2016-11-14T10:35:38+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2016-03-10T21:01:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=ce5553d48b8ba3510dd5032dfbfd161fb801cd77'/>
<id>ce5553d48b8ba3510dd5032dfbfd161fb801cd77</id>
<content type='text'>
On Windows we can find locked files even when reading a reference or the
packed-refs file. Bubble up the error in this case as well to allow
callers on Windows to retry more intelligently.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On Windows we can find locked files even when reading a reference or the
packed-refs file. Bubble up the error in this case as well to allow
callers on Windows to retry more intelligently.
</pre>
</div>
</content>
</entry>
<entry>
<title>refdb: expect threaded test deletes to race</title>
<updated>2016-11-14T10:35:38+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2016-03-10T11:27:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=7c32d874503ee43206cb5d2a8e65dbe23f18eaca'/>
<id>7c32d874503ee43206cb5d2a8e65dbe23f18eaca</id>
<content type='text'>
At times we may try to delete a reference which a different thread has
already taken care of.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
At times we may try to delete a reference which a different thread has
already taken care of.
</pre>
</div>
</content>
</entry>
<entry>
<title>refdb: remove a check-delete race when removing a loose ref</title>
<updated>2016-11-14T10:35:38+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2016-03-10T11:22:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=33248b9edb74a6bac4223873402efe68a76a30a0'/>
<id>33248b9edb74a6bac4223873402efe68a76a30a0</id>
<content type='text'>
It does not help us to check whether the file exists before trying to
unlink it since it might be gone by the time unlink is called.

Instead try to remove it and handle the resulting error if it did not
exist.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It does not help us to check whether the file exists before trying to
unlink it since it might be gone by the time unlink is called.

Instead try to remove it and handle the resulting error if it did not
exist.
</pre>
</div>
</content>
</entry>
<entry>
<title>sortedcache: check file size after opening the file</title>
<updated>2016-11-14T10:35:38+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2015-12-31T14:51:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=40ffa07f4ff3616acb814ff3ef93df7206f5b5c5'/>
<id>40ffa07f4ff3616acb814ff3ef93df7206f5b5c5</id>
<content type='text'>
Checking the size before we open the file descriptor can lead to the
file being replaced from under us when renames aren't quite atomic, so
we can end up reading too little of the file, leading to us thinking the
file is corrupted.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Checking the size before we open the file descriptor can lead to the
file being replaced from under us when renames aren't quite atomic, so
we can end up reading too little of the file, leading to us thinking the
file is corrupted.
</pre>
</div>
</content>
</entry>
<entry>
<title>refdb: add retry logic to the threaded tests</title>
<updated>2016-11-14T10:35:38+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2015-12-24T17:51:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=26416f6d20044d693ddfb57d719ee5183c065fc5'/>
<id>26416f6d20044d693ddfb57d719ee5183c065fc5</id>
<content type='text'>
The logic simply consists of retrying for as long as the library says
the data is locked, but it eventually gets through.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The logic simply consists of retrying for as long as the library says
the data is locked, but it eventually gets through.
</pre>
</div>
</content>
</entry>
<entry>
<title>refdb: bubble up the error code when compressing the db</title>
<updated>2016-11-14T10:35:37+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2015-12-24T17:49:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=2e09106e7a8711e3a4a70ef304643d28f2763c11'/>
<id>2e09106e7a8711e3a4a70ef304643d28f2763c11</id>
<content type='text'>
This allows the caller to know the errors was e.g. due to the
packed-refs file being already locked and they can try again later.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This allows the caller to know the errors was e.g. due to the
packed-refs file being already locked and they can try again later.
</pre>
</div>
</content>
</entry>
<entry>
<title>refdb: refactor the lockfile cleanup</title>
<updated>2016-11-14T10:35:35+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2015-12-24T17:38:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=dd1ca6f15a85ba1e812be044bc12cdab9b3134dd'/>
<id>dd1ca6f15a85ba1e812be044bc12cdab9b3134dd</id>
<content type='text'>
We can reduce the duplication by cleaning up at the beginning of the
loop, since it's something we want to do every time we continue.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We can reduce the duplication by cleaning up at the beginning of the
loop, since it's something we want to do every time we continue.
</pre>
</div>
</content>
</entry>
<entry>
<title>refdb: don't report failure for expected errors</title>
<updated>2016-11-14T10:34:14+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2015-12-24T17:30:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=7ea4710ae3529f6c7ddccf70f76bdd8a757b000e'/>
<id>7ea4710ae3529f6c7ddccf70f76bdd8a757b000e</id>
<content type='text'>
There might be a few threads or processes working with references
concurrently, so fortify the code to ignore errors which come from
concurrent access which do not stop us from continuing the work.

This includes ignoring an unlinking error. Either someone else removed
it or we leave the file around. In the former case the job is done, and
in the latter case, the ref is still in a valid state.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There might be a few threads or processes working with references
concurrently, so fortify the code to ignore errors which come from
concurrent access which do not stop us from continuing the work.

This includes ignoring an unlinking error. Either someone else removed
it or we leave the file around. In the former case the job is done, and
in the latter case, the ref is still in a valid state.
</pre>
</div>
</content>
</entry>
<entry>
<title>fileops: save errno and report file existence</title>
<updated>2016-11-14T10:34:14+00:00</updated>
<author>
<name>Carlos Martín Nieto</name>
<email>cmn@dwim.me</email>
</author>
<published>2015-12-24T17:21:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=f94825c10c1c8f003e80859530cce8ceea1bd314'/>
<id>f94825c10c1c8f003e80859530cce8ceea1bd314</id>
<content type='text'>
We need to save the errno, lest we clobber it in the giterr_set()
call. Also add code for reporting that a path component is missing,
which is a distinct failure mode.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We need to save the errno, lest we clobber it in the giterr_set()
call. Also add code for reporting that a path component is missing,
which is a distinct failure mode.
</pre>
</div>
</content>
</entry>
</feed>
