# \`@everywhere using\` fails for stdlib functions in distribution binaries

**URL:** <https://discourse.julialang.org/t/everywhere-using-fails-for-stdlib-functions-in-distribution-binaries/30907>\
**Category:** Internals & Design\
**Tags:** question\
**Created:** [November 10, 2019, 1:28am UTC](https://discourse.julialang.org/t/everywhere-using-fails-for-stdlib-functions-in-distribution-binaries/30907 "2019-11-10T01:28:59Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![singularitti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/singularitti/32/17678_2.png) [@singularitti](https://discourse.julialang.org/u/singularitti)\
**Post date:** [November 10, 2019, 1:29am UTC](https://discourse.julialang.org/t/everywhere-using-fails-for-stdlib-functions-in-distribution-binaries/30907/1 "2019-11-10T01:29:00Z")

</div>

Is this a bug?

 ![image](https://global.discourse-cdn.com/julialang/original/3X/7/0/70a3abbac8750b0f2e6cb805f31cb1cded56fa33.png)

```julia
julia> using Distributed

julia> addprocs(4)
4-element Array{Int64,1}:
 2
 3
 4
 5

julia> using Distributed

julia> @everywhere using DistributedArrays
ERROR: ArgumentError: Package DistributedArrays not found in current path:
- Run `import Pkg; Pkg.add("DistributedArrays")` to install the DistributedArrays package.

Stacktrace:
 [1] require(::Module, ::Symbol) at ./loading.jl:885
 [2] top-level scope at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.4/Distributed/src/macros.jl:199

```

I do not have `DistributedArrays` installed. And if I want to use it `@everywhere`, the `Stacktrace[2]` will report a place:

```julia
/Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.4/Distributed/src/macros.jl:199

```

, which is nowhere on my computer. Should it be

```julia
/Applications/Julia-1.4.app/Contents/Resources/julia/share/julia/stdlib/v1.4/Distributed/src/macros.jl

```

It looks similar to another [issue](https://github.com/JuliaLang/julia/issues/26314), but that was [fixed](https://github.com/JuliaLang/julia/pull/32763#issuecomment-542611632).

```julia
julia> versioninfo()
Julia Version 1.4.0-DEV.435
Commit 3b11bf3add (2019-11-06 20:42 UTC)
Platform Info:
  OS: macOS (x86_64-apple-darwin18.6.0)
  CPU: Intel(R) Xeon(R) W-2140B CPU @ 3.20GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.1 (ORCJIT, skylake)
Environment:
  JULIA_NUM_THREADS = 16
  JULIA_EDITOR = code

```

---

<div class="post-metadata">

**Author:** ![jling](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jling/32/212909_2.png) [@jling](https://discourse.julialang.org/u/jling)\
**Post date:** [November 10, 2019, 6:25am UTC](https://discourse.julialang.org/t/everywhere-using-fails-for-stdlib-functions-in-distribution-binaries/30907/2 "2019-11-10T06:25:33Z")

</div>

```julia
(v1.2) pkg> add DistributedArrays
  Updating registry at `C:\Users\jerry\.julia\registries\General`
  Updating git-repo `https://github.com/JuliaRegistries/General.git`
 Resolving package versions...
 Installed TimerOutputs ────── v0.5.1
 Installed AdvancedHMC ─────── v0.2.13
 Installed Primes ──────────── v0.4.0
 Installed FFTW ────────────── v1.1.0
....

julia> using Distributed

julia> addprocs(4)
4-element Array{Int64,1}:
 2
 3
 4
 5

julia> @everywhere using DistributedArrays
[Info: Precompiling DistributedArrays [aaf54ef3-cdf8-58ed-94cc-d582ad619b94]

julia> versioninfo()
Julia Version 1.2.0
Commit c6da87ff4b (2019-08-20 00:03 UTC)
Platform Info:
  OS: Windows (x86_64-w64-mingw32)
  CPU: AMD Ryzen 9 3900X 12-Core Processor
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.1 (ORCJIT, znver1)
Environment:
  JULIA_NUM_THREADS = 10  

```

---

<div class="post-metadata">

**Author:** ![singularitti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/singularitti/32/17678_2.png) [@singularitti](https://discourse.julialang.org/u/singularitti)\
**Post date:** [November 10, 2019, 6:33am UTC](https://discourse.julialang.org/t/everywhere-using-fails-for-stdlib-functions-in-distribution-binaries/30907/3 "2019-11-10T06:33:46Z")

</div>

> [@singularitti](#):
>
> ```julia
> /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.4/Distributed/src/macros.jl:199
> 
> ```

Sorry, I did not make it clear. My point is not I cannot `@everywhere using DistributedArrays`. It is if I cannot run it, the stacktrace returns

```julia
/Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.4/Distributed/src/macros.jl:199

```

but not

```julia
/Applications/Julia-1.4.app/Contents/Resources/julia/share/julia/stdlib/v1.4/Distributed/src/macros.jl

```

I was wondering why the path to `macro.jl` is not correct. Is it a similar issute to [this](https://github.com/JuliaLang/julia/issues/26314)?

---

<div class="post-metadata">

**Author:** ![jling](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jling/32/212909_2.png) [@jling](https://discourse.julialang.org/u/jling)\
**Post date:** [November 10, 2019, 7:03am UTC](https://discourse.julialang.org/t/everywhere-using-fails-for-stdlib-functions-in-distribution-binaries/30907/4 "2019-11-10T07:03:58Z")

</div>

> [@singularitti](#):
>
> julia\> @everywhere using DistributedArrays

but this line gave you the error, no? the errors are from distributed workers, because you didn’t `add` the package before adding procs (I think

---

<div class="post-metadata">

**Author:** ![singularitti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/singularitti/32/17678_2.png) [@singularitti](https://discourse.julialang.org/u/singularitti)\
**Post date:** [November 10, 2019, 7:15am UTC](https://discourse.julialang.org/t/everywhere-using-fails-for-stdlib-functions-in-distribution-binaries/30907/5 "2019-11-10T07:15:05Z")

</div>

Since the error is from `v1.4/Distributed/src/macros.jl`, I think it is a problem of my Julia v1.4 distribution. I am not sure what a `buildbot/worker` is. One thing I know is that before [this](https://github.com/JuliaLang/julia/issues/26314) issue was fixed, `edit`ing or `less`ing some code in standard libraries will also throw an error from a path `/buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.2/InteractiveUtils/src/editless.jl`, which is not a real path on users’ computers. You can use Julia v1.2.0 to `edit` some code in a standard library to see this. So I am suggesting there might be a leftover bug that the path was not entirely fixed.

```julia
julia> edit(parse(IPv4, "127.0.0.1"))
ERROR: object is not callable
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] functionloc at ./reflection.jl:1150 [inlined]
 [3] edit(::IPv4) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.2/InteractiveUtils/src/editless.jl:99
 [4] top-level scope at REPL[3]:1

julia> versioninfo()
Julia Version 1.2.0
Commit c6da87ff4b (2019-08-20 00:03 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.1 (ORCJIT, broadwell)
Environment:
  JULIA_NUM_THREADS = 12

```
