Skip to content
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

Make sure we always compile with BOOST_CB_ENABLE_DEBUG set to 0 #8067

Merged
merged 2 commits into from Jul 12, 2019

Conversation

@rgacogne
Copy link
Member

@rgacogne rgacogne commented Jul 11, 2019

Short description

Even though the documentation states that:

simultaneous read accesses to a shared circular_buffer are safe

boost::circular_buffer < 1.62 was built with a debugging facility by default that made it unsafe to access the same circular buffer from more than one thread at once, in addition to making iterator operations slower.

It's only a real issue in dnsdist since our DNS over TLS code is the only place where we read from a circular buffer from several threads at once, but this change might provide a small performance boost in the auth and rec as well on platforms where boost is older than 1.62.

Note that I have compiled and tested this code only on Arch, we need to test it on other distributions before merging this PR, especially ones with a boost version lesser than 1.62.

Checklist

I have:

  • read the CONTRIBUTING.md document
  • compiled this code
  • tested this code
  • included documentation (including possible behaviour changes)
  • documented the code
  • added or modified regression test(s)
  • added or modified unit test(s)
@omoerbeek
Copy link
Member

@omoerbeek omoerbeek commented Jul 12, 2019

Works fine on OpenBSD (boost 1.66, so that is no surprise). Checked that the only direct ref to boost/circular_buffer.hpp is in the new header file. I don not have a system with older boost at hand.

Loading

@rgacogne
Copy link
Member Author

@rgacogne rgacogne commented Jul 12, 2019

Just tested it on CentOS 7, it doesn't work as expected because BOOST_CB_ENABLE_DEBUG is blindly overridden, we need to set BOOST_CB_DISABLE_DEBUG to 1 instead. Fix coming.

Loading

@rgacogne rgacogne merged commit 0038649 into PowerDNS:master Jul 12, 2019
26 checks passed
Loading
@rgacogne rgacogne deleted the circular_buffer_nodebug branch Jul 12, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

3 participants