-
Notifications
You must be signed in to change notification settings - Fork 187
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
remove() causes "double free or corruption (fasttop)" when using gnu #2437
Comments
GCC is our primary targeted compiler, so this definitely shouldn't be happening there if it doesn't happen on Intel. Removing particles is a supported operation, so please provide your script (or ideally, a minimal script that exhibits the error) so we can try to reproduce and fix the bug. |
Please also report the version of Espresso you are using (or git commit
hash)
|
On what platform are you? 32 or 64 bit? |
@RudolfWeeber, I seem to recall we fixed that as part of the i386 support, so we must have forgotten to cherry-pick that to 4.0.1. I can't find the pull request though. |
I'm using an 64bit Intel processor on both machines:
I'm using espresso-4.0.0 (I downloaded the zip file from the website). I'll try get a minimum working script up here by the end of the day. Thanks, |
I'm using an 64bit Intel processor on both machines:
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
Model name: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz
Are you using a 64bit or 32bit operation system?
We currently only see this in a 32bit docker container.
I'm using espresso-4.0.0 (I downloaded the zip file from the website).
We think we fixed the issue in the current development branch, which you can download at
https://github.com/espressomd/espresso/archive/python.zip
Our candidate branch for the 4.0.1 bugfix release still seems to have the issue on i386, but we don't see it on amd64.
|
We never saw it on 64-bit, but it was an actual bug that might also surface on non-32-bit for certain parameters. |
I've been able to reproduce this behavior with a simple script (attached). I run the script with:
As some point during the run, I see the error:
It doesn't always fail on id 0, sometimes it takes a few iterations. I've also tried this with the espresso version 4.0.1 from the link above, but I still see this issue. Playing around with my test script, I notice that of I comment out the section where I set up bonded interactions between pairs of particles, I no longer experience a crash. Do I have to remove/disable a bonded interaction before I remove a particle? I'm using a 64bit OS (ubuntu 18.04 and 16.04). I've also attached myconfig.hpp, in case the error is related to a specific module I'm using. |
This seems to be working on the current development branch. The script also passes with pr #2441 for the 4.0.1 candidate branch. |
Do you have any other suggestions of things I could try to get to the bottom of this? It must be something to do with how I am compiling the binary. To build I do:
I also tried building the latest binary on github but I am still seeing the issue. Even running pypresso with a single core I can see the issue:
My gcc version is:
|
It's an Espresso bug, fixed by #2410. Please either use the current version from Git or wait a few days until we release version 4.0.1, which contains that patch. |
On Tue, Jan 15, 2019 at 02:42:48PM +0000, Lotuspaperboy wrote:
Do you have any other suggestions of things I could try to get to the bottom of this? It must be something to do with how I am compiling the binary. To build I do:
Sorry, we were probably not clear enough.
This is a bug in the 4.0.0 release. To avoid it, you can either use the current development branch (named "python" on github) or the "4.0.1" branch with pull request 2441 merged.
|
Thanks Rudolf, I downloaded and compiled the 4.0.1 branch and I'm now no longer seeing the issue. I'll run my main script again overnight but it looks like issue has been solved. Thanks! |
I'm a running the same python script on three different machines. On one machine I have pypresso compiled with icc and on the other two I have pypresso compiled with gcc. My code runs find on the icc machine. However, the same python script crashes in the same place on the two gcc machines:
which gives the output:
as you can see the particle definitely existed before the remove() command was called. On different runs, the loop can get through between 1-3 iterations of the loop before crashing. This inconsistency points to some sort of threading issue.
Is there anything different that needs to be done when compiling with gcc than compared with icc? I can reproduce this issue so let me know if you require any other info.
The text was updated successfully, but these errors were encountered: