segfault with the CohesiveTriaxialTest

Bug #582516 reported by flomine
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Yade
Fix Released
Undecided
Václav Šmilauer

Bug Description

Hi all,
with revision 2238 and with the xml given by the CohesiveTriaxialTest preprocessor. I have a segfault.
It seems to be related to CohesiveFrictionalContactLaw.
The gdb output is given below.

This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
[Thread debugging using libthread_db enabled]
[New Thread 0x7fc03b88e710 (LWP 16124)]
[New Thread 0x7fc03e8cb710 (LWP 16123)]
[New Thread 0x7fc044aac710 (LWP 16082)]
[New Thread 0x7fc0463b2710 (LWP 16081)]
[New Thread 0x7fc046bb3710 (LWP 16080)]
0x00007fc05f9b7fb3 in select () at ../sysdeps/unix/syscall-template.S:82
82 ../sysdeps/unix/syscall-template.S: Aucun fichier ou dossier de ce type.
 in ../sysdeps/unix/syscall-template.S
No symbol "info" in current context.

Thread 6 (Thread 0x7fc046bb3710 (LWP 16080)):
#0 0x00007fc05f9b7fb3 in select () at ../sysdeps/unix/syscall-template.S:82
#1 0x00000000004f7013 in ?? ()
#2 0x00000000004a7c5e in PyEval_EvalFrameEx ()
#3 0x00000000004a9671 in PyEval_EvalCodeEx ()
#4 0x0000000000537620 in ?? ()
#5 0x000000000041f0c7 in PyObject_Call ()
#6 0x0000000000427dff in ?? ()
#7 0x000000000041f0c7 in PyObject_Call ()
#8 0x00000000004a1b03 in PyEval_CallObjectWithKeywords ()
#9 0x00000000004d7d3d in ?? ()
#10 0x00007fc060ae29ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#11 0x00007fc05f9bf69d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#12 0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7fc0463b2710 (LWP 16081)):
#0 0x00007fc05f9b7fb3 in select () at ../sysdeps/unix/syscall-template.S:82
#1 0x00000000004f7013 in ?? ()
#2 0x00000000004a7c5e in PyEval_EvalFrameEx ()
#3 0x00000000004a9671 in PyEval_EvalCodeEx ()
#4 0x0000000000537620 in ?? ()
#5 0x000000000041f0c7 in PyObject_Call ()
#6 0x0000000000427dff in ?? ()
#7 0x000000000041f0c7 in PyObject_Call ()
#8 0x00000000004a1b03 in PyEval_CallObjectWithKeywords ()
#9 0x00000000004d7d3d in ?? ()
#10 0x00007fc060ae29ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#11 0x00007fc05f9bf69d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#12 0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7fc044aac710 (LWP 16082)):
#0 0x00007fc05f9b7fb3 in select () at ../sysdeps/unix/syscall-template.S:82
#1 0x00007fc05c9b3b74 in QEventLoop::processEvents(unsigned int) () from /usr/lib/libqt-mt.so.3
#2 0x00007fc05ca19431 in QEventLoop::enterLoop() () from /usr/lib/libqt-mt.so.3
#3 0x00007fc05ca192e2 in QEventLoop::exec() () from /usr/lib/libqt-mt.so.3
#4 0x00007fc05e68eb70 in thread_proxy () from /usr/lib/libboost_thread.so.1.40.0
#5 0x00007fc060ae29ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#6 0x00007fc05f9bf69d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7 0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7fc03e8cb710 (LWP 16123)):
#0 0x00007fc05f982f7d in __libc_waitpid (pid=16125, stat_loc=<value optimized out>, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:41
#1 0x00007fc05f91a7e9 in do_system (line=<value optimized out>) at ../sysdeps/posix/system.c:149
#2 0x00007fc05f91ab20 in __libc_system (line=<value optimized out>) at ../sysdeps/posix/system.c:190
#3 0x00007fc05ef5e374 in crashHandler (sig=11) at core/main/pyboot.cpp:45
#4 <signal handler called>
#5 0x00007fc04b8d604d in Law2_ScGeom_CohFrictPhys_ElasticPlastic::go (this=0x3634f70, ig=<value optimized out>, ip=<value optimized out>, contact=0x3635230, ncb=0x2f86500) at /home/flomine/Documents_gem/programmation/yade/yade-dev/pkg/dem/Engine/GlobalEngine/CohesiveFrictionalContactLaw.cpp:85
#6 0x00007fc04b8d1999 in CohesiveFrictionalContactLaw::action (this=0x2f4afe0) at /home/flomine/Documents_gem/programmation/yade/yade-dev/pkg/dem/Engine/GlobalEngine/CohesiveFrictionalContactLaw.cpp:47
#7 0x00007fc05a716803 in Scene::moveToNextTimeStep (this=0x2f86500) at /home/flomine/Documents_gem/programmation/yade/yade-dev/core/Scene.cpp:87
#8 0x00007fc05a716f1c in SimulationFlow::singleAction (this=0x24ce720) at /home/flomine/Documents_gem/programmation/yade/yade-dev/core/SimulationFlow.cpp:18
#9 0x00007fc05a708591 in ThreadWorker::callSingleAction (this=0x24ce720) at /home/flomine/Documents_gem/programmation/yade/yade-dev/core/ThreadWorker.cpp:71
#10 0x00007fc05a70c931 in ThreadRunner::call (this=0x2545d60) at /home/flomine/Documents_gem/programmation/yade/yade-dev/core/ThreadRunner.cpp:53
#11 0x00007fc05a71647b in ThreadRunner::run (this=0x2545d60) at /home/flomine/Documents_gem/programmation/yade/yade-dev/core/ThreadRunner.cpp:27
#12 0x00007fc05a76215f in boost::function0<void>::operator() (this=<value optimized out>) at /usr/include/boost/function/function_template.hpp:1013
#13 boost::detail::thread_data<boost::function0<void> >::run (this=<value optimized out>) at /usr/include/boost/thread/detail/thread.hpp:56
#14 0x00007fc05e68eb70 in thread_proxy () from /usr/lib/libboost_thread.so.1.40.0
#15 0x00007fc060ae29ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#16 0x00007fc05f9bf69d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#17 0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7fc03b88e710 (LWP 16124)):
#0 0x00007fc05aa4f16a in ?? () from /usr/lib/libgomp.so.1
#1 0x00007fc05aa4da16 in ?? () from /usr/lib/libgomp.so.1
#2 0x00007fc060ae29ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#3 0x00007fc05f9bf69d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#4 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7fc060eed700 (LWP 16079)):
#0 0x00007fc05f9b7fb3 in select () at ../sysdeps/unix/syscall-template.S:82
#1 0x00007fc03f9a7a70 in ?? () from /usr/lib/python2.6/lib-dynload/readline.so
#2 0x0000000000525622 in PyOS_Readline ()
#3 0x000000000049db06 in ?? ()
#4 0x00000000004a7c5e in PyEval_EvalFrameEx ()
#5 0x00000000004a9671 in PyEval_EvalCodeEx ()
#6 0x00000000004a7809 in PyEval_EvalFrameEx ()
#7 0x00000000004a9671 in PyEval_EvalCodeEx ()
#8 0x00000000004a7809 in PyEval_EvalFrameEx ()
#9 0x00000000004a9671 in PyEval_EvalCodeEx ()
#10 0x00000000004a7809 in PyEval_EvalFrameEx ()
#11 0x00000000004a9671 in PyEval_EvalCodeEx ()
#12 0x0000000000537620 in ?? ()
#13 0x000000000041f0c7 in PyObject_Call ()
#14 0x0000000000427dff in ?? ()
#15 0x000000000041f0c7 in PyObject_Call ()
#16 0x000000000042708d in ?? ()
#17 0x000000000041f0c7 in PyObject_Call ()
#18 0x00000000004a7378 in PyEval_EvalFrameEx ()
#19 0x00000000004a9671 in PyEval_EvalCodeEx ()
#20 0x00000000004a9742 in PyEval_EvalCode ()
#21 0x00000000004c9a0e in PyRun_FileExFlags ()
#22 0x00000000004c9c24 in PyRun_SimpleFileExFlags ()
#23 0x000000000041a7ff in Py_Main ()
#24 0x00007fc05f8f7c4d in __libc_start_main (main=<value optimized out>, argc=<value optimized out>, ubp_av=<value optimized out>, init=<value optimized out>, fini=<value optimized out>, rtld_fini=<value optimized out>, stack_end=0x7fff55eab498) at libc-start.c:226
#25 0x00000000004199f9 in _start ()
Erreur de segmentation

