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

Memory sanitizer support revisited #10785

Merged
merged 1 commit into from
Apr 10, 2015
Merged

Memory sanitizer support revisited #10785

merged 1 commit into from
Apr 10, 2015

Conversation

Keno
Copy link
Member

@Keno Keno commented Apr 10, 2015

With a new, stable LLVM patch for thread local storage support, I decided to revisit memory sanitizer support for julia. With this branch and a few upstream commits which are currently pending review, I am able to run julia's test suite under msan, without having msan report any failures (though there was a stream error which may or may not be related):

   JULIA test/all
    From worker 14:      * linalg/lu            in  19.81 seconds
    From worker 18:      * keywordargs          in  39.09 seconds
    From worker 12:      * linalg/givens        in  90.51 seconds
    From worker 12:      * remote               in   7.42 seconds
    From worker 12:      * iobuffer             in  27.20 seconds
    From worker 12:      * staged               in  20.33 seconds
    From worker 6:       * linalg/lapack        in 178.97 seconds
    From worker 5:       * linalg4              in 183.56 seconds
    From worker 14:      * dict                 in 181.65 seconds
    From worker 6:       * tuple                in  35.45 seconds
    From worker 8:       * linalg/tridiag       in 231.06 seconds
    From worker 18:      * hashing              in 208.93 seconds
    From worker 11:      * linalg/pinv          in 256.57 seconds
    From worker 18:      * intfuncs             in  44.19 seconds
    From worker 11:      * simdloop             in  44.31 seconds
    From worker 15:      * linalg/arnoldi       in 324.30 seconds
    From worker 14:      * reduce               in 128.32 seconds
    From worker 16:      * linalg/symmetric     in 331.67 seconds
    From worker 17:      * core                 in 336.32 seconds
    From worker 17:      * copy                 in  36.32 seconds
    From worker 10:      * linalg/diagonal      in 413.32 seconds
    From worker 11:      * fft                  in 121.43 seconds
    From worker 18:      * blas                 in 134.04 seconds
    From worker 18:      * operators            in  11.05 seconds
    From worker 18:      * path                 in   2.18 seconds
    From worker 11:      * functional           in  39.98 seconds
    From worker 15:      * dsp                  in 147.04 seconds
    From worker 9:       * linalg/bidiag        in 506.74 seconds
    From worker 20:      * strings              in 511.06 seconds
    From worker 18:      * ccall                in  79.63 seconds
    From worker 18:      * backtrace            in   6.94 seconds
    From worker 6:       * reducedim            in 329.53 seconds
    From worker 20:      * spawn                      [stdio passthrough ok]
    From worker 18:      * priorityqueue        in  32.88 seconds
    From worker 11:      * bigint               in 116.71 seconds
    From worker 4:       * linalg3              in 611.40 seconds
    From worker 18:      * version              in  55.95 seconds
    From worker 10:      * fastmath             in 215.24 seconds
    From worker 8:       * random               in 400.20 seconds
    From worker 4:       * pollfd               in  30.37 seconds
    From worker 6:       * file                 in 101.88 seconds
    From worker 20:  in 145.61 seconds
    From worker 6:       * floatapprox          in  19.65 seconds
