inet   Frontpage - Services - Products - Support - Company - Contact - Blog
Note that all opinions, views, etc. expressed in these blog pages reflect those of the authors, not necessarily those of Inferno Nettverk A/S.  

The Inferno Nettverk Blog

Use of Barefootd for temporary service transition

Posted by Inferno Nettverk A/S, Norway on Tue Jul 4 14:38:52 MEST 2017

Moving can be a lot of work, but it can also be an opportunity to solve problems that are not commonly encountered during the daily grind, and when Inferno Nettverk recently moved to new and slightly bigger offices across the street from the old offices, one of the more interesting aspects was handling the transfer of our servers from the old location to the new one. When planning the move it was possible to divide the servers and the services running on them into two groups; services that could easily be handled by the backup server at our office in another country, and services that could not. Most of our public facing services fell into the first category. For example, stateless web servers that only serve static pages and SMTP servers could easily be moved with no or only minor changes to DNS. These services were handled by the backup server during the move and then moved back to the main servers after the move had been completed and all machines were successfully running at the new location.

IPC performance: sockets vs files

Posted by Michael Shuldman, Inferno Nettverk A/S, Norway on Tue Jun 30 15:38:18 MEST 2015

This article describes the performance difference observed between using datagram sockets to send a large message directly from one process to another process on the same machine, and using the same type of sockets to instead send a minimal message with a reference to what file the large message can be read from. Note that this article does not describe a test between using shared memory and message passing. Rather, it's a test between sending a small message that references a file with the large message, and sending the large message directly.

Analysis of long-running Dante process

Posted by Inferno Nettverk A/S, Norway on Thu Apr 23 14:42:08 MEST 2015

Making software run properly requires testing and we continuously run tests internally for software we develop in order to uncover as many bugs and problems as possible before the software is released. Most problems are usually detected by our internal testing, but testing rarely manages to produce all the diverse configurations and environments that the software might be used in when in production.

Valgrind and uninitialised reads debugging - take two

Posted by Michael Shuldman, Inferno Nettverk A/S, Norway on Mon Aug 11 14:51:40 MEST 2014

After the time I spent on documenting my previous approach to debugging uninitialised reads errors from Valgrind, I did not expect having to spend many hours once again understanding why Valgrind was printing the warning it did. It took Valgrind three years to prove me wrong.

Using gdb(1), ps(1) and watch(1) to debug memory leaks

Posted by Michael Shuldman, Inferno Nettverk A/S, Norway on Fri May 9 14:05:10 MEST 2014

Even though we use automated tools for helping us detect when and where memory leaks occur, like the excellent Valgrind system, as well as commercial static analysis systems, none of the external tools used were able to warn about a problem we recently had. Fortunately the problem was however detected by our in-house test system, rather than a customer when our test system started generating messages like this:

Random Observations (1) - top(1) application CPU usage definition

Posted by Inferno Nettverk A/S, Norway on Sat Jan 4 02:38:22 MET 2014

This blog posting contains some random observations made during software development, regarding problems that were not easily solved by searching the Internet for solutions explaining what was going on. Perhaps these entries will help others in a similar situation by making the information more available. Question: What does the 'top' application CPU percentage value include?

Livedebug: the art of dumping core and dying on live production systems

Posted by Michael Shuldman, Inferno Nettverk A/S, Norway on Sat Aug 3 22:42:07 MEST 2013

When a customer reports a problem with our software, we work hard to figure out what is going on as fast as possible, usually with no access to the system where our software is running in production. Depending on the SLA we have with the particular customer and how serious the problem is, this may involve waking up the right developer in the middle of the night to start analysing the problem.

Valgrind and uninitialised reads debugging

Posted by Michael Shuldman, Inferno Nettverk A/S, Norway on Tue Dec 20 16:46:39 2011

Valgrind is a useful tool for discovering many types of programming errors at runtime, and here at Inferno Nettverk, Valgrind is part of the automated testing system for our software. That means I don't spend much time thinking about or running Valgrind myself, but now and then I get an email from the test system complaining that Valgrind has detected an error.

Copyright © 1998-2017 Inferno Nettverk A/S