optunity icon indicating copy to clipboard operation
optunity copied to clipboard

Spurious crashes and segmentation faults when calling from Julia wrapper

Open jumutc opened this issue 10 years ago • 2 comments

When calling Optunity from julia we sometimes get strange exceptions like:

ERROR: LoadError: PyError (:PyObject_Call) <type 'exceptions.AttributeError'>
AttributeError("'CallLog' object has no attribute '_lock'",)
  File "/users/stadius/vjumutc/Research/Repositories/optunity/optunity/api.py", line 212, in minimize
    pmap=pmap)
  File "/users/stadius/vjumutc/Research/Repositories/optunity/optunity/api.py", line 245, in optimize
    solution, report = solver.optimize(f, maximize, pmap=pmap)
  File "/users/stadius/vjumutc/Research/Repositories/optunity/optunity/solvers/Sobol.py", line 144, in optimize
    scores = pmap(fwrap, scaled)
  File "/users/stadius/vjumutc/Research/Repositories/optunity/optunity/solvers/Sobol.py", line 137, in fwrap
    return f(**kwargs)
  File "/users/stadius/vjumutc/Research/Repositories/optunity/optunity/functions.py", line 299, in wrapped_f
    value = wrapped_f.call_log.get(*args, **kwargs)
  File "/users/stadius/vjumutc/Research/Repositories/optunity/optunity/functions.py", line 138, in get
    return self.data.get(Args(*args, **kwargs), None)
  File "/users/stadius/vjumutc/Research/Repositories/optunity/optunity/functions.py", line 130, in data
    with self.lock:
  File "/users/stadius/vjumutc/Research/Repositories/optunity/optunity/functions.py", line 125, in lock
    return self._lock

or even segmentation faults. This is definitely a problem related to GC and how many times callbacks in julia are evaluated from Optunity.

Please refer to the recent pull request #56.

jumutc avatar Oct 01 '15 13:10 jumutc

As this appears to be a bug in the Julia-Python interface, we can't fix this ourselves.

claesenm avatar Oct 01 '15 13:10 claesenm

Probably we should wait for some updates in PyCall.jl package. I will try to figure out a nice example to report this issue in https://github.com/stevengj/PyCall.jl

jumutc avatar Oct 01 '15 13:10 jumutc