lp:~measurement-factory/squid/jenkins

Created by Alex Rousskov and last modified

Squid code to be tested on Squid Project build farm operated by Jenkins.

Get this branch:
bzr branch lp:~measurement-factory/squid/jenkins
Members of Measurement Factory can upload to this branch. Log in for directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Measurement Factory
Project:
Squid
Status:
Experimental

Recent revisions

12388. By Alex Rousskov

GCC v4.1.2 requires <new> for the placement-new operator to be declared.

12387. By Alex Rousskov

Another attempt to make Ipc::Mem::PageStack::theItems construction work.

12386. By Alex Rousskov

Using Atomic theSize confuses FlexibleArray<>. Use int instead. Same value.

12385. By Alex Rousskov

Added forgotten header file.

12384. By Alex Rousskov

Reverted trunk r12255 changes. Provided a flexible arrays replacement.

Trunk r12255 made Clang compiler happy by removing flexible nonPod[] arrays.
Unfortunately, it also moved shared memory items into local memory (in some
cases uninitialized).

This change provides a Clang-friendly flexible array replacement while keeping
items in the shared memory (and using placement-new initialization). The code
became even less readable, but hopefully more portable.

N.B. Flexible arrays were introdiced in C99 standard, after C++ was
standardized in 1998. They are not yet in any revised C++ standard, but most
C++ compilers support them, at least for PODs.

12383. By Alex Rousskov

Allow a ufs cache_dir entry to coexist with a shared memory cache entry
instead of being released when it becomes idle.

The original boolean version of the StoreController::dereference() code
(r11730) was written to make sure that idle unlocked local store_table entries
are released if nobody needs them (to avoid creating inconsistencies with
shared caches that could be modified in a different process).

Then, in r11786, we realized that the original code was destroying non-shared
memory cache entries if there were no cache_dirs to vote for keeping them in
store_table. I fixed that by changing the StoreController::dereference() logic
from "remove if nobody needs it" to "remove if somebody objects to keeping
it". That solved the problem at hand, but prohibited an entry to exist in
a non-shared cache_dir and in a shared memory cache at the same time.

We now go back to the original "remove if nobody needs it" design but also
give non-shared memory cache a vote so that it can protect idle but suitable
for memory cache entries from being released if there are no cache_dirs to
vote for them.

This is a second revision of the fix. The first one (r12231) was reverted
because it did not pass tests/testRock unit tests on some platforms. The unit
tests assume that the entry slot is not locked after the entry is stored, but
the first revision of the fix allowed idle entries to remain in store_table
and, hence, their slots were locked and could not be replaced, causing
assertions. This revision allows the idle entry to be destroyed (and its slot
unlocked) if [non-shared] memory caching is disabled.

It is not clear why only some of the platforms were affected by this. Should
not memory caching be disabled everywhere during testRock (because we do not
set memory cache capacity and memory cache entry size limits)?

12382. By Francesco Chemolli

Static Code Analysis: varargs cleanup, improvements to readability

12381. By Francesco Chemolli

Static Code Analysis: fix varargs handling in snmp_core.cc

12380. By Francesco Chemolli

Static Code Analysis: fix varargs handling in snmp_core.cc

12379. By Amos Jeffries

ssl_crtd: set new certificate serial number to zero

Initialize new BN value to zero instead of simply testing and ignoring
the result.

Detected by Jenkins running clang on FreeBSD 9.

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
lp:~squid/squid/trunk
This branch contains Public information 
Everyone can see this information.