{"thread":{"id":"53785","subject":"Built Git 2.27.0 from sources on macOS Catalina fails on \"make profile\"","startedAt":"2020-07-01T13:17:12Z","lastAt":"2020-07-01T16:14:08Z","messageCount":5,"participants":["Fabio Frumento","Jeff King"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"400892","messageId":"618374D7-60E1-4942-B29F-4F2EA261996F@gmail.com","threadId":"53785","inReplyTo":null,"subject":"Built Git 2.27.0 from sources on macOS Catalina fails on \"make profile\"","fromName":"Fabio Frumento","fromEmail":"frumento.fabio@gmail.com","sentAt":"2020-07-01T13:17:05Z","receivedAt":"2020-07-01T13:17:12Z","isPatch":false,"sender":{"key":"frumento.fabio@gmail.com","avatar":null},"body":"I'm trying to build Git 2.27.0 from sources on MACOS\n\nI've got to get the build works solving missing autoconf app and gcov issues (clang does not need it)\n\nnow I'm struggling during the ```make profile``` step\n\nsome tests fail on ```t0410-partial-clone.sh```\n\n```\nnot ok 15 - missing tree objects with --missing=allow-promisor and --exclude-promisor-objects\n#\n#\t\trm -rf repo &&\n#\t\ttest_create_repo repo &&\n#\t\ttest_commit -C repo foo &&\n#\t\ttest_commit -C repo bar &&\n#\t\ttest_commit -C repo baz &&\n#\n#\t\tpromise_and_delete $(git -C repo rev-parse bar^{tree}) &&\n#\t\tpromise_and_delete $(git -C repo rev-parse foo^{tree}) &&\n#\n#\t\tgit -C repo config core.repositoryformatversion 1 &&\n#\t\tgit -C repo config extensions.partialclone \"arbitrary string\" &&\n#\n#\t\tgit -C repo rev-list --missing=allow-promisor --objects HEAD >objs 2>rev_list_err &&\n#\t\ttest_must_be_empty rev_list_err &&\n#\t\t# 3 commits, 3 blobs, and 1 tree\n#\t\ttest_line_count = 7 objs &&\n#\n#\t\t# Do the same for --exclude-promisor-objects, but with all trees gone.\n#\t\tpromise_and_delete $(git -C repo rev-parse baz^{tree}) &&\n#\t\tgit -C repo rev-list --exclude-promisor-objects --objects HEAD >objs 2>rev_list_err &&\n#\t\ttest_must_be_empty rev_list_err &&\n#\t\t# 3 commits, no blobs or trees\n#\t\ttest_line_count = 3 objs\n#\nnot ok 16 - missing non-root tree object and rev-list\n#\n#\t\trm -rf repo &&\n#\t\ttest_create_repo repo &&\n#\t\tmkdir repo/dir &&\n#\t\techo foo >repo/dir/foo &&\n#\t\tgit -C repo add dir/foo &&\n#\t\tgit -C repo commit -m \"commit dir/foo\" &&\n#\n#\t\tpromise_and_delete $(git -C repo rev-parse HEAD:dir) &&\n#\n#\t\tgit -C repo config core.repositoryformatversion 1 &&\n#\t\tgit -C repo config extensions.partialclone \"arbitrary string\" &&\n#\n#\t\tgit -C repo rev-list --missing=allow-any --objects HEAD >objs 2>rev_list_err &&\n#\t\ttest_must_be_empty rev_list_err &&\n#\t\t# 1 commit and 1 tree\n#\t\ttest_line_count = 2 objs\n#\n```\n\nI'm a little surprised as presumed, since 2.27.0 is an official release, all the tests should pass without any issue.\n\nI'm not interested to get latest version using home-brew so please leave it out of the answers\n\nAny idea?\n\nHow to file a bug to the Git developers?\n\n"},{"id":"400926","messageId":"20200701153726.GC6726@coredump.intra.peff.net","threadId":"53785","inReplyTo":"618374D7-60E1-4942-B29F-4F2EA261996F@gmail.com","subject":"Re: Built Git 2.27.0 from sources on macOS Catalina fails on \"make profile\"","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2020-07-01T15:37:26Z","receivedAt":"2020-07-01T15:37:29Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Wed, Jul 01, 2020 at 03:17:05PM +0200, Fabio Frumento wrote:\n\n> now I'm struggling during the ```make profile``` step\n> [...]\n> I'm a little surprised as presumed, since 2.27.0 is an official\n> release, all the tests should pass without any issue.\n\nThey generally do (not just for releases but for every commit that hits\nmaster). However, we've sometimes seen weird test failures from \"make\nprofile\" (which in my experience isn't all that well maintained).\n\nThat said, \"make profile\" passes for me on v2.27.0, on Linux.  It's\npossible that a test is racy (the profiler often slows things down,\nexacerbating races), but I can't seem to get t0410 to fail with our\nusual stress-test to find races.\n\nIf you don't care about profile-optimized builds, then I'd suggest\nskipping \"make profile\".\n\nIf you want to look further into the test failure, probably it would\nhelp to re-run the test with more verbose settings. E.g.:\n\n  [wait for this to fail, which would leave the problematic version of\n   git in the build directory]\n  $ make profile\n  $ cd t\n  $ ./t0410-partial-clone.sh -v -i -x\n\nthen we could see what's failing.\n\n> How to file a bug to the Git developers?\n\nI think you just did.\n\n-Peff\n"},{"id":"400928","messageId":"E9210645-66F4-4B76-BB26-C8282AE23B3D@gmail.com","threadId":"53785","inReplyTo":"20200701153726.GC6726@coredump.intra.peff.net","subject":"Re: Built Git 2.27.0 from sources on macOS Catalina fails on \"make profile\"","fromName":"Fabio Frumento","fromEmail":"frumento.fabio@gmail.com","sentAt":"2020-07-01T16:00:49Z","receivedAt":"2020-07-01T16:00:54Z","isPatch":false,"sender":{"key":"frumento.fabio@gmail.com","avatar":null},"body":"Hi,\n\nThanks for the reply.\n\nI get several messages like this\n\nLLVM Profile Warning: Unable to track new values: Running out of static counters.  Consider using option -mllvm -vp-counters-per-site=<n> to allocate more value profile counters at compile time.\n\nI’ve checked the scripts in the t folder, they use #!/bin/sh while  I’m using zsh could  it be of some relevance? Which shell are they supposed to be run?\n\n-Fabio\n\n> Il giorno 1 lug 2020, alle ore 17:37, Jeff King <peff@peff.net> ha scritto:\n> \n> On Wed, Jul 01, 2020 at 03:17:05PM +0200, Fabio Frumento wrote:\n> \n>> now I'm struggling during the ```make profile``` step\n>> [...]\n>> I'm a little surprised as presumed, since 2.27.0 is an official\n>> release, all the tests should pass without any issue.\n> \n> They generally do (not just for releases but for every commit that hits\n> master). However, we've sometimes seen weird test failures from \"make\n> profile\" (which in my experience isn't all that well maintained).\n> \n> That said, \"make profile\" passes for me on v2.27.0, on Linux.  It's\n> possible that a test is racy (the profiler often slows things down,\n> exacerbating races), but I can't seem to get t0410 to fail with our\n> usual stress-test to find races.\n> \n> If you don't care about profile-optimized builds, then I'd suggest\n> skipping \"make profile\".\n> \n> If you want to look further into the test failure, probably it would\n> help to re-run the test with more verbose settings. E.g.:\n> \n>  [wait for this to fail, which would leave the problematic version of\n>   git in the build directory]\n>  $ make profile\n>  $ cd t\n>  $ ./t0410-partial-clone.sh -v -i -x\n> \n> then we could see what's failing.\n> \n>> How to file a bug to the Git developers?\n> \n> I think you just did.\n> \n> -Peff\n\n"},{"id":"400930","messageId":"20200701161018.GD6726@coredump.intra.peff.net","threadId":"53785","inReplyTo":"E9210645-66F4-4B76-BB26-C8282AE23B3D@gmail.com","subject":"Re: Built Git 2.27.0 from sources on macOS Catalina fails on \"make profile\"","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2020-07-01T16:10:18Z","receivedAt":"2020-07-01T16:10:20Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Wed, Jul 01, 2020 at 06:00:49PM +0200, Fabio Frumento wrote:\n\n> I get several messages like this\n> \n> LLVM Profile Warning: Unable to track new values: Running out of static counters.  Consider using option -mllvm -vp-counters-per-site=<n> to allocate more value profile counters at compile time.\n\nThat could be related. I don't know enough about llvm's profiling to\nsay. If it's just a warning and not terminating the process, that might\nbe OK. But some of the tests check the stderr from Git. If the profiled\nbinaries are producing extra messages, that could cause a problem (and\nit looks like t0410.15 that you posted does make sure stderr is empty,\nso this seems a likely culprit).\n\n> I’ve checked the scripts in the t folder, they use #!/bin/sh while\n> I’m using zsh could  it be of some relevance? Which shell are they\n> supposed to be run?\n\nThey're generally run with whatever $SHELL_PATH is set by the Makefile\nknobs, which defaults to /bin/sh. The interactive shell you're using\nshouldn't be relevant.\n\n-Peff\n"},{"id":"400932","messageId":"C72555F0-4CAE-4488-B32E-FD06D1204935@gmail.com","threadId":"53785","inReplyTo":"20200701161018.GD6726@coredump.intra.peff.net","subject":"Re: Built Git 2.27.0 from sources on macOS Catalina fails on \"make profile\"","fromName":"Fabio Frumento","fromEmail":"frumento.fabio@gmail.com","sentAt":"2020-07-01T16:14:03Z","receivedAt":"2020-07-01T16:14:08Z","isPatch":false,"sender":{"key":"frumento.fabio@gmail.com","avatar":null},"body":"You got it!\n\n++ test_must_be_empty err\n++ test_path_is_file err\n++ test -f err\n++ test -s err\n++ echo ''\\''err'\\'' is not empty, it contains:'\n'err' is not empty, it contains:\n++ cat err\nLLVM Profile Warning: Unable to track new values: Running out of static counters.  Consider using option -mllvm -vp-counters-per-site=<n> to allocate more value profile counters at compile time.\nLLVM Profile Warning: Unable to track new values: Running out of static counters.  Consider using option -mllvm -vp-counters-per-site=<n> to allocate more value profile counters at compile time.\nLLVM Profile Warning: Unable to track new values: Running out of static counters.  Consider using option -mllvm -vp-counters-per-site=<n> to allocate more value profile counters at compile time.\n++ return 1\nerror: last command exited with $?=1\nnot ok 5 - pretend we have a fully passing test suite\n\nOk now I know I have to solve the LLVM generating this issue.\n\nThanks a lot\n\nFabio\n\n> Il giorno 1 lug 2020, alle ore 18:10, Jeff King <peff@peff.net> ha scritto:\n> \n> On Wed, Jul 01, 2020 at 06:00:49PM +0200, Fabio Frumento wrote:\n> \n>> I get several messages like this\n>> \n>> LLVM Profile Warning: Unable to track new values: Running out of static counters.  Consider using option -mllvm -vp-counters-per-site=<n> to allocate more value profile counters at compile time.\n> \n> That could be related. I don't know enough about llvm's profiling to\n> say. If it's just a warning and not terminating the process, that might\n> be OK. But some of the tests check the stderr from Git. If the profiled\n> binaries are producing extra messages, that could cause a problem (and\n> it looks like t0410.15 that you posted does make sure stderr is empty,\n> so this seems a likely culprit).\n> \n>> I’ve checked the scripts in the t folder, they use #!/bin/sh while\n>> I’m using zsh could  it be of some relevance? Which shell are they\n>> supposed to be run?\n> \n> They're generally run with whatever $SHELL_PATH is set by the Makefile\n> knobs, which defaults to /bin/sh. The interactive shell you're using\n> shouldn't be relevant.\n> \n> -Peff\n\n"}]}