Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 438 lines (306 sloc) 18.624 kB
54150d4 1.47
bradfitz authored
1 1.47: 2006-08-15
2
6a9224c -- concatenanted GETs sent 304 Not Modified w/ content-lengths. …
bradfitz authored
3 -- concatenanted GETs sent 304 Not Modified w/ content-lengths. should
4 be without. fixed. also including t/17-webserver-concat which forgot
5 to be checked into svn/MANIFEST earlier
6
846d3fd +1.46: 2006-08-10
bradfitz authored
7 1.46: 2006-08-10
8
9 -- fix Mart's broken win32 support that broke Unix, part 2: syslog when
10 daemonized. TODO: test case should test daemonization mode.
11
3422014 +1.45: 2006-08-10
bradfitz authored
12 1.45: 2006-08-10
13
14 -- fix Mart's broken win32 support that broke Unix. TODO: test to raise/check
15 fd limit so this doesn't happen again on unix.
16
2460137 up to 1.44
bradfitz authored
17 1.44: 2006-08-10
39c1ea0 +1.44: 2006-08-09
bradfitz authored
18
19 -- allow a no-op ?foo at the end of concatenated-get URLs, so they'd be of
20 the form: http://host/dir??file1,file2,file3?noopsection. the no-op
21 section is good for cache-busting, putting in, say, the modtime of the
22 newest file, forcing browsers like safari (who over-cache) to reload.
23
24 -- set a mime-type other than text/plain on concatenated-get requests,
25 only falling back to text/plain if none of files have a known mime type.
26 in practice a request is all css or all js, so match is found by looking
27 at 1st file. this is required since mozilla won't show CSS if not text/css.
28
29 -- actually be able to start up using 'perlbal' command. test
30 suite passed before, but moving $VERSION into Perlbal.pm
31 had quitely broke it all.
32
611edcb +1.43: 2006-08-09
bradfitz authored
33 1.43: 2006-08-09
34
35 -- there's a case where offset gets past end of file in static file
36 code, but very rarely. sendfile handles this w/ an error that
37 we dealt with, but the new readahead code didn't and crashed.
38 working around for now, until root cause is found for offset
39 going past.
40
41 -- eliminate some warnings in error cases. only really affects noise
42 in test suite
43
8aec4f8 proper indenting, and add CHANGES items that Mart forgot
bradfitz authored
44 -- work better on win32
45
46 -- added the ability for plugins to create custom service roles and
47 add custom configuration options to services, demo is available
48 as conf/echoservice.conf and lib/Perlbal/Plugin/EchoService.pm
4636740 -- added the ability for plugins to create custom service roles and
marksmith authored
49
8cf9334 1.42
bradfitz authored
50 1.42: 2006-08-03
51
711a297 'varsize' command to track size of data structures
bradfitz authored
52 -- debug management command 'varsize' to track size of internal
53 data structures, to make sure none get out of control.
54 there's a report that CPU/mem grow slowly over time, and after
55 a month or so of uptime, a restart is needed. this might help
56 diagnose that.
57
21a8942 forgotten CHANGES item: conf expansions
bradfitz authored
58 -- allow expansion/interoplation of stuff in config files/commands.
59 for now just mapping network device names to IP addresses:
60 SET listen = ${ip:eth0}:80
61
711a297 'varsize' command to track size of data structures
bradfitz authored
62 -- more hooks as requested by community
63
827d78b concatenated get feature
bradfitz authored
64 -- concatenated get feature. where a client have use a
65 comma-separated list of files to return, always in text/plain.
66 Useful for webapps which have dozens/hundreds of tiny css/js
67 files, and don't trust browsers/etc to do pipelining.
68 Decreases overall roundtrip latency a bunch, but requires app
69 to be modified to support it. See t/17-concat.t test for
70 details.
71
040e4b7 -- do AIO readahead before sendfile to reduce blocking caused
bradfitz authored
72 -- do AIO readahead before sendfile to reduce blocking caused
73 by disk reads from sendfile. increases throughput. see:
74 http://brad.livejournal.com/2228488.html
75
777fd95 add latency option on selector roles
bradfitz authored
76 -- add 'latency' configuration on selector roles
77
874159b +1.41: 2006-02-06
bradfitz authored
78 1.41: 2006-02-06
79
80 -- IE sends a request header like "If-Modified-Since: <DATE>;
81 length=<length>" so we have to remove the length bit before
82 comparing it with our date then we save the length to compare
83 later.
84
0c63eb2 -- support for reproxying to a named service. if backend returns
bradfitz authored
85 -- support for reproxying to a named service. if backend returns
86 "X-Reproxy-Service: <name>" and no content, the entire original
87 client GET/HEAD request is re-sent to the new named service.
88 the "enable_reproxy" option has to be enabled for the original
89 service.
90
100147d 1.40 release
bradfitz authored
91 1.40: 2006-01-17
92
7e72ffd -- support for optional retrying of requests after a 500 error,
bradfitz authored
93 -- support for optional retrying of requests after a 500 error,
94 so user won't see the 500 error. boolean option, as well
95 as configurable schedule of how often to retry backends.
96
0172412 changelog entry for junior's last directory indexing commit
bradfitz authored
97 -- clean up directory indexing HTML: Mark Smith and Fred Moyer
98 (fred@redhotpenguin.com)
99
b7dc78e +1.39: (beta for 1.40) 2005-10-26
bradfitz authored
100 1.39: (beta for 1.40) 2005-10-26
101
102 -- new feature for virtual host plugin: the Host header can be trumped
103 by a magical URL form, if allowed in config. for instance, you can
104 make an HTTP request to host "foo.com" but actually get "bar.com"
105 if you do this:
106
107 VHOST foo.com;using:bar.com = bar
108
109 and request /__using/bar.com/IDENT from foo.com, where IDENT is
110 just \w+. perlbal then updates the Host record to bar.com and
111 sends request URI (unaltered) to the "bar" service.
112
113 this is useful for circumventing browser host restrictions (java,
114 javascript, flash, etc...) when you actually control both
115 domains.
116
117 1.38: (beta for 1.40) 2005-10-19
5f540e7 version 1.38
bradfitz authored
118
119 -- some paranoia evals around some parts of buffered uploads that
120 SAPO reported crashes in occasionally. added FIXMEs to investigate
121 too. for now, though, evals around closing files is safer.
122
9e68a49 -- new feature: inter-perlbal upload tracking. for fancy upload
bradfitz authored
123 -- new feature: inter-perlbal upload tracking. for fancy upload
124 bars driven by XmlHttpRequest when clients are upload large files
125
0bdc41e making reproxying an option that must be enabled per-service
bradfitz authored
126 -- WARNING: reproxying (files or URLs) is now disabled by default,
127 and must be enabled per-service with "enable_reproxy = true"
128
28565f9 + -- do a final little read before closing an HTTP connection
bradfitz authored
129 -- do a final little read before closing an HTTP connection
130 to make sure we have no unread data in kernel (notably
131 an extra "\r\n" from an IE post), so when we do close, we
132 don't send a RST packet to the end user. Thanks to Kevin
133 Lewandowski from discogs.com for the bug report.
134
ab1d962 -- use Danga::Socket's AddTimer interface to disconnect
bradfitz authored
135 -- use Danga::Socket's AddTimer interface to disconnect
136 stale persistent connections every 5 seconds, driven by
137 a timer, rather than every 15 seconds, driven by
138 socket creation.
139
9012232 + -- there was a bug where 304 Not Modified responses would
bradfitz authored
140 -- there was a bug where 304 Not Modified responses would
141 cause a connection close (and thus RST packets) even
142 though keep-alive was negotiated and would've worked
143
74b6cef -- ignore URL arguments when doing directory indexing
bradfitz authored
144 -- ignore URL arguments when doing directory indexing
145
3b982a4 + -- work a little better under "trickle". (but still not perfect...
bradfitz authored
146 -- work a little better under "trickle". (but still not perfect...
147 trickle doesn't quite work on Perlbal, unfortunately. it's useful,
148 or would've been useful, for testing some parts...)
149
cdf1162 + -- avoid an occasional warning with dirindexing on unreadable di…
bradfitz authored
150 -- avoid an occasional warning with dirindexing on unreadable directories
151
1047233 1.37 release
bradfitz authored
152 1.37 (beta for 1.40) 2005-08-29
153
e02867f AccessControl plugin
bradfitz authored
154 -- "use <name>" command to set the direct object for future commands
155
156 -- AccessControl plugin to allow/deny by default or on IPs or
157 netmasks.
158
e1c0af2 -- ClientManage could spin in its inherited event_write, causing
bradfitz authored
159 -- ClientManage could spin in its inherited event_write, causing
160 99.9% cpu usage. Bug is arguably Danga::Socket's, but also
161 ours because it's documented what we should do and we didn't.
162 The fix is to shut down watching writability when we're done
163 writing.
164
6d3d86f -- make accept_client and its callers deal with the possibility
bradfitz authored
165 -- make accept_client and its callers deal with the possibility
166 that accept_client fails not because the backend is bogus, but
167 because the client is. so now accept_client can close the
168 client and callers have to be aware of that.
169
3537f29 + -- after running this version on production on LiveJournal.com for
bradfitz authored
170 -- after running this version on production on LiveJournal.com for
171 a bit, we discovered some cases that we'd flag as should never happen,
172 but actually do, so updated the comments and behavior to
173 do the right thing and not just crash with an assertion.
174
4c750f4 -- fix misspellings of trusted_upstream_proxies that didn't
bradfitz authored
175 -- fix misspellings of trusted_upstream_proxies that didn't
176 come along for the renaming ride earlier
177
368a6dc -- webserver mode now ignores URL arguments when looking up
bradfitz authored
178 -- webserver mode now ignores URL arguments when looking up
179 filename
180
833c7a0 remove some warnings
bradfitz authored
181 -- remove warnings accessing undefs in ranges and vhosts
182
01f7b7b -- new --version and --help flags. also a usage message on bogus
bradfitz authored
183 -- new --version and --help flags. also a usage message on bogus
184 options (or when --help). props to Jacques Marneweck
185 <jacques@powertrip.co.za> for the help and motivation.
186
187 1.36 (beta for 1.40) 2005-08-19
188
e0bb75b + -- fix bug in ClientProxy when user disconnects after POST/PUTing
bradfitz authored
189 -- fix bug in ClientProxy when user disconnects after POST/PUTing
190 a content body, but before a response comes back.
191
0fe0701 -- now checks correctly for Danga::Socket version 1.44 or above.
mart authored
192 -- now checks correctly for Danga::Socket version 1.44 or above.
193 (required version was in quotes, confusing perl.)
194
82bd36f -- vhost plugin: strip off port specification from the Host header
mart authored
195 -- vhost plugin: strip off port specification from the Host header
196 before trying to match with configured patterns.
197
e06f6ad prepping for release of version 1.35, a work-up to a stable 1.40
bradfitz authored
198 1.35: (beta of 1.40) 2005-08-16
199
200 -- beta SSL support in a few lines of code. maybe it's completely
201 done. maybe it's barely done. But it seems to work? I'm no
202 SSL master... IO::Socket::SSL just made it so easy.
203
204 -- lots more tests
205
206 -- lots more cleanup
207
1f1b992 -- fix potential crashing bugs in the PUT path. luckily ones we
bradfitz authored
208 -- fix potential crashing bugs in the PUT path. luckily ones we
209 never hit.
210
211 -- lots and lots of code cleanup
212
2fbf664 -- load plugins by either the exact case specified, all lowercase,
bradfitz authored
213 -- load plugins by either the exact case specified, all lowercase,
214 or all lowercase with first letter uppercase. then remember
215 the case for unloading (which was never implemented?)
216
55f7d68 + -- reorganize/cleanup code related to stalling the backend due to
bradfitz authored
217 -- reorganize/cleanup code related to stalling the backend due to
218 client's buffer size exceeding one of the two limits.
219 introduce "backend_stalled"
220
221 -- buffer uploads to disk
222
223 1.3: (2005-06-26)
224
6cce2b9 -- introduce CommandContext, so management commands can be less
bradfitz authored
225 -- introduce CommandContext, so management commands can be less
226 verbose when in config files (service/pool names can be left off
227 when you just created them a couple lines before)
228
45cf91b removing sendstats support from perlbal
bradfitz authored
229 -- remove sendstats support
230
f9ca89c -- exit with 0 vs non-zero when/if Perlbal crashes. new command
bradfitz authored
231 -- exit with 0 vs non-zero when/if Perlbal crashes. new command
232 "crash" to fake a crash, for testing.
233
f9ba94b -- entirely redone management command parsing/dispatching (major
bradfitz authored
234 -- entirely redone management command parsing/dispatching (major
235 code cleanup)
236
237 -- virtual host plugin on service selector framework
238
239 -- service selector framework
240
fa06801 make Net::Netmask optional
bradfitz authored
241 -- make Net::Netmask optional
242
f63eb7c byterange support from the fine people at http://guba.com/
bradfitz authored
243 -- byte range support for both webserver mode and reproxy-file mode
244 Giao Phan <giao@guba.com>. so clients can resume large transfers.
245
37dbfb2 IO::AIO support, and a test suite.
bradfitz authored
246 -- test suite
247
248 -- IO::AIO support (brad)
249
288fa34 change 204 to 200 on reproxy-file
bradfitz authored
250 -- change response code to client to 200 on reproxy-file from backend
251
d178991 changes to 'nodes' command to take optional ip:port to dump only one …
marksmith authored
252 -- 'nodes' command now takes as an optional argument a specific ip:port to
253 dump the node stats for
254
753854e add "none" support to Perlbal::AIO, and warning when using none, and …
bradfitz authored
255 -- AIO abstraction layer (Perlbal::AIO) which can currently do either
256 Linux::AIO or "none" (doing everything sync). also in future File::FDpasser
257 and other OS-specific modes [brad]
258
4d21b1f Add buffer_backend_connect, which instructs Perlbal to buffer things …
marksmith authored
259 -- add buffer_backend_connect to do in memory buffering of data before we
260 request a backend; assists slow clients without tying up a mod_perl
261
ad194fe modify changelog for Perlbal
marksmith authored
262 -- fix spinning issue when webnodes unavailable; should now not consume 100%
263 CPU in those cases
264
d69fac6 -- revamp verbose functionality; by default it's still of, but if…
marksmith authored
265 -- revamp verbose functionality; by default it's still of, but if you specify
266 VERBOSE ON in the config file, it turns it on for management connections
267 by default. management connections, when specifying VERBOSE ON/OFF, will
268 now set the flag only for that connection.
269
b870a5e -- new command for config file; VERBOSE ON/OFF; can be used to enable or
marksmith authored
270 -- new command for config file; VERBOSE ON/OFF; can be used to enable or
271 disable confirmation of all commands such as SET, SERVER, CREATE, etc.
272 by default, it's off for config files, but on for management connections.
273
20581b7 -- add generation count to services that increments every time a …
marksmith authored
274 -- add generation count to services that increments every time a pool is
275 switched. this data is now stored on backends when they're spawned as
276 well, and when we allocate a backend we verify the generation so old ones
277 are thrown away.
278
46bf249 Requested by Brad:
marksmith authored
279 -- allow setting of nodefile on pools to 'none' or 'null' or 'undef' or just
280 an empty set of quotes ("", '') in order to stop using node files
281
282 -- automatically set use count to 0 on new nodes coming in from nodefile
283
258e888 Requested by Brad:
marksmith authored
284 -- made auto-vivification of pulls throw warnings, and made Perlbal die if it
285 tries to vivify a pool and the user has previously manually declared a pool
286
287 -- updated pool commands to be more flexible (POOL pool ADD node, etc)
288
ae394ac -- add pools; a way of having different sets of nodes and instant…
marksmith authored
289 -- add pools; a way of having different sets of nodes and instantly switching
290 between them, so traffic stops going to old nodes; see the example config
291 file for usage
292
7e21f4d Only partially tested. Junior, please review.
bradfitz authored
293 -- work partially without Linux::AIO (does sync stat of node file in reverse
294 proxy mode, and webserver mode doesn't work) --brad
295
08765ca new release
bradfitz authored
296 1.2 (2005-03-07)
6624fb6 -- add new stats command 'nodes' that shows information on each n…
marksmith authored
297 -- add new stats command 'nodes' that shows information on each node that we've
298 been connecting to -- last connect time, last attempt time, a breakdown of
299 the last 500 status codes returned, etc
300
aa68c25 -- add ability to use new Danga::Socket profiling; 'profile on', …
marksmith authored
301 -- add ability to use new Danga::Socket profiling; 'profile on', 'profile data'
302 to see the info so far, and 'profile off' to disable it
303
e939698 -- graceful shutdown now flags sockets that are busy to die so th…
marksmith authored
304 -- graceful shutdown now flags sockets that are busy to die so they die when
305 they're done with their current connection
306
b5fb45a sockets in persist_wait now get closed immediately during a graceful …
marksmith authored
307 -- sockets in persist_wait now get closed immediately during a graceful shutdown
308
7d7baad -- fix handling of OPTIONS responses; used to do its own state cl…
marksmith authored
309 -- fix handling of OPTIONS responses; used to do its own state clearing but
310 it now uses the next_request method as it should
311
301ddbb -- fix bug with determination of keep-alive in http 1.1 case spec…
marksmith authored
312 -- fix bug with determination of keep-alive in http 1.1 case specifying
313 a connection: close header
314
cdb26fa Add 'uptime' command to Perlbal.
marksmith authored
315 -- added 'uptime' management command to track how long Perlbal has been up
316
2948ebf Add new configuration command support to Perlbal:
marksmith authored
317 -- new config commands: HEADER INSERT <svc> <header>: <value> and HEADER
318 REMOVE <svc> <header> which will insert and remove headers from user
319 requests before they're sent to backend proxy nodes.
320
96d428e -- add dependency to Net::Netmask; now you can specify trusted_up…
marksmith authored
321 -- add dependency to Net::Netmask; now you can specify trusted_upstream_proxies
322 on a service (SET service.trusted_upstream_proxies = 10.0.0.0/8, etc)
323 which will allow requests from that range to set X-Forwarded-For, X-Host,
324 and X-Forwarded-Host headers.
325
4eadb4f -- fixed a bug that caused connections to hang when the backend r…
marksmith authored
326 -- fixed a bug that caused connections to hang when the backend responded
327 before the user was done sending data
328
e2dca71 -- reset some variables that weren't being reset: read_buf, read_ahea…
marksmith authored
329 -- reset some variables that weren't being reset: read_buf, read_ahead, read_size
330
2ea598d -- "proc" management command shows user and system CPU usage for …
marksmith authored
331 -- "proc" management command shows user and system CPU usage for Perlbal
332 this run, as well as a delta since the last time you ran "proc"
333
1a7a6b6 -- added Perlbal::XS interface for modules to use; also 'xs' mana…
marksmith authored
334 -- added Perlbal::XS interface for modules to use; also 'xs' management
335 command to see the status of XS modules
336
b86de6c -- bug in PalImg caused crash on files with no length (or when an…
marksmith authored
337 -- bug in PalImg caused crash on files with no length (or when another
338 error occurs that causes no data to be sent to new_gif_palette function)
339
4938bf9 -- ReproxyManager would sometimes let closed backends back into t…
marksmith authored
340 -- ReproxyManager would sometimes let closed backends back into the pool
341 and hand them off to clients, fixed to check for that
342
343 -- new policy: you don't muck around with the internals of other classes.
344 notably, clients don't change the internals of a backend and backends
345 don't change the internals of a client. this was causing all sorts of
346 problems because nobody was cleaning up properly. (especially with regard
347 to "who is my backend's client" type questions.)
348
349 -- fixed up code that did its own keep-alive checks to use the HTTPHeaders
350 functions so that in the future every part of the code stays up to date
351
2027ec9 -- Perlbal::Socket now has the option to keep track of all object…
marksmith authored
352 -- Perlbal::Socket now has the option to keep track of all objects that
353 are created. new command to management interface 'leaks' will show
354 all objects currently in memory. turn this functionality on by enabling
355 the TRACK_OBJECTS constant in Perlbal::Socket.
356
c8d4f4c Break keep_alive into res_keep_alive and req_keep_alive which calculate
marksmith authored
357 -- split keep-alive logic into request and response methods and cleared
358 up how that works
359
856d084 These go with earlier commit re: ReproxyManager class for Perlbal.
marksmith authored
360 -- rewrote reproxy URI support. new class Perlbal::ReproxyManager does all
361 of the work relating to reproxies. it's basically a service class but
362 stripped down and dealing with single endpoints instead of pools. much
363 much much more robust under heavy load. (Junior, Brad)
364
3527210 -- now that we support persistent connections, the 'queues' comma…
marksmith authored
365 -- now that we support persistent connections, the 'queues' command didn't
366 have an accurate time; added ClientProxy member last_request_time so
367 we can accurately tell how long requests have been waiting for
368
636861b -- Danga::Socket got an overhaul; close and steal_socket now shar…
marksmith authored
369 -- Danga::Socket got an overhaul; close and steal_socket now share a lot
370 of code by calling _cleanup. some more paranoia on making sure the
371 object isn't already closed when we try to do things.
372
b0c0660 Add more paranoia for handling closures and event_errs.
marksmith authored
373 -- lots more paranoia in close events and event_err handling for backends
374
b8efccf add track_obj
marksmith authored
375 -- added tracking mode for helping look for leaked objects; records a
376 backtrace of every object created. "server track_obj = 0/1" to enable
377 or disable it, and then "tracking" in a management interface to see.
378
1a6982a Hello changes file.
marksmith authored
379 -- made Perlbal::objctor/objdtor take an object as their first parameter.
380 much faster than using caller().
381
87250bb And update changes file. Again.
marksmith authored
382 -- fix Highpri plugin to not check hosts for high priority values when
383 the host isn't defined
384
099d3ba -- made Palimg plugin far more paranoid about errors, and also
marksmith authored
385 -- made Palimg plugin far more paranoid about errors, and also uses new
386 ClientHTTPBase scratch area for keeping track of data instead of using
387 headers (which are generally slower)
388
a151aac Update CHANGES file.
marksmith authored
389 -- fixed bug in HTTPHeaders that set_version would inadvertently
390 run into when used on a header created through new_response
391
1772dd0 -- ClientProxy class now supports persistence; set persist_client on
marksmith authored
392 -- ClientProxy class now supports persistence; set persist_client on
393 the proxy service in order to enable it.
394
03956da -- Palimg plugin now supports fallback to web server mode if the
marksmith authored
395 -- Palimg plugin now supports fallback to web server mode if the
396 requested URI doesn't fit our desired pattern
397
3cd59bc -- did some cleanup; made a bunch of HTTPHeaders accesses use the
marksmith authored
398 -- did some cleanup; made a bunch of HTTPHeaders accesses use the
399 accessor methods instead of referencing into the object's private
400 store of data
401
e2816f7 -- fixed a crash caused by calling getsockname/getpeername on soc…
marksmith authored
402 -- fixed a crash caused by calling getsockname/getpeername on sockets
403 that have been undefined after having been stolen during an internal
404 redirect to another webserver
405
06104b9 Fix a bug where HEAD requests were returning a body.
marksmith authored
406 -- fixed _simple_response to not return a body if we're serving
407 to a HEAD request
408
3f8f97b + -- bug fix: don't send Not-Modified responses to requests for dy…
bradfitz authored
409 -- bug fix: don't send Not-Modified responses to requests for dynamic
410 directory listings. it was messing up persistent connections
411 since the directory serving code didn't get passed down whether we
412 were sending a body or not. and not modifies on directories are hard:
413 modify time isn't altogether useful. (file sizes could change)
414
415 this still does not-modifieds on indirect index.html directory
416 requests, because _serve_request ends up eventually calling
417 _serve_request on a different URI. (brad)
418
01a89ef added BSD::Resource as dependency to Makefile.PL
bradfitz authored
419 -- added BSD::Resource as dependency to Makefile.PL (brad)
420
e231c40 Note change in CHANGES file.
marksmith authored
421 -- fixed 304 Not Modified responses to not send Content-Length
01a89ef added BSD::Resource as dependency to Makefile.PL
bradfitz authored
422 and Content-Type headers. (jr)
e231c40 Note change in CHANGES file.
marksmith authored
423
2606710 version 1.01:
bradfitz authored
424 1.01 (2004-10-22)
425 -- when internally redirecting a URL, perlbal advertises
426 that it supports persisent HTTP connections now,
427 and caches those sockets for 5 seconds. (not configurable)
428 useful under load, otherwise you waste all local ports
429 on a machine
430
431 -- ditch dependence on IO::SendFile. do it ourselves (1 line)
432 with perl's syscall function
433
434 -- add doc/* and conf/* to MANIFEST file
435
436 1.00
437 -- initial packaged release
Something went wrong with that request. Please try again.