The following 'Returned code...' warnings indicate normal behavior:
Warning: Returned code may not match what actually runs.
Warning: Returned code may not match what actually runs.
Warning: Returned code may not match what actually runs.
Warning: Returned code may not match what actually runs.
    From worker 6:       * reflection           in  24.44 seconds
    From worker 6:       * regex                in  19.87 seconds
    From worker 4:       * socket               in  67.92 seconds
    From worker 17:      * math                 in 362.75 seconds
    From worker 11:      * resolve              in 163.58 seconds
    From worker 17:      * sysinfo              in  13.89 seconds
    From worker 6:       * float16              in  69.50 seconds
    From worker 11:      * rounding             in  43.59 seconds
    From worker 6:       * mod2pi               in  16.28 seconds
    From worker 9:       * statistics           in 309.23 seconds
    From worker 4:       * combinatorics        in 111.36 seconds
    From worker 11:      * euler                in  42.55 seconds
    From worker 20:      * readdlm              in 203.69 seconds
    From worker 8:       * complex              in 236.80 seconds
    From worker 6:       * show                 in  81.90 seconds
    From worker 20:      * replutil             in  26.62 seconds
    From worker 20:      * goto                 in   3.87 seconds
    From worker 20:      * llvmcall             in   4.51 seconds
    From worker 6:       * test                 in  21.35 seconds
    From worker 9:       * lineedit             in 116.17 seconds
    From worker 9:       * meta                 in  14.65 seconds
    From worker 13:      * linalg/cholesky      in 944.91 seconds
    From worker 13:      * libgit2              in   1.26 seconds
    From worker 13:      * docs                 in   4.92 seconds
    From worker 18:      * mpfr                 in 353.37 seconds
    From worker 4:       * replcompletions      in 148.67 seconds
    From worker 4:       * parser               in  12.80 seconds
    From worker 18:      * base64               in  15.39 seconds
    From worker 9:       * profile              in  46.44 seconds
    From worker 8:       * sets                 in 142.41 seconds
    From worker 11:      * repl                 in 181.91 seconds
    From worker 9:       * char                 in  33.61 seconds
    From worker 18:      * functors             in  59.25 seconds
    From worker 6:       * nullable             in 145.81 seconds
    From worker 18:      * i18n                 in   4.07 seconds
    From worker 8:       * misc                 in  45.78 seconds
    From worker 10:      * broadcast            in 427.78 seconds
    From worker 13:      * markdown             in 126.58 seconds
    From worker 4:       * serialize            in 132.69 seconds
    From worker 12:      * arrayops             in 987.30 seconds
    From worker 18:      * unicode              in 126.44 seconds
    From worker 11:      * enums                in 197.65 seconds
    From worker 20:      * grisu                in 327.78 seconds
    From worker 21:      * dates                in 1228.74 seconds
    From worker 3:       * linalg2              in 1249.12 seconds
ArgumentError("stream is closed or unusable")
    From worker 6:       * examples             in 228.83 seconds
WARNING: Forcibly interrupting busy workers
WARNING: rmprocs: process 1 not removed
    From worker 2:       * linalg1              in 1347.09 seconds
    From worker 17:      * ranges               in 645.29 seconds
    From worker 16:      * bitarray             in 1109.57 seconds
    From worker 19:      * numbers              in 1452.90 seconds
    From worker 9:       * cmdlineargs          in 659.74 seconds
    From worker 15:      * sorting              in 1231.75 seconds
    From worker 14:      * sparse               in 1521.88 seconds
    From worker 5:       * subarray             in 4307.21 seconds
    From worker 7:       * linalg/triangular    in 5029.93 seconds
``

@StefanKarpinski
Copy link
Member

Nice. This should be very helpful for stability.

Keno added a commit that referenced this pull request Apr 10, 2015
Memory sanitizer support revisited
@Keno Keno merged commit a4bcf9b into master Apr 10, 2015
@@ -133,7 +136,7 @@ endif
ifeq ($(USE_SYSTEM_MPFR), 0)
STAGE2_DEPS += mpfr
ifeq ($(USE_SYSTEM_GMP), 0)
MPFR_OPTS = --with-gmp-include=$(abspath $(build_includedir)) --with-gmp-lib=$(abspath $(build_shlibdir))
MPFR_OPTS = --with-gmp-include=$(abspath $(build_includedir)) --with-gmp-lib=$(abspath $(build_shlibdir)) CFLAGS="-O0 -g"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should this only apply conditionally?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oops. Left over debugging flag. Thanks for catching that. Should be deleted.

@tkelman tkelman deleted the kf/msan2 branch April 19, 2015 11:45
@tkelman tkelman mentioned this pull request May 16, 2017
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

Successfully merging this pull request may close these issues.

3 participants