There are quite a few 3rd party extensions causing floating-point
exceptions (e.g. we have to turn off the floating-point traps when
> I tried the recommendation of setting the BOOST_ADAPTBX* env vars,
this doesn't remedy the problem.
Did you get the same traceback? -- That would mean the env vars aren't
defined in the right context. With the env vars defined, there
shouldn't be any tracebacks anymore, just plain "Abort".
You snipped out the most interesting part of the traceback. The first
part is always the Python startup, and anything after
boost::python::handle_exception is just the code producing the
tracebacks. The important clues are somewhere in the middle.
Cameron Mura <firstname.lastname@example.org>
Sent: Sunday, July 5,
2009 12:33:53 PM
draw_symops <-- cctbx(/phenix) broken due to boost segfault handling
Apologies for the message to both mailing lists, but perhaps someone on
either cctbxbb or pymol-users has had some recent experience with
The subject line more-or-less says it all: I'm wondering if anyone has
recently used Rob Campbell's draw_symops (or draw_symops_cctbx) Python
modules with a relatively recent (within past year) version of the
cctbx (particularly the Boost C++
parts) ? I succeeded in doing this a few years ago to generate images
as the ones near the top of http://muralab.org/~cmura/PyMOL/Sandbox/,
but I can't get it to work on my present system (64-bit Fedora
10; Python 2.5.2 with Python 2.6 coexisting).
Below is what happens when I...
1) Initiate a new PyMOL session (using a PyMOL v1.1 that I built
in-place from source, so should be compatible with local python, system
2) load PDB files (tried with a few diff't files; verified that they
contain proper CRYST specifications)
3) do the usual 'run draw_symops_cctbx.py'
4) call draw_symops() -- either implicitly, or by explicit
specification of the u.c.
params (i.e., using
....which crashes the pymol session and yields the following trace:
I tried the recommendation of setting the
BOOST_ADAPTBX* env vars, but
this doesn't remedy the problem.
libc backtrace (48 frames, most recent call last):
_object*) const+0x125) [0x7ff196920635]
(*)(cctbx::sgtbx::space_group const&, unsigned long),
const&, unsigned long> >::operator()(_object*,
Segmentation fault (libc call stack above)
This crash may be due to a problem in any imported
Python module, including modules which are not part
of the cctbx project. To disable the traps leading
to this message, define these environment variables
(e.g. assign the value 1):
This will NOT solve the problem, just mask it, but
may allow you to proceed in case it is not critical.
PyMOL: abrupt program termination.
Also, I tried accomplishing this with many combinations of workflows:
1) old cctbx (e.g., 2005_04_29_1615), latest stable release of cctbx
(2009_02_15_2320), bleeding-edge cctbx (2009_07_04_0143)
2) pre-built cctbx binaries versus building myself from src (for each
of the above), insuring, again, optimal match between local system
3) cctbx alone, cctbx in the context of Phenix, cctbx +/- its own
bundled Python (2.5 and 2.6)
Also, I tried this with different combinations of Rob's scripts --
e.g., the 'symop_axes.dat'-dependent "draw_symops.py", versus
the 'all_axes_new.py'-dependent "draw_symops_cctbx.py". Interestingly,
I found that get_all_axes() from 'all_axes_new.py' works fine for
Investigating the above draw_symops stacktrace led me to this
post from Ralf Grosse-Kunstleve to python-dev:
It looks like exactly the same problem that's causing the
scripts to choke. Also, I can verify that issuing commands such as in
Ralf's post (boost_adaptbx.segmentation_fault,
result in the same segfaults and errors as in his post, so... I believe
this is the crux of it. Before delving into Boost codebase, cctbx's
exception-handling in C++/Python Boost, etc., I'm wondering if anyone
else has seen anything like this...? or has advice on how best to
proceed? Any tips or suggestions would be most greatly appreciated.