Related branches

Revision history for this message
Václav Šmilauer (eudoxos) wrote :

It runs smoothly with 2218, but segfaults with 2238 as you say (with both wm3 and eigen builds). I think this is Bruno's stuff.

Changed in yade:
assignee: nobody → Chareyre (bruno-chareyre)
status: New → Confirmed
Revision history for this message
Bruno Chareyre (bruno-chareyre) wrote : Re: [Yade-dev] [Bug 582516] [NEW] segfault with the CohesiveTriaxialTest

Thank you for reporting. Unfortunately, I cannot compile with debug
symbols now, and I don't have much time.
You will have to wait or find the bug. The strange part is nothing has
been modified in CohesiveFrictional classes between r2218 and r2228.

Are you using CFTTest by the way?

Bruno

Revision history for this message
Bruno Chareyre (bruno-chareyre) wrote :

I think the crash has been introduced in r2222.

This is ok, but it will crash when dt is used :

Real& dt = scene->dt

This is causing instant crash (randomly, I could run one simulation normally after repeated attempts) :

Real dt = scene->dt;

Changed in yade:
assignee: Chareyre (bruno-chareyre) → Václav Šmilauer (eudoxos)
Revision history for this message
Bruno Chareyre (bruno-chareyre) wrote :

This code :

void Law2_ScGeom_CohFrictPhys_ElasticPlastic::go(shared_ptr<InteractionGeometry>& ig, shared_ptr<InteractionPhysics>& ip, Interaction* contact, Scene* ncb)
{
 cerr << "CFL starts"<<endl;
 cerr << (scene ? "yep" : "no") << endl;
 Real dt = scene->dt;

results in :

CFL starts
no
Erreur de segmentation

Revision history for this message
flomine (flomine) wrote : Re: [Yade-dev] [Bug 582516] [NEW] segfault with the CohesiveTriaxialTest

Hi Bruno,

> Are you using CFTTest by the way?

No I am not using CFTTest. But I am using CohesiveFrictionalContactLaw
with an old revision. Sometimes, I test the last revision to see how
things have changed. And when I find a bug, I report it. This is the
less I can do. So don't worry, I can wait ;-)
BTW, thanks to all yade developpers for your great job.

Cheers, Franck

flomine (flomine)
Changed in yade:
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.