Welcoming a Squid Project sponsor: Rackspace


Testing is a very important part of the life of a project such as Squid, especially as we wish to support as many different operating systems and platforms as we can, as efficiently as we can.
This also means that we can’t restrict to well-known POSIX APIs, but we need to account for each OS’s particular quirks and optimizations, especially in those areas where there is the need of a deep integration with the OS.

One of the tools which we have added a few years ago is the build farm. When new code is committed to a followed branch, our Jenkins setup will notice it, and schedule a test run on all the eligible nodes. This means we need to rely on a mix of operating systems, libraries and compilers.

We are always on the lookout for sponsors, both individuals and companies, and back in July Rackspace volunteered to donate space for the Squid project us on their public cloud infrastructure. As of now, we have 11 virtual machines and one database hosted in their cloud, running mostly various flavors of Linux and FreeBSD. The experience has been very satisfying, in particular I’ve found the claim about “fanatical support” to be well-founded in the dedication and kindness of everyone who was involved in making this happen.

It was not all rose petals, of course. Our needs mean that we are better off with something resembling the bare metal, while the model Rackspace offers is more oriented towards having predefined images which configure certain aspects such as network addresses, admin users’ passwords etc.

Still, it is very refreshing that if an OS is among the list of supported images (as an example, Ubuntu Saucy was available about three days after Canonical released it) setting up a new build node in the farm takes literally 15 minutes, most of which is spent waiting for the server image to be cloned from the template.

The first effects of the newly expanded build farm are already apparent: we have reached a stable build status on a wide number of Linux, FreeBSD and OpenBSD versions, with gcc, clang and icc compilers. We are starting to set sight on MacOSX and to bring Squid 3 to Windows. All of this would have been much harder, or even impossible, without the Build Farm.

So on behalf of everyone who works on Squid, I’d like to thank Rackspace for their kind contribution to the Project.

Tags: ,

4 Responses to “Welcoming a Squid Project sponsor: Rackspace”

  1. Omid Kosari Says:

    Congratulations .
    One question . In future squid will officially release for example squid-3.4.deb for Ububntu Saucy ?
    I am very interested in official optimized packages from squid guys .

    • Kinkie Says:

      no. We only release in source code form; it’s up to each distribution’s maintainer team to optimize for their specific platform.
      We are in touch with many distribution maintainers, and certainly welcome suggestions on how to make their life easier 🙂
      If you want to squeeze any last bit of performance from your squid, your best choice is to roll your own; members of the squid-users mailing list (developers hang around there, too) can hopefully support you.

  2. Matt Warner Says:

    It’s been a while since I used Squid, and previously had good experiences. However, with the latest 3.4 release train, I was unpleasantly surprised and frustrated to find that the “release” (i.e. non-beta) versions have coding errors that do not even allow them to compile.

    While I’m glad testing is important enough to setup and use farms, it seems like something isn’t working with the testing process.

    To give a specific example, version 3.4.3 (the latest as of this writing) has an extraneous comma after “Readable” (see below). For standards-compliant compilers, this is a fatal error. I’m baffled that gcc or any other compile would allow this, and it appears this typo has been in place for quite some time. While I’m listing this as a specific example, it’s not the only one. Quite frustrating, as you might imagine, when trying to get Squid up and running.

    typedef enum {
    Empty, ///< ready for writing, with nothing of value
    Writeable, ///< transitions from Empty to Readable
    Readable, ///< ready for reading
    } State;

    • Amos Jeffries Says:

      Please report this kind of issue to the Squid bugzilla in future. Also mention of which oeprating system and compiler is having the problem is critical.

      Note that current Squid-3 requires GCC 4.0+ or Clang 3.2+ to build. We also try to keep on top of ICC and MinGW issues. Other compilers are not available to us for the build farm and we are forced to rely heavily on bug reports such as yours being made about the 3.HEAD code if they are ever to be prevented in the Beta or Stable releases.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: