Julia.exe does nothing (Windows 7/10, julia 1.2 fresh installation)

As the title says: julia.exe does nothing. When called without arguments, it exits after a split second without launching the REPL (as I would have expected, per the documentation and the behaviour of Julia 0.6.2). No output, no diagnostic, no idea how to solve this (and no entry in the FAQ as far as I can tell).

julia --version, julia --help seem to work fine: they print the expected information and quit.

This is on Windows 7 with a fresh installation of 1.2 (64 bits) alongside 0.6.2 + on Windows 10 with a fresh installation of 1.2 (64 bits), no older Julia version. Both installations using the Windows self-installer run as admin in c:\Programs\Julia-1.2.0

julia.exe (1.2) called on a source file fails with exit code 0xc000001d (= EXCEPTION_ILLEGAL_INSTRUCTION ???)
julia 0.6.2 works still fine.
ProcessMonitor on julia 1.2 does not show any error obviously relevant to the failure (but it shows that Julia tries to read many *.pdb files it doensn’t find).

Running under a (Delphi) debugger, the error is apparently caused by an invalid x64 opcode in libopenblas64_.dll (loaded from the julia 1.2 bin folder):

(libopenblas64_.dll was loaded at 0x17740000)

000000001888703F 90               nop                     ; 14x nop
0000000018887040 55               push rbp
0000000018887041 62               db $62                  ; <== HERE undefined x64 instruction (x86 BOUND)
0000000018887042 F1               db $f1
0000000018887043 7D48             jnl $000000001888708d
0000000018887045 EF               out dx,eax
0000000018887046 C04889E5         ror byte ptr [rax-$77],$e5
000000001888704A 4157             push r15
000000001888704C 4156             push r14
000000001888704E 4155             push r13
0000000018887050 4154             push r12
0000000018887052 57               push rdi
0000000018887053 56               push rsi
0000000018887054 53               push rbx
0000000018887055 4883E4C0         and rsp,-$40
0000000018887059 4883EC40         sub rsp,$40
000000001888705D 4C8B5D30         mov r11,[rbp+$30]
0000000018887061 4885C9           test rcx,rcx
0000000018887064 7E34             jle $000000001888709a

What the hell is up ?
If I replace libopenblas64_.dll with the one provided with Julia 0.6.2 it solves my problem, the REPL starts, with the following warning:

WARNING: Error during initialization of module LinearAlgebra:
ErrorException("could not load library "libopenblas64_"
The specified module could not be found.
")
┌ Error: Error during initialization of module CHOLMOD
│   exception =
│    could not load library "libcholmod"
│    The specified module could not be found.
│
│    Stacktrace:
│     [1] #dlopen#3(::Bool, ::typeof(Libdl.dlopen), ::String, ::UInt32) at C:\cygwin\home\Administrator\buildbot\worker\
package_win64\build\usr\share\julia\stdlib\v1.2\Libdl\src\Libdl.jl:109
│     [2] dlopen at C:\cygwin\home\Administrator\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.2\Libdl\s
rc\Libdl.jl:109 [inlined] (repeats 2 times)
│     [3] __init__() at C:\cygwin\home\Administrator\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.2\Sui
teSparse\src\cholmod.jl:89
└ @ SuiteSparse.CHOLMOD C:\cygwin\home\Administrator\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.2\Sui
teSparse\src\cholmod.jl:176

As I probably don’t need openblas, that’s fine with me (so far).

Edit:
Someone has had the exact same problem on a Mac:
https://github.com/JuliaLang/julia/issues/29652
sadly, that issue was closed before 1.2 was out. I’m going to try Julia 1.3.0rc to see if it solves my problem, and follow-up on GitHub.

Edit 2:
For the record, the solution of setting the OPENBLAS_CORETYPE env var suggested at the end of this GitHub issue work for me:

C:\Programs\Julia-1.2.0\bin>set OPENBLAS_CORETYPE=haswell

C:\Programs\Julia-1.2.0\bin>julia
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.2.0 (2019-08-20)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |

Now it works fine (without AVX512 instructions which I probably don’t have anyway).

2 Likes

Same problem with Julia 1.3.0rc4; the same workaround works.

(As per the GitHub issue, the problem is apparently that OpenBLAS does not correctly determine AVX512 instruction set availability on certain virtualized machines.)