1
<?xml version="1.0" encoding="utf-8"?>
2
<html xmlns="http://www.w3.org/1999/xhtml">
4
<title>Change log for Varnish 1.1.2</title>
5
<link rel="stylesheet" type="text/css" href="changes.css"/>
8
<h1>Change log for Varnish 1.1.2</h1>
9
<h2>Changes between 1.1.1 and 1.1.2</h2>
13
<p>When switching to a new VCL configuration, a race
14
condition exists which may cause Varnish to reference a backend
15
which no longer exists (see <a href="http://varnish.projects.linpro.no/ticket/144">ticket #144</a>). This race
16
condition has not been entirely eliminated, but it should occur
20
<p>When dropping a TCP session before any requests were
21
processed, an assertion would be triggered due to an
22
uninitialized timestamp (see <a href="http://varnish.projects.linpro.no/ticket/132">ticket #132</a>). The
23
timestamp is now correctly initialized.</p>
26
<p>Varnish will now correctly generate a <span class="code">Date:</span>
27
header for every response instead of copying the one it got from
28
the backend (see <a href="http://varnish.projects.linpro.no/ticket/157">ticket #157</a>).</p>
31
<p>Comparisons in VCL which involve a non-existent string
32
(usually a header which is not present in the request or object
33
being processed) would cause a NULL pointer dereference; now the
34
comparison will simply fail.</p>
37
<p>A bug in the VCL compiler which would cause a double-free
38
when processing <span class="code">include</span> directives has been
42
<p>A resource leak in the worker thread management code has
46
<p>When connecting to a backend, Varnish will usually get the
47
address from a cache. When the cache is refreshed, existing
48
connections may end up with a reference to an address structure
49
which no longer exists, resulting in a crash. This race
50
condition has been somewhat mitigated, but not entirely
51
eliminated (see <a href="http://varnish.projects.linpro.no/ticket/144">ticket #144</a>.)</p>
54
<p>Varnish will now pass the correct protocol version in pipe
55
mode: the backend will get what the client sent, and vice
59
<p>The core of the pipe mode code has been rewritten to
60
increase robustness and eliminate spurious error messages when
61
either end closes the connection in a manner Varnish did not
65
<p>A memory leak in the backend code has been plugged.</p>
68
<p>When using the <span class="code">kqueue</span> acceptor, if a client
69
shuts down the request side of the connection (as many clients
70
do after sending their final request), it was possible for the
71
acceptor code to receive the <span class="code">EOF</span> event and recycle
72
the session while the last request was still being serviced,
73
resulting in a assertion failure and a crash when the worker
74
thread later tried to delete the session. This should no longer
75
happen (see <a href="http://varnish.projects.linpro.no/ticket/162">ticket #162</a>.)</p>
78
<p>A mismatch between the recorded length of a cached object
79
and the amount of data actually present in cache for that object
80
can occasionally occur (see <a href="http://varnish.projects.linpro.no/ticket/167">ticket #167</a>.) This has been
81
partially fixed, but may still occur for error pages generated
82
by Varnish when a problem arises while retrieving an object from
86
<p>Some socket-related system calls may return unexpected
87
error codes when operating on a TCP connection that has been
88
shut down at the other end. These error codes would previously
89
cause assertion failures, but are now recognized as harmless
96
<p>Pressing <span class="code">0</span> though <span class="code">9</span> while
97
<span class="code">varnishhist</span> is running will change the refresh
98
interval to the corresponding power of two, in seconds.</p>
104
<p>The <span class="code">varnishncsa</span> tool can now daemonize and
105
write a PID file like <span class="code">varnishlog</span>, using the same
106
command-line options. It will also reopen its output upon receipt
107
of a <span class="code">SIGHUP</span> if invoked with <span class="code">-w</span>.</p>
113
<p>Pressing <span class="code">0</span> though <span class="code">9</span> while
114
<span class="code">varnishstat</span> is running will change the refresh
115
interval to the corresponding power of two, in seconds.</p>
118
<h3>Build system</h3>
121
<p>Varnish's <span class="code"><queue.h></span> has been modified
122
to avoid conflicts with <span class="code"><sys/queue.h></span> on
123
platforms where the latter is included indirectly through system
127
<p>Several steps have been taken towards Solaris
128
support, but this is not yet complete.</p>
131
<p>When <span class="code">configure</span> was run without an explicit
132
prefix, Varnish's idea of the default state directory would be
133
garbage and a state directory would have to be specified
134
manually with <span class="code">-n</span>. This has been corrected.</p>