# A weird issue with Julia-1.7.1. on Ubuntu (GibbsSeaWater.jl package)

**URL:** <https://discourse.julialang.org/t/a-weird-issue-with-julia-1-7-1-on-ubuntu-gibbsseawater-jl-package/73632>\
**Category:** General Usage\
**Tags:** question\
**Created:** [December 26, 2021, 2:10am UTC](https://discourse.julialang.org/t/a-weird-issue-with-julia-1-7-1-on-ubuntu-gibbsseawater-jl-package/73632 "2021-12-26T02:10:42Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![leon](https://avatars.discourse-cdn.com/v4/letter/l/dc4da7/32.png) [@leon](https://discourse.julialang.org/u/leon)\
**Post date:** [December 26, 2021, 2:10am UTC](https://discourse.julialang.org/t/a-weird-issue-with-julia-1-7-1-on-ubuntu-gibbsseawater-jl-package/73632/1 "2021-12-26T02:10:42Z")

</div>

The bleow script runs perfectly fine on my Macbook Pro with Julia-1.7.1, but the same program does not run at all on Ubuntu (20.04) (Julia-1.7.1) and gives me the below error message. Not sure if it is due to Julia itself or the package `GibbsSeaWater.jl`.

Here is a MAT file with some sample data: [test.mat - Google Drive](https://drive.google.com/file/d/1Ew3zt_ESKnbfjP6-ucIYm_Y-gH0tIYuL/view?usp=sharing)

Here is my code:

```julia
using MAT, GibbsSeaWater;

F1 = matopen("test.mat");
SP = read(F1, "SP");
P = read(F1, "P");
Lon = read(F1, "Lon");
Lat = read(F1, "Lat");
close(F1);

SA = gsw_sa_from_sp.(SP, P, Lon, Lat); # calculate the Absolute salinity

```

Here is the error message.

```julia
signal (11): Segmentation fault
in expression starting at /home/leon/Desktop/LQ/Julia_models/ESM4/A06_unit_conv_historical.jl:38
gsw_saar at /home/leon/.julia/packages/GibbsSeaWater/vq3GE/deps/usr/lib/libgswteos-10.so (unknown line)
gsw_sa_from_sp at /home/leon/.julia/packages/GibbsSeaWater/vq3GE/deps/usr/lib/libgswteos-10.so (unknown line)
gsw_sa_from_sp at /home/leon/.julia/packages/GibbsSeaWater/vq3GE/src/gen_gswteos10.jl:534 [inlined]
_broadcast_getindex_evalf at ./broadcast.jl:670 [inlined]
_broadcast_getindex at ./broadcast.jl:643 [inlined]
getindex at ./broadcast.jl:597 [inlined]
macro expansion at ./broadcast.jl:961 [inlined]
macro expansion at ./simdloop.jl:77 [inlined]
copyto! at ./broadcast.jl:960 [inlined]
copyto! at ./broadcast.jl:913 [inlined]
copy at ./broadcast.jl:885 [inlined]
materialize at ./broadcast.jl:860
unknown function (ip: 0x7fcb1f0a4a5d)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
top-level scope at /home/leon/Desktop/LQ/Julia_models/ESM4/A06_unit_conv_historical.jl:41
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:876
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:830
jl_toplevel_eval_in at /buildworker/worker/package_linux64/build/src/toplevel.c:944
eval at ./boot.jl:373 [inlined]
include_string at ./loading.jl:1196
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
_include at ./loading.jl:1253
include at ./Base.jl:418
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
exec_options at ./client.jl:292
_start at ./client.jl:495
jfptr__start_40531.clone_1 at /opt/julia-1.7.1/lib/julia/sys.so (unknown line)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1788 [inlined]
true_main at /buildworker/worker/package_linux64/build/src/jlapi.c:559
jl_repl_entrypoint at /buildworker/worker/package_linux64/build/src/jlapi.c:701
main at julia (unknown line)
__libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
unknown function (ip: 0x400808)
Allocations: 8021244 (Pool: 8018757; Big: 2487); GC: 7
Segmentation fault (core dumped)

```

This does not seem to be a performance related issue. It ran on my Mac super fast. On Ubuntu, however, it reported the error message without even trying.

---

<div class="post-metadata">

**Author:** ![ImreSamu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/imresamu/32/20677_2.png) [@ImreSamu](https://discourse.julialang.org/u/ImreSamu)\
**Post date:** [December 26, 2021, 10:32am UTC](https://discourse.julialang.org/t/a-weird-issue-with-julia-1-7-1-on-ubuntu-gibbsseawater-jl-package/73632/2 "2021-12-26T10:32:20Z")

</div>

> [@leon](#):
>
> Not sure if it is due to Julia itself or the package `GibbsSeaWater.jl` .

you can test the package with `test GibbsSeaWater`

my test ( Ubuntu 20.04.3 LTS + Julia 1.7.1 - Linux (x86\_64-pc-linux-gnu)

- new julia install
- old ( julia 1.6) `~/.julia` directory has been removed.

> **test GibbsSeaWater ( GibbsSeaWater v0.1.1 )**
>
> ```julia
> (@v1.7) pkg> st
> Status `~/.julia/environments/v1.7/Project.toml`
> [9a22fb26] GibbsSeaWater v0.1.1
> 
> (@v1.7) pkg> test GibbsSeaWater
> Testing GibbsSeaWater
> Status `/tmp/jl_Ow8oLP/Project.toml`
> [b99e7846] BinaryProvider v0.5.10
> [34da2185] Compat v3.41.0
> [9a22fb26] GibbsSeaWater v0.1.1
> [8f399da3] Libdl `@stdlib/Libdl`
> [8dfed614] Test `@stdlib/Test`
> Status `/tmp/jl_Ow8oLP/Manifest.toml`
> [b99e7846] BinaryProvider v0.5.10
> [34da2185] Compat v3.41.0
> [9a22fb26] GibbsSeaWater v0.1.1
> [0dad84c5] ArgTools `@stdlib/ArgTools`
> [56f22d72] Artifacts `@stdlib/Artifacts`
> [2a0f44e3] Base64 `@stdlib/Base64`
> [ade2ca70] Dates `@stdlib/Dates`
> [8bb1440f] DelimitedFiles `@stdlib/DelimitedFiles`
> [8ba89e20] Distributed `@stdlib/Distributed`
> [f43a241f] Downloads `@stdlib/Downloads`
> [b77e0a4c] InteractiveUtils `@stdlib/InteractiveUtils`
> [b27032c2] LibCURL `@stdlib/LibCURL`
> [76f85450] LibGit2 `@stdlib/LibGit2`
> [8f399da3] Libdl `@stdlib/Libdl`
> [37e2e46d] LinearAlgebra `@stdlib/LinearAlgebra`
> [56ddb016] Logging `@stdlib/Logging`
> [d6f4376e] Markdown `@stdlib/Markdown`
> [a63ad114] Mmap `@stdlib/Mmap`
> [ca575930] NetworkOptions `@stdlib/NetworkOptions`
> [44cfe95a] Pkg `@stdlib/Pkg`
> [de0858da] Printf `@stdlib/Printf`
> [3fa0cd96] REPL `@stdlib/REPL`
> [9a3f8284] Random `@stdlib/Random`
> [ea8e919c] SHA `@stdlib/SHA`
> [9e88b42a] Serialization `@stdlib/Serialization`
> [1a1011a3] SharedArrays `@stdlib/SharedArrays`
> [6462fe0b] Sockets `@stdlib/Sockets`
> [2f01184e] SparseArrays `@stdlib/SparseArrays`
> [10745b16] Statistics `@stdlib/Statistics`
> [fa267f1f] TOML `@stdlib/TOML`
> [a4e569a6] Tar `@stdlib/Tar`
> [8dfed614] Test `@stdlib/Test`
> [cf7118a7] UUIDs `@stdlib/UUIDs`
> [4ec0a83e] Unicode `@stdlib/Unicode`
> [e66e0078] CompilerSupportLibraries_jll `@stdlib/CompilerSupportLibraries_jll`
> [deac9b47] LibCURL_jll `@stdlib/LibCURL_jll`
> [29816b5a] LibSSH2_jll `@stdlib/LibSSH2_jll`
> [c8ffd9c3] MbedTLS_jll `@stdlib/MbedTLS_jll`
> [14a3606d] MozillaCACerts_jll `@stdlib/MozillaCACerts_jll`
> [4536629a] OpenBLAS_jll `@stdlib/OpenBLAS_jll`
> [83775a58] Zlib_jll `@stdlib/Zlib_jll`
> [8e850b90] libblastrampoline_jll `@stdlib/libblastrampoline_jll`
> [8e850ede] nghttp2_jll `@stdlib/nghttp2_jll`
> [3f19e933] p7zip_jll `@stdlib/p7zip_jll`
> Testing Running tests...
> Test Summary: | Pass Total
> Practical Salinity, PSS-78 | 3 3
> Test Summary: | Pass Total
> Absolute Salinity, Preformed Salinity and Conservative Temperature | 3 3
> Test Summary: | Pass Total
> Other conversions between Temperatures, Salinities, Entropy, Pressure and Height | 18 18
> Test Summary: | Pass Total
> Specific Volume, Density and Enthalpy | 38 38
> Testing GibbsSeaWater tests passed 
> 
> ```

---

<div class="post-metadata">

**Author:** ![leon](https://avatars.discourse-cdn.com/v4/letter/l/dc4da7/32.png) [@leon](https://discourse.julialang.org/u/leon)\
**Post date:** [December 26, 2021, 1:52pm UTC](https://discourse.julialang.org/t/a-weird-issue-with-julia-1-7-1-on-ubuntu-gibbsseawater-jl-package/73632/3 "2021-12-26T13:52:32Z")

</div>

Thanks! I got a “pass” for my test. Unfortunately, the error persists.

Here is a MAT file with some sample data: [test.mat - Google Drive](https://drive.google.com/file/d/1Ew3zt_ESKnbfjP6-ucIYm_Y-gH0tIYuL/view?usp=sharing)

Here is my code:

```julia
using MAT, GibbsSeaWater;

F1 = matopen("test.mat");
SP = read(F1, "SP");
P = read(F1, "P");
Lon = read(F1, "Lon");
Lat = read(F1, "Lat");
close(F1);

SA = gsw_sa_from_sp.(SP, P, Lon, Lat); # calculate the Absolute salinity

```

---

<div class="post-metadata">

**Author:** ![woclass](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/woclass/32/212699_2.png) [@woclass](https://discourse.julialang.org/u/woclass)\
**Post date:** [December 26, 2021, 3:41pm UTC](https://discourse.julialang.org/t/a-weird-issue-with-julia-1-7-1-on-ubuntu-gibbsseawater-jl-package/73632/4 "2021-12-26T15:41:58Z")

</div>

Simplified test code:

```julia
using GibbsSeaWater

# julia> i=79; (SP[i], P[i], Lon[i], Lat[i])
# (34.05199699401855, 10.0, 377.5, -62.5)

# gsw_sa_from_sp(34.0, 10.0, 377.5, -62.5)
gsw_saar(10.0, 377.5, -62.5)

```

[https://github.com/TEOS-10/GSW-C/blob/13ab33cea0e9059d3b3f3dfef78e9591c94af9f8/gsw\_saar.c#L33-L42](https://github.com/TEOS-10/GSW-C/blob/13ab33cea0e9059d3b3f3dfef78e9591c94af9f8/gsw_saar.c#L33-L42)

Is 377.5 a legal longitude?

```julia
julia> Lon[61:82]
22-element Vector{Float64}:
 359.5
 360.5
 361.5
 362.5
 363.5
 364.5
 365.5
 366.5
 367.5
 368.5
 369.5
 370.5
 371.5
 372.5
 373.5
 374.5
 375.5
 376.5
 377.5
 378.5
 379.5
  20.5

```

~~Next you can compile [GSW-C](https://github.com/TEOS-10/GSW-C) in debug mode, then call gsw\_saar with the same arguments and debug with gdb to find out which line is wrong.~~

[https://github.com/TEOS-10/GSW-C/blob/13ab33cea0e9059d3b3f3dfef78e9591c94af9f8/gsw\_saar.c#L69-L70](https://github.com/TEOS-10/GSW-C/blob/13ab33cea0e9059d3b3f3dfef78e9591c94af9f8/gsw_saar.c#L69-L70)

```julia
Breakpoint 6, gsw_saar (p=10, lon=377.5, lat=-62.5) at gsw_saar.c:69
69 indx0 = floor(0 + (nx-1)*(lon-longs_ref[0])/(longs_ref[nx-1]-
70 longs_ref[0]));
(gdb) p nx
$13 = 91
(gdb) p lon
$14 = 377.5
(gdb) p longs_ref[0]
$15 = 0
(gdb) p longs_ref[nx - 1]
$16 = 360

```

When `lon > 360`, `indx0 > (nx-1)`, which then causes the array (`longs_ref[indx0]`) to go out of bounds.

* * *

I can reproduce the error in WSL (Ubuntu 20.04.3 LTS).

```julia
julia> SA = gsw_sa_from_sp.(SP, P, Lon, Lat);

signal (11): Segmentation fault
in expression starting at REPL[10]:1
gsw_saar at /home/woclass/.julia/packages/GibbsSeaWater/vq3GE/deps/usr/lib/libgswteos-10.so (unknown line)
gsw_sa_from_sp at /home/woclass/.julia/packages/GibbsSeaWater/vq3GE/deps/usr/lib/libgswteos-10.so (unknown line)
gsw_sa_from_sp at /home/woclass/.julia/packages/GibbsSeaWater/vq3GE/src/gen_gswteos10.jl:534 [inlined]

```

On Windows, everything works fine.

> **win REPL**
>
> ```julia
> julia> SA
> 201-element Vector{Float64}:
> 33.978850980733235
> 34.112732625974715
> 34.20779818246909
> 34.26127607610699
> 34.29615007324156
> 34.29711167161423
> 34.28884564139484
> 34.318206662266995
> 34.32395340273992
> 34.33207869075504
> 34.345693213139945
> 34.36708801832739
> 34.374648814324125
> ⋮
> 33.96205590976534
> 33.957670222578585
> 33.948449301367084
> 33.937740328020595
> 33.93005643268858
> 33.92895873943964
> 33.93384238282935
> 33.93726330942629
> 33.93330105293442
> 33.92392157797163
> 33.91456389969976
> 33.908278813955846
> 
> (@v1.7) pkg> st
> Status `C:\Users\woclass\.julia\environments\v1.7\Project.toml`
> [6e4b80f9] BenchmarkTools v1.2.2
> [31a5f54b] Debugger v0.6.8
> [9a22fb26] GibbsSeaWater v0.1.1
> [23992714] MAT v0.10.2
> 
> julia> versioninfo()
> Julia Version 1.7.1
> Commit ac5cc99908 (2021-12-22 19:35 UTC)
> Platform Info:
> OS: Windows (x86_64-w64-mingw32)
> CPU: Intel(R) Core(TM) i5-9400F CPU @ 2.90GHz
> WORD_SIZE: 64
> LIBM: libopenlibm
> LLVM: libLLVM-12.0.1 (ORCJIT, skylake)
> 
> ```

---

<div class="post-metadata">

**Author:** ![ImreSamu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/imresamu/32/20677_2.png) [@ImreSamu](https://discourse.julialang.org/u/ImreSamu)\
**Post date:** [December 26, 2021, 3:47pm UTC](https://discourse.julialang.org/t/a-weird-issue-with-julia-1-7-1-on-ubuntu-gibbsseawater-jl-package/73632/5 "2021-12-26T15:47:20Z")

</div>

Ouch …  
I can replicate the error - with your code … ( Ubuntu20.04 X86-64 + Julia 1.7.1 )

IMHO: You have to create an issue in the project repo:

- [https://github.com/TEOS-10/GibbsSeaWater.jl](https://github.com/TEOS-10/GibbsSeaWater.jl)

> **Crash log - Segmentation fault (core dumped)**
>
> ```julia
> (@v1.7) pkg> ^C
> 
> julia> using MAT, GibbsSeaWater;
> 
> julia> F1 = matopen("test.mat");
> 
> julia> SP = read(F1, "SP");
> 
> julia> P = read(F1, "P");
> 
> julia> Lon = read(F1, "Lon");
> 
> julia> Lat = read(F1, "Lat");
> 
> julia> close(F1);
> 
> julia> SA = gsw_sa_from_sp.(SP, P, Lon, Lat); # calculate the Absolute salinity
> 
> signal (11): Segmentation fault
> in expression starting at REPL[11]:1
> gsw_saar at /home/pella/.julia/packages/GibbsSeaWater/vq3GE/deps/usr/lib/libgswteos-10.so (unknown line)
> gsw_sa_from_sp at /home/pella/.julia/packages/GibbsSeaWater/vq3GE/deps/usr/lib/libgswteos-10.so (unknown line)
> gsw_sa_from_sp at /home/pella/.julia/packages/GibbsSeaWater/vq3GE/src/gen_gswteos10.jl:534 [inlined]
> _broadcast_getindex_evalf at ./broadcast.jl:670 [inlined]
> _broadcast_getindex at ./broadcast.jl:643 [inlined]
> getindex at ./broadcast.jl:597 [inlined]
> macro expansion at ./broadcast.jl:961 [inlined]
> macro expansion at ./simdloop.jl:77 [inlined]
> copyto! at ./broadcast.jl:960 [inlined]
> copyto! at ./broadcast.jl:913 [inlined]
> copy at ./broadcast.jl:885 [inlined]
> materialize at ./broadcast.jl:860
> unknown function (ip: 0x7f00ff86444d)
> _jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
> jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
> jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1788 [inlined]
> do_call at /buildworker/worker/package_linux64/build/src/interpreter.c:126
> eval_value at /buildworker/worker/package_linux64/build/src/interpreter.c:215
> eval_stmt_value at /buildworker/worker/package_linux64/build/src/interpreter.c:166 [inlined]
> eval_body at /buildworker/worker/package_linux64/build/src/interpreter.c:587
> jl_interpret_toplevel_thunk at /buildworker/worker/package_linux64/build/src/interpreter.c:731
> jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:885
> jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:830
> jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:830
> jl_toplevel_eval_in at /buildworker/worker/package_linux64/build/src/toplevel.c:944
> eval at ./boot.jl:373 [inlined]
> eval_user_input at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.7/REPL/src/REPL.jl:150
> repl_backend_loop at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.7/REPL/src/REPL.jl:244
> start_repl_backend at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.7/REPL/src/REPL.jl:229
> #run_repl#47 at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.7/REPL/src/REPL.jl:362
> run_repl at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.7/REPL/src/REPL.jl:349
> _jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
> jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
> #930 at ./client.jl:394
> jfptr_YY.930_40362.clone_1 at /usr/local/julia/lib/julia/sys.so (unknown line)
> _jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
> jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
> jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1788 [inlined]
> jl_f__call_latest at /buildworker/worker/package_linux64/build/src/builtins.c:757
> #invokelatest#2 at ./essentials.jl:716 [inlined]
> invokelatest at ./essentials.jl:714 [inlined]
> run_main_repl at ./client.jl:379
> exec_options at ./client.jl:309
> _start at ./client.jl:495
> jfptr__start_40531.clone_1 at /usr/local/julia/lib/julia/sys.so (unknown line)
> _jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
> jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
> jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1788 [inlined]
> true_main at /buildworker/worker/package_linux64/build/src/jlapi.c:559
> jl_repl_entrypoint at /buildworker/worker/package_linux64/build/src/jlapi.c:701
> main at julia (unknown line)
> __libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
> unknown function (ip: 0x400808)
> Allocations: 19134489 (Pool: 19123101; Big: 11388); GC: 25
> Segmentation fault (core dumped)
> 
> ```

---

<div class="post-metadata">

**Author:** ![ImreSamu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/imresamu/32/20677_2.png) [@ImreSamu](https://discourse.julialang.org/u/ImreSamu)\
**Post date:** [December 26, 2021, 3:50pm UTC](https://discourse.julialang.org/t/a-weird-issue-with-julia-1-7-1-on-ubuntu-gibbsseawater-jl-package/73632/6 "2021-12-26T15:50:37Z")

</div>

I have tested the master version - same result 😢  
`(@v1.7) pkg> add https://github.com/TEOS-10/GibbsSeaWater.jl#master`

- → `Segmentation fault (core dumped)`

---

<div class="post-metadata">

**Author:** ![leon](https://avatars.discourse-cdn.com/v4/letter/l/dc4da7/32.png) [@leon](https://discourse.julialang.org/u/leon)\
**Post date:** [December 26, 2021, 5:33pm UTC](https://discourse.julialang.org/t/a-weird-issue-with-julia-1-7-1-on-ubuntu-gibbsseawater-jl-package/73632/7 "2021-12-26T17:33:21Z")

</div>

@woclass – Thank you so much. This indeed fixes the issue! 👍

@ImreSamu – Yes, I’ll open up an issue there. It is common for my community to use a 20-380 degree system. That way, all the major oceans are in one piece.
