Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

There are a bunch of memory leaks when doing 'make test' #15214

Open
p5pRT opened this issue Mar 4, 2016 · 8 comments
Open

There are a bunch of memory leaks when doing 'make test' #15214

p5pRT opened this issue Mar 4, 2016 · 8 comments

Comments

@p5pRT
Copy link

p5pRT commented Mar 4, 2016

Migrated from rt.perl.org#127657 (status was 'open')

Searchable as RT127657$

@p5pRT
Copy link
Author

p5pRT commented Mar 4, 2016

From @khwilliamson

After having fixed several memory leaks that I knew how to, or Tony Cook gave me advice on fixing, there remain a bunch. Tony indicated that we have lived with some for a long time, so those are not a priority to fix now, but obviously it would be nice to. But we do want to not introduce memory leaks. Some of these are coming from, for example, multi deref, which is fairly new. So they should be looked at anyway before 5.24, so I will add this ticket to the blockers. Attached is a .gz of the output of clang on a non-threaded build, with the leak sanitizer enabled.
--
Karl Williamson

@p5pRT
Copy link
Author

p5pRT commented Mar 4, 2016

From @khwilliamson

On Fri Mar 04 10​:51​:00 2016, khw wrote​:

Oops, attached is a 'make test' output that has the lines with embedded \n expanded out, so it is more readable.

--
Karl Williamson

@p5pRT
Copy link
Author

p5pRT commented Mar 4, 2016

From @khwilliamson

test.out.gz

@p5pRT
Copy link
Author

p5pRT commented Mar 4, 2016

From @iabyn

On Fri, Mar 04, 2016 at 10​:51​:00AM -0800, Karl Williamson wrote​:

# New Ticket Created by Karl Williamson
# Please include the string​: [perl #127657]
# in the subject line of all future correspondence about this issue.
# <URL​: https://rt-archive.perl.org/perl5/Ticket/Display.html?id=127657 >

After having fixed several memory leaks that I knew how to, or Tony Cook
gave me advice on fixing, there remain a bunch. Tony indicated that we
have lived with some for a long time, so those are not a priority to fix
now, but obviously it would be nice to. But we do want to not introduce
memory leaks. Some of these are coming from, for example, multi deref,
which is fairly new. So they should be looked at anyway before 5.24, so
I will add this ticket to the blockers. Attached is a .gz of the output
of clang on a non-threaded build, with the leak sanitizer enabled. --

I disabled LeakSanitizer locally (with ASAN_OPTIONS='detect_leaks=0')
because on my system, even the most basic of executions, e.g.
  PERL_DESTRUCT_LEVEL=2 ./perl -e 1
gave loads of (what I assumed were) false positives.

What version of clang are you using, and/or what (if any) report
suppression are you using?

--
Overhead, without any fuss, the stars were going out.
  -- Arthur C Clarke

@p5pRT
Copy link
Author

p5pRT commented Mar 4, 2016

The RT System itself - Status changed from 'new' to 'open'

@p5pRT
Copy link
Author

p5pRT commented Mar 5, 2016

From @khwilliamson

On 03/04/2016 04​:44 PM, Dave Mitchell wrote​:

On Fri, Mar 04, 2016 at 10​:51​:00AM -0800, Karl Williamson wrote​:

# New Ticket Created by Karl Williamson
# Please include the string​: [perl #127657]
# in the subject line of all future correspondence about this issue.
# <URL​: https://rt-archive.perl.org/perl5/Ticket/Display.html?id=127657 >

After having fixed several memory leaks that I knew how to, or Tony Cook
gave me advice on fixing, there remain a bunch. Tony indicated that we
have lived with some for a long time, so those are not a priority to fix
now, but obviously it would be nice to. But we do want to not introduce
memory leaks. Some of these are coming from, for example, multi deref,
which is fairly new. So they should be looked at anyway before 5.24, so
I will add this ticket to the blockers. Attached is a .gz of the output
of clang on a non-threaded build, with the leak sanitizer enabled. --

I disabled LeakSanitizer locally (with ASAN_OPTIONS='detect_leaks=0')
because on my system, even the most basic of executions, e.g.
PERL_DESTRUCT_LEVEL=2 ./perl -e 1
gave loads of (what I assumed were) false positives.

What version of clang are you using, and/or what (if any) report
suppression are you using?

This happened to me too, but not in current blead; I assumed I had fixed
enough leaks that things would build. But a way to get it to work,
leaks and all, is to say

LSAN_OPTIONS="exitcode=0;
external_symbolizer_path=/usr/bin/llvm-symbolizer-3.5"
PERL_DESTRUCT_LEVEL=2 make test

On dromedary, I don't have to use the symbolizer.

$ clang -v
Ubuntu clang version 3.6.0-2ubuntu1 (tags/RELEASE_360/final) (based on
LLVM 3.6.0)
Target​: x86_64-pc-linux-gnu
Thread model​: posix

Hmm. maybe I should be using symbolizer-3.6. But it seemed to work fine

@p5pRT
Copy link
Author

p5pRT commented Mar 18, 2016

From @jkeenan

On Fri Mar 04 10​:58​:34 2016, khw wrote​:

On Fri Mar 04 10​:51​:00 2016, khw wrote​:

Oops, attached is a 'make test' output that has the lines with
embedded \n expanded out, so it is more readable.

Karl, what were the tools or commands you used to generate this output?

Thank you very much.

--
James E Keenan (jkeenan@​cpan.org)

@p5pRT
Copy link
Author

p5pRT commented Mar 18, 2016

From @khwilliamson

On 03/18/2016 05​:55 AM, James E Keenan via RT wrote​:

On Fri Mar 04 10​:58​:34 2016, khw wrote​:

On Fri Mar 04 10​:51​:00 2016, khw wrote​:

Oops, attached is a 'make test' output that has the lines with
embedded \n expanded out, so it is more readable.

Karl, what were the tools or commands you used to generate this output?

Thank you very much.

./Configure -des -Uversiononly -Dprefix=/home/khw/devel -Dusedevel
-D'optimize =-ggdb3' -A'optimize=-ggdb3' -A'optimize=-O0'
-Accflags='-DPERL_BOOL_AS_CHAR' -Accflags='-DPERL_EXTERNAL_GLOB'
-Dman1dir=none -Dman3dir=none -DDEBUGGING -Dusemorebits -Dcc=clang
-Accflags='-fsanitize=address' -Aldflags='-fsanitize=address'
-Alddlflags='-shared'

$ clang -v
Ubuntu clang version 3.6.0-2ubuntu1 (tags/RELEASE_360/final) (based on
LLVM 3.6.0)
Target​: x86_64-pc-linux-gnu
Thread model​: posix

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants