JuliaPy / JuliaPy/PyCall.jl

Calling `pywrap` on the Python3 `inspect` module hangs (Linux)

Open
#252 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Julia
Stars
1.5k
Forks
186
PR merge metrics
No merged PRs in 30d

Description

I get a hang/lockup when I try to `pywrap` the `inspect` python library when using Python3.4. CPU is pegged at 100% on a single core. There is no problem when using Python2.7. I had a friend replicate this under a fresh vagrant install, and then also had a hang under Python3.4 but not Python 2.7 (in their case, running Julia 0.3.x).

I assume this has something to do with the internal use of the 'inspect' module within PyCall, but i'm not certain.

CC: @porterjamesj

Details below; the hang is on the last line. I would expect instead that "**anon**" (a module) would be returned.

```
julia> versioninfo()
Julia Version 0.4.3
Commit a2f713d (2016-01-12 21:37 UTC)
Platform Info:
System: Linux (x86_64-unknown-linux-gnu)
CPU: Intel(R) Core(TM) i7-2620M CPU @ 2.70GHz
WORD_SIZE: 64
BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Sandybridge)
LAPACK: libopenblas64_
LIBM: libopenlibm
LLVM: libLLVM-3.3

julia> versioninfo()
Julia Version 0.4.3
Commit a2f713d (2016-01-12 21:37 UTC)
Platform Info:
System: Linux (x86_64-unknown-linux-gnu)
CPU: Intel(R) Core(TM) i7-2620M CPU @ 2.70GHz
WORD_SIZE: 64
BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Sandybridge)
LAPACK: libopenblas64_
LIBM: libopenlibm
LLVM: libLLVM-3.3

julia> Pkg.status("PyCall")
- PyCall 1.4.0

julia> ENV["PYTHON"] = "/usr/bin/python3.4"
"/usr/bin/python3.4"

julia> Pkg.build("PyCall")
INFO: Building PyCall
INFO: PyCall is using /usr/bin/python3.4 (Python 3.4.2) at /usr/bin/python3.4, libpython = libpython3.4m

julia> using PyCall
INFO: Recompiling stale cache file /home/bnewbold/.julia/lib/v0.4/PyCall.ji for module PyCall.

julia> pywrap(pyimport("os"))
__anon__

julia> pywrap(pyimport("math"))
__anon__

julia> pywrap(pyimport("inspect"))
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Reproduce the hang with Julia 0.4.3, PyCall 1.4.0, Python 3.4, and pywrap(pyimport("inspect")), comparing it with the os and math examples and Python 2.7. Start by tracing pywrap and PyCall's internal use of Python's inspect module. Done means the inspect call no longer hangs and returns the expected __anon__ module result.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia, python
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.