Re: t5150-request-pull.sh fails on newest master in Debian

2014-07-09 Thread Øyvind A . Holm
On 9 July 2014 03:18, David Turner dtur...@twopensource.com wrote:
 On Wed, 2014-07-09 at 02:52 +0200, Øyvind A. Holm wrote:
  On 3 July 2014 23:55, Øyvind A. Holm su...@sunbase.org wrote:
   When compiling newest master (v2.0.1-472-g6f92e5f) on Debian 7.5
   (64-bit), t5150-request-pull.sh fails when compiling with
   [snip]
 
  FYI, t5150-request-pull.sh passes all tests now on newest master
  (v2.0.1-474-g72c7794) in Debian. There are two new commits on master
  since I wrote this, and the commit that makes things work again is
  4602f1a (diff-tree: call free_commit_list() instead of duplicating
  its code). Reverting this commit brings the failure back.
 
  The whole thing is still a mystery to me, though. I can't see why
  this should have anything to do with the use of ./configure
  --prefix.

 The problem only happens when a ref with an allowed wildcard winds up
 on a page boundary (with the wildcard before the page boundary).  This
 depends intricately on the details of memory allocation, so pretty
 much anything could make it come and go.

Aha, that makes sense. Sheer luck that the results were that consistent
during testing, then.

 Does the fix I posted work for you?  If not, let me know and I'll look
 into it more.

Sorry, didn't notice you posted that to the list. Today I learned that
Gmail doesn't put mails adressed to me and the list in the inbox. :(

The commit fixed it, yes. Thanks for the patch. It now works on both
Debian servers. Have run all tests on one of the servers, and will
repeat on other machines, too.

Thanks,
Øyvind
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: t5150-request-pull.sh fails on newest master in Debian

2014-07-09 Thread René Scharfe

Am 09.07.2014 03:18, schrieb David Turner:

On Wed, 2014-07-09 at 02:52 +0200, Øyvind A. Holm wrote:

On 3 July 2014 23:55, Øyvind A. Holm su...@sunbase.org wrote:

When compiling newest master (v2.0.1-472-g6f92e5f) on Debian 7.5
(64-bit), t5150-request-pull.sh fails when compiling with

$ make configure
$ ./configure --prefix=/usr/local/varprg/git.master.v2.0.1-472-g6f92e5f
$ make prefix=/usr/local/varprg/git.master.v2.0.1-472-g6f92e5f
$ cd t
$ ./t5150-request-pull.sh


FYI, t5150-request-pull.sh passes all tests now on newest master
(v2.0.1-474-g72c7794) in Debian. There are two new commits on master
since I wrote this, and the commit that makes things work again is
4602f1a (diff-tree: call free_commit_list() instead of duplicating
its code). Reverting this commit brings the failure back.

The whole thing is still a mystery to me, though. I can't see why this
should have anything to do with the use of ./configure --prefix.


The problem only happens when a ref with an allowed wildcard winds up on
a page boundary (with the wildcard before the page boundary).  This
depends intricately on the details of memory allocation, so pretty much
anything could make it come and go.

Does the fix I posted work for you?  If not, let me know and I'll look
into it more.


Sounds fragile overall.  How could a test program look like?  All I can 
think of is a brute force check of all combinations of three characters 
(is that enough?), PAGE_SIZE offsets, three flags, with and without 
.lock appended (and embedded?) against the old implementation, which 
must be quite expensive.


Some callers of check_refname_format() know the length of the string or 
can determine it cheaply because they copy the whole string anyway. 
Would it make sense to do away with the page boundary magic and require 
the callers of the fast version to pass that length?  The tailing bytes 
(up to 15) would have to be loaded carefully, though.  Not sure.


René
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: t5150-request-pull.sh fails on newest master in Debian

2014-07-08 Thread Øyvind A . Holm
On 3 July 2014 23:55, Øyvind A. Holm su...@sunbase.org wrote:
 When compiling newest master (v2.0.1-472-g6f92e5f) on Debian 7.5
 (64-bit), t5150-request-pull.sh fails when compiling with

 $ make configure
 $ ./configure --prefix=/usr/local/varprg/git.master.v2.0.1-472-g6f92e5f
 $ make prefix=/usr/local/varprg/git.master.v2.0.1-472-g6f92e5f
 $ cd t
 $ ./t5150-request-pull.sh

