Friday 31 January 2014 at 09:47 am
Last week we had several reports of disconnections to some of our haproxy fronted services after we upgraded to a longer/stronger SSL certificate. As the version of haproxy we are running is quite old, we tried an upgrade to the latest (dev21). This fixed the disconnections, but after a few packets, it reliably crashed on the production systems. However
we could not repeat the problem on any test or development systems, even through kickstart and puppet ensured they were identical to production.
This post details how we found the cause of the problem, so I have a record/teaching aid.
Read more
Thursday 12 December 2013 at 08:32 am
Some of these are hard to google for and I've used more than once now, so to save time I'm bookmarking them here.
- Setting watch points in gdb
- Displaying the whole string in gdb
- Setting gdb to break at a particular file/line
- Setting the coredump limit of a running process to catch a core
None of this is rocket science, but still useful.
Read more
Sunday 04 August 2013 at 3:52 pm
These are really interesting/useful for explaining how the code that executes isn't the code you wrote as well as making you think about performance. A good example is the last one. As Mr Sutter explains, the swap from 80's architectures such as the VAX to modern systems was accompanied by a real change in speed of processor but without a large change in memory latency. As a result "elegant" algorithms that were right for 70s and 80s hardware are totally wrong for modern cache laden systems.
I stumbled over them a while ago, and then spent ages trying to find them again for a colleague. For some reason my google-fu was sadly deficient at work, but once sat back at home I found them within 15 minutes of trying.
Herb Sutter @ NWCPP: Machine Architecture: Things Your Programming Language Neve
C++ and Beyond 2011: Herb Sutter - Why C++?
Bjarne Stroustrup: Why you should avoid Linked Lists - YouTube