# Segfault on BLAS operation with incorrect character input

**URL:** <https://discourse.julialang.org/t/segfault-on-blas-operation-with-incorrect-character-input/7515>\
**Category:** General Usage\
**Tags:** question\
**Created:** [December 5, 2017, 12:43am UTC](https://discourse.julialang.org/t/segfault-on-blas-operation-with-incorrect-character-input/7515 "2017-12-05T00:43:02Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![colintbowers](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/colintbowers/32/8033_2.png) [@colintbowers](https://discourse.julialang.org/u/colintbowers)\
**Post date:** [December 5, 2017, 12:43am UTC](https://discourse.julialang.org/t/segfault-on-blas-operation-with-incorrect-character-input/7515/1 "2017-12-05T00:43:02Z")

</div>

Hi all,

I’m getting the following segfault by directly calling a BLAS routine, but using the wrong character to indicate the type of operation. I’m on julia v0.6, but don’t have a v0.7 install on which to test this. Should I file it as an issue, or is this expected when calling BLAS routines directly?

```julia
m = randn(4, 2)
v = randn(2)
Base.LinAlg.BLAS.gemv('n', 1.0, m, v)

```

results in:

```julia
signal (11): Segmentation fault
while loading no file, in expression starting on line 0
jl_gc_pool_alloc at /home/centos/buildbot/slave/package_tarball64/build/src/gc.c:928
jl_gc_alloc_ at /home/centos/buildbot/slave/package_tarball64/build/src/julia_internal.h:249 [inlined]
jl_gc_alloc at /home/centos/buildbot/slave/package_tarball64/build/src/gc.c:2129
_new_array_ at /home/centos/buildbot/slave/package_tarball64/build/src/array.c:96 [inlined]
_new_array at /home/centos/buildbot/slave/package_tarball64/build/src/array.c:149 [inlined]
jl_alloc_array_1d at /home/centos/buildbot/slave/package_tarball64/build/src/array.c:372
jl_f__expr at /home/centos/buildbot/slave/package_tarball64/build/src/builtins.c:876
eval_user_input at ./REPL.jl:69
unknown function (ip: 0x7f36a48f81cf)
jl_call_fptr_internal at /home/centos/buildbot/slave/package_tarball64/build/src/julia_internal.h:339 [inlined]
jl_call_method_internal at /home/centos/buildbot/slave/package_tarball64/build/src/julia_internal.h:358 [inlined]
jl_apply_generic at /home/centos/buildbot/slave/package_tarball64/build/src/gf.c:1933
macro expansion at ./REPL.jl:97 [inlined]
#1 at ./event.jl:73
unknown function (ip: 0x7f368825934f)
jl_call_fptr_internal at /home/centos/buildbot/slave/package_tarball64/build/src/julia_internal.h:339 [inlined]
jl_call_method_internal at /home/centos/buildbot/slave/package_tarball64/build/src/julia_internal.h:358 [inlined]
jl_apply_generic at /home/centos/buildbot/slave/package_tarball64/build/src/gf.c:1933
jl_apply at /home/centos/buildbot/slave/package_tarball64/build/src/julia.h:1424 [inlined]
start_task at /home/centos/buildbot/slave/package_tarball64/build/src/task.c:267
unknown function (ip: 0xffffffffffffffff)
Allocations: 1799132 (Pool: 1797705; Big: 1427); GC: 1
Segmentation fault (core dumped)

```

Note that `Base.LinAlg.BLAS.gemv('N', 1.0, m, v)` works just fine.

Cheers,

Colin

---

<div class="post-metadata">

**Author:** ![Elrod](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/elrod/32/22461_2.png) [@Elrod](https://discourse.julialang.org/u/Elrod)\
**Post date:** [December 5, 2017, 3:56am UTC](https://discourse.julialang.org/t/segfault-on-blas-operation-with-incorrect-character-input/7515/2 "2017-12-05T03:56:39Z")

</div>

I get the same segfault on a 12-day old master.  
Perhaps something could be added to the dimension mismatch checks that are already there?  
[https://github.com/JuliaLang/julia/blob/master/base/linalg/blas.jl](https://github.com/JuliaLang/julia/blob/master/base/linalg/blas.jl)

---

<div class="post-metadata">

**Author:** ![simonbyrne](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/simonbyrne/32/19_2.png) [@simonbyrne](https://discourse.julialang.org/u/simonbyrne)\
**Post date:** [December 5, 2017, 3:59am UTC](https://discourse.julialang.org/t/segfault-on-blas-operation-with-incorrect-character-input/7515/3 "2017-12-05T03:59:12Z")

</div>

There’s no harm in opening an issue.

---

<div class="post-metadata">

**Author:** ![colintbowers](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/colintbowers/32/8033_2.png) [@colintbowers](https://discourse.julialang.org/u/colintbowers)\
**Post date:** [December 5, 2017, 4:12am UTC](https://discourse.julialang.org/t/segfault-on-blas-operation-with-incorrect-character-input/7515/4 "2017-12-05T04:12:15Z")

</div>

> [@colintbowers](#):
>
> m = randn(4, 2)  
> v = randn(2)  
> Base.LinAlg.BLAS.gemv(‘n’, 1.0, m, v)

Yes, an additional `else` clause might do it. Although that would only help for `gemv`, ie wouldn’t be universal. I’ve opened an issue as I’m probably out of my depth in coming up with a universal solution.

Cheers,

Colin

---

<div class="post-metadata">

**Author:** ![colintbowers](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/colintbowers/32/8033_2.png) [@colintbowers](https://discourse.julialang.org/u/colintbowers)\
**Post date:** [December 5, 2017, 4:12am UTC](https://discourse.julialang.org/t/segfault-on-blas-operation-with-incorrect-character-input/7515/5 "2017-12-05T04:12:29Z")

</div>

Done!