FYI, t5150-request-pull.sh passes all tests now on newest master
(v2.0.1-474-g72c7794) in Debian. There are two new commits on master
since I wrote this, and the commit that makes things work again is
4602f1a (diff-tree: call free_commit_list() instead of duplicating
its code). Reverting this commit brings the failure back.

The whole thing is still a mystery to me, though. I can't see why this
should have anything to do with the use of ./configure --prefix. I
tested several variants with and without ./configure --prefix, all
tests were run several times and were reproducible every time. Was
this --prefix thing just a red herring, or is it linked to this in
some way?

Also, the only file this commit touches is builtin/diff-tree.c, and
this file hasn't been modified since 2011. Does anyone know what's
going on here?

Cheers,
Øyvind
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: t5150-request-pull.sh fails on newest master in Debian

2014-07-08 Thread David Turner
On Wed, 2014-07-09 at 02:52 +0200, Øyvind A. Holm wrote:
 On 3 July 2014 23:55, Øyvind A. Holm su...@sunbase.org wrote:
  When compiling newest master (v2.0.1-472-g6f92e5f) on Debian 7.5
  (64-bit), t5150-request-pull.sh fails when compiling with
 
  $ make configure
  $ ./configure --prefix=/usr/local/varprg/git.master.v2.0.1-472-g6f92e5f
  $ make prefix=/usr/local/varprg/git.master.v2.0.1-472-g6f92e5f
  $ cd t
  $ ./t5150-request-pull.sh
 
 FYI, t5150-request-pull.sh passes all tests now on newest master
 (v2.0.1-474-g72c7794) in Debian. There are two new commits on master
 since I wrote this, and the commit that makes things work again is
 4602f1a (diff-tree: call free_commit_list() instead of duplicating
 its code). Reverting this commit brings the failure back.
 
 The whole thing is still a mystery to me, though. I can't see why this
 should have anything to do with the use of ./configure --prefix.

The problem only happens when a ref with an allowed wildcard winds up on
a page boundary (with the wildcard before the page boundary).  This
depends intricately on the details of memory allocation, so pretty much
anything could make it come and go.

Does the fix I posted work for you?  If not, let me know and I'll look
into it more.

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: t5150-request-pull.sh fails on newest master in Debian

2014-07-05 Thread Øyvind A . Holm
On 5 July 2014 03:58, David Turner dtur...@twopensource.com wrote:
 On Sat, 2014-07-05 at 02:09 +0200, Øyvind A. Holm wrote:
 snip
  The test works. Seems as there's something fishy about the use of
  --prefix in this specific commit (v2.0.1-472-g6f92e5f).

 Ok, now I can reproduce on my linode box (haven't tried it locally
 yet). I'll try to get a fix up once I figure out what's up.

Awesome. I've done some more ./configure --prefix testing, and this is
the result:

  # --prefix is set to non-existing directory
  ./configure --prefix=/usr/local/varprg/git.master.v2.0.1-472-g6f92e5f
# ./t5150-request-pull.sh fails.

  # --prefix is set to non-existing directory, use trailing slash
  ./configure --prefix=/usr/local/varprg/git.master.v2.0.1-472-g6f92e5f/
# ./t5150-request-pull.sh fails.

  # --prefix is set to existing directory
  ./configure --prefix=/usr/local/varprg/git.master.v2.0.1-442-g7fe6834
# ./t5150-request-pull.sh fails.

  # --prefix is set to existing directory
  ./configure --prefix=/usr/local
# ./t5150-request-pull.sh succeeds.

  # --prefix is set to existing directory
  ./configure --prefix=/usr/local/varprg
# ./t5150-request-pull.sh succeeds.

  # --prefix is set to non-existing directory
  ./configure 
--prefix=/usr/local/varprg/a-long-directory-name-which-does-not-exist
# ./t5150-request-pull.sh succeeds.

  ./configure 
--prefix=/usr/local/varprg/git.master.a-long-directory-name-which-does-not-exist
# ./t5150-request-pull.sh succeeds.

