-
Notifications
You must be signed in to change notification settings - Fork 6
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
Defining DRECORD_MALLOCS can cause a Segmentation Fault on malloced_roaring_benchmarks (Sun Solaris) #3
Comments
Thank you for raising the issue. |
What happens if you type I expect that the script will run through... reporting a few harmless core dumps. If you are not interested in benchmarking memory usage, you can simply ignore these failed tests. I would expect that if type
Why would
We want to be benchmarking memory usage. I feel that it is important to try to compare fairly memory usage, as part of the benchmark. As I stated above, if you don't care about getting these numbers, just ignore this particular part of the benchmark.
It is not part of the C standard, for sure. But we need some way to track memory usage and I don't know a better way. As far as I can tell, what we do is the standard approach. I'd love to be corrected though! Your stack trace seems to indicate that the problem occurs with the
So what could go wrong? Formally speaking, we should check that The fact that you need It is possible that
|
Exactly as you say, I can of course ignore theses core dumps (or better yet modify all.sh).
without -m64 the macro RDTSC_START in roaring_benchmarks.c causes gcc errors - most likely due to my older compiler (I will try a more recent one soon):
I have had good luck with dmalloc from http://dmalloc.com/ granted it really slows things down but it does a lot more than just "statistics". If you want I could remove the DRECORD_MALLOCS and try things with the dmalloc library I mention.
My ldd output
|
Yes! Pull Request invited! |
Disclaimer I run an "old" gcc compiler so maybe that's the problem, but I still thought I would share.
Note, it seems like -DRECORD_MALLOCS causes a failure scenario on my system with the "malloced_roaring_benchmarks" if it is compiled as per the default in the Makefile.
If I remove the flag -DRECORD_MALLOCS from the Makefile the make file everything works.
The following is what happens if I leave -DRECORD_MALLOCS active, e.g. the failure mode. On another note, should we actually doing benchmarks while recording allocated memory anyway by default ?
We experience a "Segmentation Fault" on the call to libc_malloc(...) on line 15 of this header file "src/cmemcounter.h" which is used to track memory - usage perhaps this is not entirely safe
My Server config (recent SmartOS VM with a zone limited to just 4GB, gcc 4.7.4):
In order to get things to compile (old gcc/g++ stack) I changed the following three (3) files:
It seems all the runs of ./malloced_roaring_benchmarks fail with a Segmentation Fault except one which hangs (or seems to hang) this exception is census1881_srt. I will only show what happens for the more typical Segmentation Fault case.
Running the the same command above under truss
looking at the generated core file in this case "core.malloced_roaring.89085"
The text was updated successfully, but these errors were encountered: