Giter VIP home page Giter VIP logo

Comments (9)

adamierymenko avatar adamierymenko commented on May 26, 2024

This looks like a memory management issue related to object life cycles. I'm going to try to duplicate and do a bit of analysis in valgrind.

Hmm... good point about debug vs. release builds. Maybe I should keep all builds debug for now.

from zerotierone.

adamierymenko avatar adamierymenko commented on May 26, 2024

I was unable to exactly duplicate this one, but I did fix a race condition bug in 0.4.1. See if this crops up again. I'm going to continue testing and trying to duplicate this one myself.

from zerotierone.

adamierymenko avatar adamierymenko commented on May 26, 2024

By the way, can you describe the platform? Linux version, distro, etc.? That might be helpful.

from zerotierone.

pwaller avatar pwaller commented on May 26, 2024

Same platform/distro as #13. Still getting the same backtrace.

I ran valgrind:

==18354== ERROR SUMMARY: 55772 errors from 182 contexts (suppressed: 2 from 2)

Do you have a valgrind suppression file? If so, can you commit it? There is a lot of stuff coming from ecdsa_do_sign for example. If you can generate a suppression file for all of the "known" errors you get, I can send you the list of whatever remains.

from zerotierone.

adamierymenko avatar adamierymenko commented on May 26, 2024

No, but I should make one. I ran valgrind and saw a ton of errors in the libcrypto bignum library... which kind of worries me slightly. libcrypto is very mature, so I'm assuming it's okay. :)

from zerotierone.

adamierymenko avatar adamierymenko commented on May 26, 2024

OpenSSL warnings are normal: http://openssl.6102.n7.nabble.com/valgrind-warnings-for-0-9-8b-td6228.html

Apparently they use some uninitialized memory as one of their sources of randomness. I'll have to make a valgrind exclude file for pretty much all the libcrypto stuff.

from zerotierone.

adamierymenko avatar adamierymenko commented on May 26, 2024

The OpenSSL thing is very irritating... looks like every uninitialized value warning can be traced to the fact that libcrypto pulls some of its random entropy from uninitialized memory. If I had this to write over again, I'd use libcrypto++. Might convert it some day, but it's not high priority.

I did simplify some code in EllipticCurveKey and added code to throw std::out_of_range on range errors. But I can't duplicate your exact crash either on Mac or on my Linux physical box or my Linux VM. I committed it. No version.h change since it's such a tiny thing.

from zerotierone.

adamierymenko avatar adamierymenko commented on May 26, 2024

A huge valgrind cleanup effort has been committed: version 0.4.2. Try it now and post the error if it's still there. (I also fixed a possible unsafe op, so it may be gone now.)

from zerotierone.

pwaller avatar pwaller commented on May 26, 2024

Segfault is gone. #13 Still persists though.

from zerotierone.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.