So it's something with names like git.master.v2.0.1-472-g6f92e5f that
./configure --prefix is picky about.

When testing this last night, I pushed the following branches to
https://github.com/sunny256/git where I added all compiled files in
various stages with git add -f .:

  t5150-fail.configure-without-prefix
Succeeds.
./configure

  t5150-fail.configure-with-prefix
Fails.
./configure --prefix=/usr/local/varprg/git.master.v2.0.1-472-g6f92e5f

  t5150-fail.configure-prefix-usr-local
Succeeds.
./configure --prefix=/usr/local

Maybe something will turn up by diffing those branches. I've got to
leave for now, but will have a look at this later tonight.

Cheers,
Øyvind
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: t5150-request-pull.sh fails on newest master in Debian

2014-07-04 Thread David Turner
On Thu, 2014-07-03 at 23:55 +0200, Øyvind A. Holm wrote:
 When compiling newest master (v2.0.1-472-g6f92e5f) on Debian 7.5
 (64-bit), t5150-request-pull.sh fails when compiling with
 
 $ make configure
 $ ./configure --prefix=/usr/local/varprg/git.master.v2.0.1-472-g6f92e5f
 $ make prefix=/usr/local/varprg/git.master.v2.0.1-472-g6f92e5f
 $ make
 $ cd t
 $ ./t5150-request-pull.sh

Are you sure you're not running under valgrind? I can reproduce the test
failures when I run under valgrind because I didn't add the right stuff
to the suppression files (patch to follow).  

I also just went ahead and got a Linode running Debian 7.5 (64-bit), and
I still can't reproduce the problem.  Do you have any additional
reproduction info that I need here?

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: t5150-request-pull.sh fails on newest master in Debian

2014-07-04 Thread Øyvind A . Holm
On 4 July 2014 22:22, David Turner dtur...@twopensource.com wrote:
 On Thu, 2014-07-03 at 23:55 +0200, Øyvind A. Holm wrote:
  When compiling newest master (v2.0.1-472-g6f92e5f) on Debian 7.5
  (64-bit), t5150-request-pull.sh fails when compiling with
 
  $ make configure
  $ ./configure
  --prefix=/usr/local/varprg/git.master.v2.0.1-472-g6f92e5f
  $ make prefix=/usr/local/varprg/git.master.v2.0.1-472-g6f92e5f
  $ make
  $ cd t
  $ ./t5150-request-pull.sh

 Are you sure you're not running under valgrind? I can reproduce the
 test failures when I run under valgrind because I didn't add the right
 stuff to the suppression files (patch to follow).

Nope, no valgrind involved here, it's not even installed on those two
servers. The two server setups differ quite much, one of them I use for
all kind of things, the other is a dedicated web server with not much
else except Apache and some essential stuff I can't live without
installed.

 I also just went ahead and got a Linode running Debian 7.5 (64-bit),
 and I still can't reproduce the problem.

Now that's what I call commitment. :)

 Do you have any additional reproduction info that I need here?

I build new gits pretty much every time Junio pushes new stuff to
kernel.org, and I'm using this script which takes care of everything:

  https://github.com/sunny256/utils/blob/master/build-git

I have a README at

  https://github.com/sunny256/utils/blob/master/README.build-git.md

where I have listed all packages I install from apt-get before I build
the thing. The script I used to test with git bisect is at

  https://github.com/sunny256/utils/blob/testfail.t5150-fail-g6f92e5f/testfail

, it simulates what the build-git script does.

The test works if I run a plain make using the standard Makefile
without ./configure .

Hm, interesting. When I don't use --prefix as mentioned above, just a

  $ make configure
  $ ./configure
  $ make
  $ cd t
  $ ./t5150-request-pull.sh

The test works. Seems as there's something fishy about the use of
--prefix in this specific commit (v2.0.1-472-g6f92e5f).

I'll dig more into this thing now to see what's going on.

Сенсорно Ваш,
Øyvind
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: t5150-request-pull.sh fails on newest master in Debian

2014-07-04 Thread David Turner
On Sat, 2014-07-05 at 02:09 +0200, Øyvind A. Holm wrote:
snip
 The test works. Seems as there's something fishy about the use of
 --prefix in this specific commit (v2.0.1-472-g6f92e5f).

