Boost Pointer Assertion when running yade in parallel

Asked by simon.michnowicz on 2019-05-06

Dear Group,
I am a sys-admin assisting a researcher using yade. His problem works OK with yade in single threaded mode, but when he tried to make it parallel ( -j 4) he gets a Boost pointer assertion failure. Is anybody able to assist with this error?

We are using yade 1.20.0, running inside a Xenial Singularity container, with yade installed via the package managers

singularity exec /usr/local/yade/1.20.0-cpu/bin/yade-cpu.img yade -j4 ./Clump.py
Welcome to Yade 1.20.0
TCP python prompt on localhost:9000, auth cookie `cyudss'
XMLRPC info provider on http://localhost:21000
Running script ./Clump.py
./Clump.py:544: SyntaxWarning: name 'direct' is assigned to before global declaration
  global direct, cc
./Clump.py:544: SyntaxWarning: name 'cc' is assigned to before global declaration
  global direct, cc
 python: /usr/include/boost/smart_ptr/shared_ptr.hpp:648: typename boost::detail::sp_member_access<T>::type boost::shared_ptr<T>::operator->() const [with T = Body; typename boost::detail::sp_member_access<T>::type = Body*]: Assertion `px != 0' failed.
python: /usr/include/boost/smart_ptr/shared_ptr.hpp:648: typename boost::detail::sp_member_access<T>::type boost::shared_ptr<T>::operator->() const [with T = Body; typename boost::detail::sp_member_access<T>::type = Body*]: Assertion `px != 0' failed.
python: /usr/include/boost/smart_ptr/shared_ptr.hpp:648: typename boost::detail::sp_member_access<T>::type boost::shared_ptr<T>::operator->() const [with T = Body; typename boost::detail::sp_member_access<T>::type = Body*]: Assertion `px != 0' failed.
Aborted (core dumped)

thanks
Simon Michnowicz

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
simon.michnowicz
Solved:
2019-05-13
Last query:
2019-05-13
Last reply:
2019-05-06
Jérôme Duriez (jduriez) said : #1

Hi,

Hard (impossible ?) to tell without Clump.py I guess...
Note that you(r colleague) do(es) need to shorten the script at most to help us help you.

Jérôme

Minh Huynh (minhhuynh) said : #2

Hi Duriez,

I am the one who has this problem and asked my friend to help me to post this topic. I can run YADE code with spherical packing. However, when try to make clump packing, this problem occurs when I use parallel simulation (-j4) (I have no trouble with single core). The code to generate Clump is below. Could you please help me to solve this problem?! Thank you very much for your time and consideration!

Sincerely,
Nhat Minh Huynh

sp=pack.SpherePack()
sp.makeCloud(mn,mx,psdSizes=psdSizes1,psdCumm=psdCumm1,num=num_spheres,periodic=False,seed=1,distributeMass=True)
O.bodies.append([sphere(center,rad,material='spheres') for center,rad in sp])
templates=[]
templates.append(clumpTemplate(relRadii=[.65,1,.65],relPositions=[[0.75,0,0],[0,0,0],[-0.75,0,0]]))
O.bodies.replaceByClumps(templates,[1.0],discretization=50)

Janek Kozicki (cosurgi) said : #3

We need a MWE to reproduce this. Not part of it. https://yade-dev.gitlab.io/trunk/user.html#questions-and-answers

Also would be useful if you compile yade with -DDEBUG=1 then you could produce a complete stacktrace. Maybe you will need to fix permissions for that: https://yade-dev.gitlab.io/trunk/introduction.html?highlight=ptrace#id4

Janek,
I built yade-daily from src with DEBUG enabled, and the error went away. Thanks for your assistance.
regards
Simon