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

Re: LSan curiosity in t1300

From
Junio C Hamano <gitster@pobox.com>
Date
Sep 8, 2022, 18:03 UTC
Message-ID
<xmqq8rmtrbfq.fsf@gitster.g>
In-Reply-To
<Yxl91jfycCo7O7Pp@coredump.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 11 quoted lines
> And it is complaining that we've leaked "key". But as you can see, we
> always free it. The problem is that for this particular invocation we
> die("missing environment variable name"), so of course we don't make it
> to the free(). Normally this is OK, though. The "key" variable is still
> on the stack, so the leak-checker should realize that it's still
> reachable.
>
> But if you run this in a debugger, you'll find that under -O2 the "key"
> variable has been optimized out! So LSan is producing the wrong result
> due to the optimization. It doesn't know that "key" is conceptually
> still reachable.
Yikes.  

Is that related to the cause of the other patch from you, i.e. wanting to get "registers" but unable to? If they manage to get the value of the register that holds 'key', would this disappear, I wonder?

Show 7 quoted lines
> Maybe this is a known problem, but it was certainly surprising to me.
> I'm not sure if we should do anything about it or not. It doesn't seem
> to trigger in CI, even though I don't see us taking any steps there to
> use -O0 or similar. So we can perhaps ignore it for now, and this
> message can serve as a warning. But if we think LSan isn't reliable
> under higher optimizations, we could perhaps teach the Makefile to
> prefer -O0 when it sees SANITIZE=leak.
Nice note to leave here, I agree.
Previous: Ævar Arnfjörð BjarmasonNext: Jeff King
Message 7 of 8 in “LSan curiosity in t1300”
  1. Jeff KingSep 8, 2022
  2. tests: opt "git --config-env" test out of SANITIZE=leakÆvar Arnfjörð Bjarmason, Sep 8, 2022
  3. Jeff KingSep 8, 2022
  4. Ævar Arnfjörð BjarmasonSep 23, 2022
  5. Jeff KingSep 23, 2022
  6. Ævar Arnfjörð BjarmasonSep 26, 2022
  7. Junio C HamanoSep 8, 2022
  8. Jeff KingSep 8, 2022

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.