Ok, now I can reproduce on my linode box (haven't tried it locally yet).
I'll try to get a fix up once I figure out what's up.

Thanks for the report.

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: t5150-request-pull.sh fails on newest master in Debian

2014-07-03 Thread David Turner
Interesting!  I wonder if the problem is with the compiler or with my
code.  I don't happen to have a Debian box handy; would it be possible
for you to compile refs.c to assembly language (gcc -S) and send me the
output?  That would help me track down the problem.

On Thu, 2014-07-03 at 23:55 +0200, Øyvind A. Holm wrote:
 When compiling newest master (v2.0.1-472-g6f92e5f) on Debian 7.5
 (64-bit), t5150-request-pull.sh fails when compiling with
 
 $ make configure
 $ ./configure --prefix=/usr/local/varprg/git.master.v2.0.1-472-g6f92e5f
 $ make prefix=/usr/local/varprg/git.master.v2.0.1-472-g6f92e5f
 $ make
 $ cd t
 $ ./t5150-request-pull.sh
 
 I have attached the output of t5150-request-pull.sh, but in case the
 attachment doesn't go through, I've also pasted it at
 https://gist.github.com/sunny256/0f6ff7ffee26224dbe12. This happened
 on two virtual servers (64 bit) hosted on Linode, with this
 configuration:
 
 $ lsb_release -a
 No LSB modules are available.
 Distributor ID: Debian
 Description:Debian GNU/Linux 7.5 (wheezy)
 Release:7.5
 Codename:   wheezy
 
 $ gcc --version
 gcc (Debian 4.7.2-5) 4.7.2
 
 Both servers are (of course) updated with new packages from apt-get.
 
 The test worked on my laptop which runs Ubuntu Studio 13.10. Have tried
 recompiling several times, and it fails on Debian every time.
 
 git bisect says the bad commit is 6f92e5ff3 (Merge branch
 'dt/refs-check-refname-component-sse, 2014-07-02 12:53:07 -0700), but
 that's a merge. Both parent commits works, so could this be an evil
 merge?
 
 When compiling parent commit 745224e test 6 is disabled, could that be
 the reason?
 
 Parent commit a02ad88 passes all 7 tests.
 
 Cheers,
 Øyvind


--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: t5150-request-pull.sh fails on newest master in Debian

2014-07-03 Thread Øyvind A . Holm
On 3 July 2014 23:55, Øyvind A. Holm su...@sunbase.org wrote:
 When compiling newest master (v2.0.1-472-g6f92e5f) on Debian 7.5
 (64-bit), t5150-request-pull.sh fails when compiling with

 $ make configure
 $ ./configure --prefix=/usr/local/varprg/git.master.v2.0.1-472-g6f92e5f
 $ make prefix=/usr/local/varprg/git.master.v2.0.1-472-g6f92e5f
 $ make
 $ cd t
 $ ./t5150-request-pull.sh

That's a copy+paste error, ignore the second make. :-P

Cheers,
Øyvind
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: t5150-request-pull.sh fails on newest master in Debian

2014-07-03 Thread Øyvind A . Holm
On 4 July 2014 00:34, Øyvind A. Holm su...@sunbase.org wrote:
 On 4 July 2014 00:16, David Turner dtur...@twopensource.com wrote:
  On Thu, 2014-07-03 at 23:55 +0200, Øyvind A. Holm wrote:
   When compiling newest master (v2.0.1-472-g6f92e5f) on Debian 7.5
   (64-bit), t5150-request-pull.sh fails when compiling with
   [...]
 
  Interesting!  I wonder if the problem is with the compiler or with
  my code.  I don't happen to have a Debian box handy; would it be
  possible for you to compile refs.c to assembly language (gcc -S) and
  send me the output?  That would help me track down the problem.
 
 Sure! I have attached refs.s from v2.0.1-472-g6f92e5f .

If someone else is interested in the assembly output, it's available
from http://sunbase.org/t5150-fail/refs.s.gz. Didn't send it to the
list, it's 128KB.

Cheers again,
Øyvind
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html