3 Licensed to the Apache Software Foundation (ASF) under one or more
4 contributor license agreements. See the NOTICE file distributed with
5 this work for additional information regarding copyright ownership.
6 The ASF licenses this file to You under the Apache License, Version 2.0
7 (the "License"); you may not use this file except in compliance with
8 the License. You may obtain a copy of the License at
10 http://www.apache.org/licenses/LICENSE-2.0
12 Unless required by applicable law or agreed to in writing, software
13 distributed under the License is distributed on an "AS IS" BASIS,
14 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 See the License for the specific language governing permissions and
16 limitations under the License.
19 <!ENTITY project SYSTEM "project.xml">
21 <document url="changelog.html">
26 <author email="mturk@apache.org">Mladen Turk</author>
27 <author email="rjung@apache.org">Rainer Jung</author>
28 <author email="hgomez@apache.org">Henri Gomez</author>
29 <author email="timw@apache.org">Tim Whittington</author>
30 <title>Changelog</title>
35 <section name="Preface">
37 This is the Changelog for Tomcat Connectors. This changelog
38 does not contain all updates and fixes to the Tomcat connectors (yet).
39 It should contain fixes made only after November 10th 2004, when the
40 new documentation project for JK was started.
43 <section name="Changes between 1.2.31 and 1.2.32">
45 <subsection name="Native">
48 <bug>51417</bug>: Fix worker busy detection by querying the
49 worker endpoint. Abandoned connections can leave a worker
50 in busy state without decrementing busy counter. (mturk)
53 <bug>50339</bug>: Fix whitespace trimming when parsing attribute
57 <bug>41263</bug>: Support Servlet API getRemotePort().
58 Works for Tomcat 5.5.28, 6.0.20 and 7.0.0 and Apache and ISAPI
62 <bug>41923</bug>: AJP: Close AJP connection to Tomcat on client write
63 error when recovery_options 4 is specified, aborting the response
64 write on the Tomcat side. (timw)
67 AJP: Cap the lingering bytes that will be read
68 when shutting down an AJP socket at 32k to prevent CPU spikes
69 in the web server when a client aborts on a large response body.
70 Also reduce total linger time to 2s. (timw)
73 <bug>50839</bug>: AJP: Fix 30sec CPU spike due to incorrect counting
74 of lingering bytes causing a busy loop when a client aborts
75 connection during a response write.
76 Fixes regression in 1.2.31. (timw)
79 LB: Forward worker activation state as request attribute
80 "JK_LB_ACTIVATION". Possible values are "ACT" (active),
81 "DIS" (disabled) and "STP" (stopped). (rjung)
84 HTTPD: Forward WWW-Authenticate from backend when status is 401
85 and server generated error pages are used. (rjung)
88 <bug>50363</bug>: IIS: Prevent chunk encoding of empty message
89 bodies for 204, 205 and 304 responses. (timw)
92 <bug>50975</bug>: IIS: Fix hanging of Transfer-Encoding: chunked
93 requests when Content-Length header is present in request as well.
94 Also addresses situation where IIS appears to create a Content-Length
95 header for a small chunk encoded request when none was present in the
96 original request. (timw)
99 <bug>47679</bug>: IIS: stop truncation of request headers when
100 ISAPI redirector used as an extension without the corresponding
101 filter installed. (timw)
104 NSAPI: Use lower case header names for responses.
105 Otherwise the web server might add chunked transfer encoding header
106 in addition to our content length header.
109 Docs: Improve load balancer documentation. (rjung)
114 <section name="Changes between 1.2.30 and 1.2.31">
116 <subsection name="Native">
119 <bug>49413</bug>: AJP13: Drop flush packets send by the backend
120 after the response has been finished. (rjung)
123 AJP: Log the local and remote socket address. (mturk)
126 Watchdog: Move the maintain workers outside the critical
127 section allowing other threads to use the connection
128 pool during maintenance. (mturk)
131 Common: Add svn revision to init log message. (rjung)
134 Common: Don't destroy errno during trace logging. (rjung)
137 Apache: Add support for Apache 2.3/2.4. (rjung)
140 Apache: Added version number resource for mod_jk.so on Windows. (timw)
143 <bug>48501</bug>: IIS: Added rotatelogs style log rotation to ISAPI
147 <bug>38895</bug>: IIS: Use RAW headers instead of CGI headers by default
148 to prevent conversion of underscores '_' to hyphens '-' in header names.
149 Old behaviour can be enabled by defining USE_CGI_HEADERS. (timw)
152 <bug>49511</bug>: IIS: Do not override IIS log information when subsequent
153 requests on a keep-alive connection are not mapped into the ISAPI Redirector. (timw)
156 Docs: Document SSLOptions needed for SSL information forwarding. (rjung)
159 Docs: Grammar and style improvements and clarification about serving
160 static content by IIS.
161 Patch provided by André Warnier. (rjung)
164 Docs: Update subversion paths used in docs. (rjung)
169 <section name="Changes between 1.2.28 and 1.2.30">
171 <subsection name="Native">
174 Apache: Improve compatibility with Apache 2.3. (rjung)
177 <bug>46632</bug>: Apache: Do not register child cleanup for
181 <bug>46893</bug>: Apache: Log warning only if JkShmSize was actually
182 set in the configuration. (mturk)
185 IIS: Include optional chunking support. Off by default. (mturk)
188 <bug>48763</bug>: IIS: Do not send Content-Length when using chunked encoding
189 or length larger 4GB. (mturk)
192 <bug>48223</bug>: IIS: Propagate correct backend error code to IIS. (rjung)
195 <bug>47867</bug>: IIS: crash during startup, when compiled with VS2008
196 and workers.properties contains unsupported properties.
197 Patch provided by Indrek Juhani (rjung)
200 <bug>47628</bug>: IIS: Fix deadlock when restarting the Application Pool
201 caused by not releasing the critical section lock.
202 Patch provided by Bret Prucha. (mturk)
205 IIS/NSAPI: Correct log file flushing after each line. (mturk)
208 NSAPI: Add Microsoft Visual C++ Makefile. (mturk)
211 AJP: Improve socket shutdown handling. (mturk)
214 AJP: Ensure we never reuse a non reusable socket. (mturk)
217 AJP: Tolerate a single excess packet when waiting for cpong. (mturk)
220 AJP: Check protocol correctness more strictly. (mturk)
223 <bug>48410</bug>: AJP: Use poll instead select so we can work with more
224 then 1024 sockets. (mturk)
227 <bug>46503</bug>: AJP/Status: Garbage data in worker domain and route. (mturk)
230 <bug>48276</bug>: AJP: When worker contact cannot be resolved mark the
231 worker as disabled instead failing to start the server. (mturk)
234 <bug>48169</bug>: AJP: Improve CGI interoperability by closing all
235 sockets during EXEC. (mturk)
238 Status: Add number of open backend connections to status worker.
239 This feature is experimental, the displayed value might not be
243 <bug>47224</bug>: Status: When address gets changed invalidate
244 all opened sockets in the endpoint cache. This will cause new
245 backend connections to get opened using new address. (mturk)
248 <bug>48305</bug>: Status: Do not show "secret" property when
252 <bug>45610</bug>: Status: Don't accept requests with
253 empty value for sub worker parameter. (rjung)
256 <bug>45610</bug>: Status: Fix erroneous unsetting of
257 sticky_session and sticky_session_force when updating other
258 load balancer attributes via the status worker. (rjung)
261 <bug>47222</bug>: Status: Add ping_timeout to the shared memory
262 and allow dynamic configuration. (mturk)
265 Status: Remove duplicate "errors" line in property view of
266 AJP13 workers that are part of a load balancer. (rjung)
269 LB: Fix route logging. (rjung)
272 Logging: Automatically detect size of thread id for logging. (rjung)
275 Logging: Add optional log file locking for Windows when defining
276 JK_LOG_LOCKING. (mturk)
279 Configuration: Update example configuration. (rjung)
282 Docs: Update information about tools needed to create a release. (rjung)
285 <bug>47983</bug>: Docs: Fix typo in example config
286 which breaks startup. (rjung)
289 Build: Force copy of automake files. (rjung)
292 Build: Tomcat code repository structure cleanup reflected in documentation
293 and build script. (rjung, mturk)
298 <section name="Changes between 1.2.27 and 1.2.28">
300 <subsection name="Native">
303 Apache: Add more environment variables to overwrite request
304 information. Useful in case a proxy is in front of Apache and sends
305 us original request information e.g. via custom headers. (rjung)
308 Apache: No longer preallocate entries for JK request log. (rjung)
311 <bug>46352</bug>: Apache: Fix crash when using SetHandler jakarta-servlet
312 in VHost without any JkMount. Crash due to incorrect initialization
313 of mount extensions. (rjung)
316 Apache: JkWatchdogInterval had wrong interval calculation
317 causing a 10 times higher watchdog interval then configured. (mturk)
320 Apache: Activate forwarding of SSL key size by default. (rjung)
323 <bug>46169</bug>: Apache 1.3: Backport use_server_errors mount extension. (rjung)
326 <bug>46763</bug>: Apache 2.0: Survive the log mutex during graceful
327 restart. Patch provided by Eiji Takahashi. (mturk)
330 <bug>46416</bug>: Apache 2.0 on Windows: Include mstcipip.h even if
331 the apr doesn't include it. (mturk)
334 IIS: Update uriworkermap.properties file on
335 a regular interval. This requires both worker_mount_reload
336 and watchdog_interval to be defined. (mturk)
339 IIS: Remove obsolete entries from registry file. (mturk)
342 <bug>46579</bug>: IIS: Use local environment table instead environment
343 variables for setting the JKISAPI_PATH and JKISAPI_NAME. (mturk)
346 LB: Add new property error_escalation_time to fine tune
347 escalation of local errors to global errors. (rjung)
350 LB: If the sticky session affinity mark contains a dot, treat the
351 part before the dot as the domain name. This allows to have full node
352 session affinity with domain failover. (mturk)
355 LB: make forced recovery work with local error states. (rjung)
358 LB: Only update error state and error time, if we actually have a new state. (rjung)
361 LB: Set global worker state to error when we reach max_reply_timeouts,
362 or fail_on_status triggered hard error. (rjung)
365 AJP: Add a new error type JK_AJP_PROTOCOL_ERROR. (mturk)
368 AJP: Allow worker ports lower or equal to 1024. (rjung)
371 AJP: Improve some AJP error log messages. (mturk)
374 Status: Allow changing worker address and port of AJP workers.
375 The address is resolved on next request for that worker. (mturk)
378 Status: Allow update actions to show error messages in the result page. (rjung)
381 Status: Refactor update actions. (rjung)
384 Status: Do not redirect to the show or list page, if an error occured
385 during an action. (rjung)
388 Status: Include error time in display. (rjung)
391 Status: Remove redundant port information from worker display.
392 Rename address column and remove its explanation from the legend. (rjung)
395 Status: Optimize forced uriworkermap.properties reload. (mturk)
398 Status: Fix crash in text display. (rjung)
401 Status: Show - Edit - Show always ends in single lb member show,
402 even when started from all members lb show. (rjung)
405 Status: Wildcards in sub worker names were broken for update actions. (rjung)
408 Status: Add use_server_errors to map display. (rjung)
411 SHM: Move locking into the data pull and push methods. (rjung)
414 JNI: Deprecate JNI workers. (rjung)
417 Netware: Missing define for MAX_PATH. Patch by Guenter Knauf. (rjung)
420 Docs: Add a new HowTo page about reverse proxies. (rjung)
423 Docs: Add an explanation of local error states to the timeouts documentation. (rjung)
426 Docs: Clarify relation between socket_timeout and socket_connect_timeout. (rjung)
429 Docs: Clarify IIS URL rewrite feature. (rjung)
432 <bug>46834</bug>,<bug>46734</bug>: Docs: Fix a couple of missing or broken links. (markt,rjung)
435 Docs: Add 2008 news to main page and menues. (mturk, rjung)
440 <section name="Changes between 1.2.26 and 1.2.27">
442 <subsection name="Native">
445 <bug>46109</bug>: Decay reply_timeouts even when lb method is
446 busyness. Also reset reply_timeouts during forced recovery. (rjung)
449 AJP13: Recycle connection if previous request didn't complete. (mturk)
452 Maintain should not run multiple times in parallel. (mturk)
455 Apache: Fix small memory leak during restart. (mturk)
458 Improve signal handling during socket shutdown. (mturk)
461 URI Map: Add debug dump function for uri worker map. (rjung)
464 Add revision number to version info for non-release builds. (rjung)
467 IIS: Optionally allow chunked encoding for responses.
468 At the moment only usable, if build with ISAPI_ALLOW_CHUNKING
469 defined. Based on patch by Tim Whittington. (rjung)
472 IIS: Optionally use raw headers instead of CGI
473 headers. Fixes problem "underscore=dash" problem in
474 header names. At the moment only available, if build with USE_RAW_HEADERS
478 IIS: Optionally improve IIS 5.1 compatibility.
479 At the moment only available, if build with AUTOMATIC_AUTH_NOTIFICATION
480 defined. Based on patch by Tim Whittington. (rjung)
483 IIS: Fix memory corruption due to parallel initialization
484 by multiple threads. (rjung)
487 Windows: Use non-default socket keepalive interval. (mturk)
490 IIS: Add environment variables JKISAPI_PATH and JKISAPI_NAME. (mturk)
493 Added socket_connect_timeout directive for setting the
494 connect timeout for the socket. This enables to have low
495 connection timeout but higher operational timeouts. (mturk)
499 [<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-5519"><b>CVE-2008-5519</b></a>]
500 Always send initial POST packet even if the client
501 disconnected after sending request but before providing
502 POST data. In that case or in case the client broke the
503 connection in a middle of read send an zero size packet
504 informing container about broken client connection. (mturk)
507 AJP13: Added connection_acquire_timeout directive for setting the
508 absolute timeout the worker will wait for a free endpoint. (mturk)
511 Apache: Allow to set path parameter used when doing JkStripSession. (mturk)
514 Refactor retries implementation and change semantics of retries attributes. (mturk)
517 Status: Allow showing only a single member for a load balancer. (rjung)
520 Status: Add display of seconds since last statistics reset and access and
521 transfer rates. (rjung)
524 AJP13: Add a configurable retry_interval time. (rjung)
527 Documentation: Enhance description of connection_pool_size. (rjung)
530 IIS: Refactor error page generation. (mturk)
533 IIS: SERVER_NAME variable can be the same for
534 multiple different server instances if requests
535 are handled according to the ip:port combination.
536 Use INSTANCE_ID variable to which the request
537 belongs instead. (mturk)
540 Allow forwarding server error pages. This can be done
541 on per-uri basis using new use_server_errors extension.
545 Added session_cookie and session_path for configuring
546 default session identifiers. (mturk)
549 Use max_packet_size also as TCP send and receive buffer size. (mturk)
552 Apache: Do not allow Apache to start in multi-threaded mode if mod_jk
553 was only build for single threaded server (prefork). (mturk)
556 <bug>45812</bug>: Add done() service method that
557 causes sending EOS bucket for Apache httpd 2.x.
558 This allows filter chain to work properly. (mturk)
561 Added connection_ping_interval, ping_timeout and ping_mode directives.
565 Apache: Use correct ld flags provided by apxs when building module.
566 Prevents some crashes on AIX for httpd 1.3 module. (rjung)
569 Documentation: "val" attribute numbering in status worker
570 needs to start with 0 instead of 1. (rjung)
573 Documentation: Remove JNI parameters from sample configuration
574 in the workers generic howto. (rjung)
577 <bug>45026</bug>: For Apache httpd 2.x add "Unknown Reason"
578 as the reason phrase, if we get an empty one from the backend.
579 Otherwise httpd 2.x returns status 500. (rjung)
582 Build: Fix Cygwin build. (rjung)
585 Documentation: Add info to docs, that variables sent via JkEnvVar
586 are not listed in request.getAttributeNames(). (rjung)
589 Add watchdog background thread for Apache 2.x and IIS
590 doing internal maintenance (idle connection checks, backend probing).
591 See JkWatchdogInternal (Apache) and watchdog_interval (IIS). (mturk)
594 Change log level of some messages from error to info. (mturk)
597 Documentation: Fix docs for worker attribute "secret". (rjung)
600 Detect correct plugin name for various web servers via additional
601 preprocessor defines. (rjung)
604 LB: Do not put loadbalancer node in error state if there is opened
605 channel. This fixes the bug when new connection fails due to
606 busyness, causing opened connections fail stickyness.
607 This brings back per-node busy counter and private state array
608 for each request. We can mark the state as error for failover to
609 work while still operating and reporting node as OK if there are
610 opened working connections. (mturk)
613 <bug>44738</bug>: Fix merging of JkOption ForwardURI* between virtual hosts.
614 Patch contributed by Toshihiro Sasajima. (rjung)
617 URI Map: Add extension attributes to uri worker map.
618 Allowed are reply_timeout, active/disabled/stopped
620 Usage currently only implemented for httpd and IIS. (rjung+mturk)
623 URI Map: Make dynamic reloading atomic and free memory
624 not needed any longer. (rjung)
627 Configure: Don't use post httpd 2.2.0 API functions when building
628 with new --enable-api-compatibility configure switch. (rjung)
631 Apache: JkAutoAlias does not work in combination with JkMountCopy
632 if there are no JkMount in virtual host. (rjung)
635 LB: Optimize state macros to improve performance. (rjung)
638 Apache: Allow dynamic setting of reply timeout using the environment
639 variable JK_REPLY_TIMEOUT. (rjung)
642 Status: Add manageability for ajp parameters of ajp
643 workers and ajp lb members. (rjung)
646 Status: Change parameter names of update action to
647 make them more easily distinguishable from other parameters. (rjung)
650 Status: Add ajp worker statistics also for
651 workers, that are not lb members. (rjung)
654 AJP: Refactor factories, move ajp13/ajp14 common parts into
658 Status: Only sync shm worker config values of the workers
659 for which we changed values. (rjung)
662 Status: Set lb_factor instead of distance. (rjung)
665 Status: Minor layout changes, use drop down instead of multiple
669 SHM: Use local copies of read mostly attributes of lb sub workers
670 in lb and status worker. (rjung)
673 Status: Add "dump" action to dump our initial configuration. (rjung)
676 Status: Use property table to decide which cmd action uses which
677 output elements. (rjung)
680 Common: Include original configuration map in worker_env
681 to make it available for workers, e.g. the status worker. (rjung)
684 LB: Refactor "route" return for httpd note. Don't use a
685 member of the worker_record, because that's not thread safe. (rjung)
688 Common: Refactor "retries", remove from service and jk_worker,
689 move into ajp worker instead. (rjung)
692 SHM: Use distinct structs for lb and ajp13 in shm.
693 Improves type safety and saves a few bytes. (rjung)
696 SHM: Remove unused attributes. (rjung)
699 SHM: Automatically determine shm size for all web servers. (rjung)
702 SHM: Make open/attach logging consistent for all web servers. (rjung)
705 Status: Include server local time in output. (rjung)
708 <bug>44116</bug>: Fix handling of multiple JSESSIONID cookies. (rjung)
711 <bug>37850</bug>: Use thread safe localtime_r where appropriate. (rjung)
714 Use thread safe strtok_r on more platforms, especially AIX. (rjung)
717 Status: Improve XSS hardening. (rjung)
720 <bug>35303</bug>: Move initialization of service members with defaults from
721 web server specific code to our generic jk_init_ws_service() function. (rjung)
724 <bug>36385</bug>: Add missing prepost CPing/CPong directly after connect
725 in case prepost CPing is used, but no connect CPing. (rjung)
728 <bug>37322</bug>: Apache: Enhance robustness of message formating
729 in jk_error_exit(). (rjung)
732 <bug>44147</bug>: Multiple load balancing workers problem. (rjung)
737 <section name="Changes between 1.2.25 and 1.2.26">
739 <subsection name="Native">
742 <bug>42003</bug>: Allocate memory instead using fixed size from
746 <bug>43229</bug>: Load balancer does not do fail over after
747 reply timeouts. (rjung)
750 JKStatus: Repair detailed Apache httpd version display.
751 This was broken for httpd version 2.2.4+. (rjung)
754 LB/AJP: Refactoring of jk_connect.c, jk_ajp_common.c,
755 jk_lb_worker.c (rjung)
758 Configure: Repair broken apxs auto-detection. (rjung)
761 Configure: Remove trace logging from compiled code
762 via new --disable-trace configure switch. (rjung)
765 Common: Maintain idle connections in decreasing (LRU)
769 Apache: Create JK_WORKER_ROUTE and JK_REQUEST_DURATION notes for
770 access log even if no JkRequestLogFormat is set. (rjung)
773 JKStatus: Enhance URI to worker map listing for Apache httpd.
774 We now list maps for all virtual servers and not only
775 the one, in which JKStatus itself was called. (rjung)
778 JKStatus: Enhance URI to worker map listing.
779 Update stale uriworkermap.properties immediately. (rjung)
782 <bug>43873</bug>: Fix small memory leak occuring during httpd restart. (rjung)
785 Common: Allow '*' for the worker name in exclusion rules (resp. JkUnMount)
786 which will override all workers. (rjung)
789 <bug>42038</bug>: Correct overlay of mounts and unmounts for IIS. (rjung)
792 <bug>43684</bug>: Replace JkMountFile by JkMountFileReload in
793 uriworkermap.properties docs. (rjung)
796 Apache: Add new value "All" for JkMountCopy. (rjung)
799 <bug>43516</bug>: Memory leak for Apache httpd module
800 of size 8KB for every virtual host without JK directive
801 after each restart. (rjung)
804 Apache: Cleanup init and destroy of server configuration. (rjung)
807 Apache: Remove global configuration items from per server
808 configuration. (rjung)
811 Apache: Remove unused attributes secret_key and
812 automount/JkAutoMount. (rjung)
815 Cleanup of jk_uri_worker_map. (rjung)
818 Documentation: Small additions to JkShmFile documentation.
819 Contributed by Gerhardus Geldenhuis. (rjung)
822 AJP13: Ignore flush packets before we received the response headers. (rjung)
825 Fix crash during startup when using worker configuration inheritance
826 (attribute "reference") and log level debug. (rjung)
829 AJP13: Match header names exactly against pre defined constants. Avoid
830 possible confusion with custom header names using a standard header name
834 jkstatus: Fix correct parameter validation at JkStatusUpdateTask and
835 JkStatusUpdateLoadbalancerTask ant tasks. Reported by Christian Mittendorf. (pero)
840 <section name="Changes between 1.2.24 and 1.2.25">
842 <subsection name="Native">
845 IIS: Fix shm shutdown behaviour. (rjung)
848 General: fail_on_status used in a load balancer can optionally
849 do fail over without putting the failed worker in error state. (rjung)
852 NSAPI: Improve build description for Unix. (rjung)
855 NSAPI: Add initialization startup message containing JK version. (rjung)
858 General: Declare static functions as static. (jim)
861 Documentation: Clarify fail_on_status behaviour. (rjung)
864 General: Do fail_on_status before returning the response headers. (rjung)
867 NSAPI: Fix shm shutdown behaviour. (rjung)
870 NSAPI: Set return status even if request ended with an error. (rjung)
873 NSAPI: Allow using without shm_file on WIN32 and Netware. (rjung)
876 NSAPI: Fix Crash of nsapi for log level debug and unset refect_unsafe. (rjung)
879 NSAPI: Improve Solaris and Linux Makefiles for nsapi build. (rjung)
882 Build: Improve pid_t type detection during configure on Solaris. (rjung)
885 Build: Experimental build support for gcc on WIN32 and Netware. (fuankg)
888 Build: Makefile optimizations for Apache httpd 1.3/Netware . (fuankg)
891 General: Fix missing flush bug introduced in 1.2.24. (rjung)
896 <section name="Changes between 1.2.23 and 1.2.24">
898 <subsection name="Native">
901 Documentation: Improved workers.properties description in the
902 reference guide. (rjung)
905 Documentation: Add a HowTo about the various timeouts. rjung)
908 Logging: add milliseconds to the default timestamp format,
909 if we have gettimeofday(). (rjung)
912 Apache: add milliseconds (%Q) and microseconds (%q) as possible
913 JkLogStampFormat conversion specifiers. This does not use strftime(),
914 but needs gettimeofday(). (rjung)
917 IIS & Sun: Log service failures also, if return code is negative. (rjung)
920 <bug>42849</bug>: Abort startup of Apache httpd 1.3 in case
921 mod_jk initialization failed. We already do the same
922 for Apache httpd 2.x. (rjung)
925 <bug>42849</bug>: Refuse to operate with IIS in case the
926 initialization failed. Instead requesting isapi_redirect.dll
927 500 will be returned to the user. This is as closest as it
928 can get to Apache Httpd where we refuse to start the server
929 in case of fatal initialization errors. (mturk)
932 Load Balancer: Fix a deadlock in lb worker, which was exposed on Solaris
933 for threaded Apache MPMs. (rjung)
936 Logging: handle LWP IDs as 32 Bit unsigned. Try to make
937 it work, although pthread IDs are opaque. (rjung)
940 JkStatus: Added manipulation of max_reply_timeouts. (rjung)
943 LB, Status: Add feature max_reply_timeouts, to make lb tolerant against
944 occasional long running requests. (rjung)
947 JkStatus: Added OK/IDLE as the successor of N/A. (rjung)
950 Status worker: Renamed runtime states. All states have a major
951 state (OK or ERR) and a substate. Changed the name N/A to OK/IDLE.
952 Added docs about the meaning of the states to the status worker
953 page in the reference guide.
954 No new states have been added to code. (rjung)
957 Common: Add recovery options for recovering idempotent http methods
958 HEAD and GET. (rjung)
961 Correct documentation for worker attributes retries and
962 recovery_options. (rjung)
965 Make writing log lines and line endings more atomic. (rjung)
968 Common: Refactored and unified jk_map_read_prop* and jk_map_load_prop*
969 for all use cases. (rjung)
972 Common/Apache/IIS/Netscape: Add an option to check decoded URLs for
973 potentially malicious constructions. (rjung)
976 IIS: Document auth_complete and uri_select. (rjung)
979 Apache/IIS/Netscape: Change the default forwarding encoding to the new
980 proxy method. (jfclere, rjung)
983 Common: Optionally reencode URIs before forwarding to the backend.
984 Based on the URI reencoding done bei httpd mod_proxy. (jfclere, rjung)
987 Common: auto-detect correct print format for pid_t.
988 This fixes at least compiler warnings on Solaris. (rjung)
991 <bug>42608</bug>: Handle Content-length as unsigned 64Bit
992 to allow for huge up- and downloads. (rjung)
995 Apache: Add forwarding uri to debug log. (rjung)
998 Docs: Clarify relation between worker names and jvmRoute for load balancing. (rjung)
1001 Use initial zero timeout for jk_is_socket_connected. The resulting
1002 detection is the same but offers a huge performance increase
1003 with mod_jk. In most cases the Operating System does not favor
1004 the 1 microsecond timeout, but it rather rounds that up to much
1005 higher value (frequency of interrupt timer which on most systems
1007 Patch provided by David McLaughlin. (mturk)
1010 NSAPI: Check correct log file and shm file configuration during startup. (rjung)
1013 NSAPI: Add support for the general options concerning retries, flushing
1014 and connection persistance. (rjung)
1017 NSAPI: fix crashes due to use of mount attribute in workers.properties.
1018 Changed initialization order. (rjung)
1021 Improved handling of libtool and discrepancies between CC env variable and
1022 CC used during apache build by configure script. (rjung)
1025 Always build with thread support, unless flag --enable-prefork
1026 is set during for configure. (rjung)
1029 Use snprintf/vsnprintf from ap_snprintf.c for platforms other
1030 than Windows, which might lack snprintf/vsnprintf implementations
1031 when NOT build for Apache httpd 2.x/APR (e.g. Sub Web Server)
1032 or without using configure. (fuankg)
1035 Imported ap_snprintf() from Apache 1.3. (fuankg)
1038 Fix incorrect log object cleanup during statup,
1039 leading to crashes at least on iSeries. (rjung)
1042 Add jk_stat() and jk_file_exists() as wrapper functions.
1043 i5/OS V5R4 expects filename in ASCII for fopen but requires them
1044 in EBCDIC for stat(). (hgomez)
1047 i5/OS (AS/400) V5R4 port where Apache 2.0 modules should now use UTF8. (hgomez)
1050 Docs: Add comments on i5/OS build for V5R4 and previous releases. (hgomez)
1055 <section name="Changes between 1.2.22 and 1.2.23">
1057 <subsection name="Native">
1060 [<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-0450"><b>CVE-2007-0450</b></a>]
1062 [<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-1860"><b>CVE-2007-1860</b></a>]:
1063 Change the default value of JkOptions to ForwardURICompatUnparsed.
1064 The old default value was ForwardURICompat.
1065 This should make URL interpretation between Apache httpd and
1066 Tomcat consistent (prevent double decoding problems). (rjung)
1071 <section name="Changes between 1.2.21 and 1.2.22">
1073 <subsection name="Native">
1076 Refactor line endings logging to make it correct for all
1077 platforms and webservers. (mturk)
1080 Added command line windows make files. (mturk)
1083 Allow fail_on_status directive to be multi line. (mturk)
1086 <bug>42076</bug>: Fix name of new option from ForwardCertChain to
1087 ForwardSSLCertChain as documented. (rjung)
1090 Docs: Fix a couple of typos, change format of a few tables,
1091 fix links to news pages. (rjung)
1094 Fix correct URL for TC 6 examples in new IIS rewrite.properties
1095 configuration example file. (rjung)
1098 Add svn properties to several files. (rjung)
1101 Add TC 6 examples to uriworkermap.properties in config examples. (rjung)
1104 Allow multiple status codes for fail_on_status directive.
1105 The status codes can be delimited by space or comma characters. (mturk)
1108 IIS. Added pcre like regular expressions for url rewrite rules. (mturk)
1111 <bug>41922</bug>: Apache 1.3. Enable JkEnvVar. (mturk)
1114 Apache. Add --enable-flock configure parameter for explicit
1115 compilation of faster flock() system calls for OS supporting
1116 those calls. By default the fcntl system call for locking will
1117 be used that is a little bit slower but it can work on NFS
1118 mounted volumes as well. (mturk)
1121 <bug>41562</bug>: Add Debug logging for read from client in ISAPI Redirector.
1122 Contributed by Tim Whittington. (mturk)
1125 Apache. Add ForwardSSLCertChain JkOption.
1126 Contributed by Patrik Schnellmann. (mturk)
1129 IIS. Do not forbid access to web-inf or meta-inf if there is
1130 no mapped worker. This allows to have resource with those names
1131 that are outside mapped contexts. (mturk)
1134 Apache. Use process id for creating shared memory name and delete shared
1135 memory and shared memory lock files on exit. (mturk)
1138 IIS. Fix Keep-Alive regression introduced in 1.2.21. (mturk)
1141 Delete unused check for empty init_map during startup. (rjung)
1144 <bug>41770</bug>: Fix startup error if no JkWorkersFile is used. (rjung)
1147 Use JK_TRUE/JK_FALSE instead of OK/!OK as return values in init_jk(). (rjung)
1150 Minor adjustments to apache startup log messages (when to use STDERR, remove
1151 deprecated NOERRNO flag, shm warning and warnings for usage of default files). (rjung)
1154 Replace APR precompiler directive by httpd mpm_query to detect MPM threading.
1155 Add a debug log message about auto-detected pool size. (rjung)
1158 Make MMN check easier to understand and a little more precise
1159 (for new ap_get_server_banner()/ap_get_server_description()).
1160 We use the new API only for Apache httpd 2.3. This way our binaries are not
1161 tightly coupled to a minor 2.0 version, and we don't use ap_get_server_banner()
1165 Use the full description string ap_get_server_description() instead of
1166 the truncated info from ap_get_server_banner(), because this info gets used internally
1167 (status worker display and ajp14 backend communication) and is not send back to the
1168 normal user. (rjung)
1171 <bug>41757</bug>: Document the "--enable-prefork" flag of configure. (rjung)
1174 Enhance log messages for failures when parsing attribute maps. (rjung)
1177 Correct log message during worker initialization, in case remote host could not be
1178 resolved. We logged the default host name "localhost" instead of the configured one. (rjung)
1181 <bug>41770</bug>: Fix the second part of the bug: local_worker and local_worker_only
1182 is missing from the list of deprecated attributes (and not supported either), so prevents
1183 the web server from startup. (rjung)
1188 <section name="Changes between 1.2.20 and 1.2.21">
1190 <subsection name="Native">
1193 [<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-0774"><b>CVE-2007-0774</b></a>]:
1194 A denial of service and critical remote code execution vulnerability.
1195 Caused by buffer overflow in map_uri_to_worker() when URL were longer that 4095 bytes.
1196 Reported by ZDI (www.zerodayintiative.com).
1197 Please note this issue only affected versions 1.2.19 and 1.2.20 of the
1198 Apache Tomcat JK Web Server Connector and not previous versions.
1199 Tomcat 5.5.20 and Tomcat 4.1.34
1200 included a vulnerable version in their source packages.
1201 Other versions of Tomcat were not affected.
1204 Check the worker. parameters and don't start if the parameter is not a valid one. (jfclere)
1207 <bug>41439</bug>: Allow session IDs to get stripped off URLs of static
1208 content in Apache by adding JkStripSession
1209 directive (configurable per vhost). (mturk)
1212 Change semantics of empty defaults for JkEnvVar variables.
1213 Until 1.2.19: not allowed. In 1.2.20: send variables as empty strings, if
1214 neither set to non empty in config, nor during runtime.
1215 Starting with 1.2.21: If config has no second argument only send
1216 variable if set (even when set to empty string) during runtime.
1217 Allows good combination with condition attribute in tomcat access log. (rjung)
1220 <bug>41610</bug>: Fix incorrect detection of missing Content-Length
1221 header leading to duplicate headers. Contributed by Boris Maras. (rjung)
1224 Better build support for SunONE (Netscape/iPlanet) webservers. (jim)
1227 Add warning if duplicate map keys are read and are not allowed,
1228 e.g. when parsing uriworkermap.properties. (rjung)
1231 Don't concat worker names, if uriworkermap.properties has a duplicate
1232 pattern, instead overwrite the worker. (rjung)
1235 Log deprecation message even in duplication case. (rjung)
1238 uriworkermap.properties: Fix off-by-one problem when deleting
1239 URL mapping during reloading of uriworkermap.properties. (rjung)
1242 <bug>41439</bug>: Allow session IDs to get stripped off URLs of static
1243 content in IIS (configurable). (rjung)
1246 <bug>41333</bug>: Refactoring isapi_plugin configuration reading. (rjung)
1249 <bug>41332</bug>: Add some more errno logging and unify the format. (rjung)
1252 JkStatus: Improved logging by adding status worker name to messages.
1253 Added messages to the recover worker action. (rjung)
1256 JkStatus: Refactoring searching for workers and sub workers. (rjung)
1259 <bug>41318</bug>: Add configuration to make status worker user
1260 name checks case insensitive. (rjung)
1263 JkStatus: Add estimated time until next global maintenance to other
1264 mime types and adopt jkstatus ant task. (rjung)
1267 JkStatus: Show estimated time until next global maintenance.
1268 Change displayed time until next recovery to a min/max pair. (rjung)
1271 JkStatus: Allow a user of a read/write status worker to switch it
1272 to and from read_only mode temporarily. (rjung)
1275 JkStatus: Do not show read/write commands in a read_only status worker. (rjung)
1278 JkStatus: Allow lb sub workers in error state to be marked for recovery
1279 administratively from the status worker. (rjung)
1282 Load Balancer: Do not try to recover multiple times in parallel.
1283 Use additional runtime states "PROBE" and "FORCED". (rjung)
1286 JkStatus: Improve data synchronization between different processes. (rjung)
1289 <bug>41381</bug>: Fix segfault in feature fail_on_status
1290 (wrong order of log arguments). Patch by Juri Haberland. (rjung)
1293 Use correct windows line endings for log file on WIN32 platform. (rjung)
1298 <section name="Changes between 1.2.19 and 1.2.20">
1300 <subsection name="Native">
1303 JkStatus Ant Task documentation page. (pero/rjung)
1306 JkStatus Ant Tasks: Add new tasks for update and reset. (pero)
1309 JkStatus Ant Tasks: Update for new xml status format. (pero)
1312 Allow integer and string values when setting enumeration/boolean
1313 attributes via status worker update action. (rjung)
1316 Docs: New reference guide page for status worker. (rjung)
1319 Docs: Renaming the config dir to reference and using the title
1320 Reference Guide in the docs. (rjung)
1323 Added retry_on_status for workers directive. (mturk)
1326 Status Worker: Add directive to make property prefix
1327 and good/bad rule configurable. (rjung)
1330 Status Worker: Omit lb members when att=nosw. (rjung)
1333 Status Worker: New command cmd=version for a short version output. (rjung)
1336 Status Worker: New output stype mime=prop produces property lists. (rjung)
1339 Apache: Fix incorrect handling of JkEnvVar when Vars are set multiple times. (rjung)
1342 Renamed jvm_route to route. Deprecated jvm_route, but still use it as fallback
1343 when parsing the worker configuration. (rjung)
1346 IIS: Make uriworkermap file reload check interval configurable. (mturk)
1349 Apache: Make uriworkermap file reload check interval configurable. (rjung)
1352 Status Worker: Add directives for customizing the XML
1353 output (ns, xmlns, doctype). (mturk)
1356 Docs: New page with description of uriworkermap. (rjung)
1359 Docs: Added short description of max_packet_size to worker
1363 Status Worker: All functions accessible also for xml and txt
1364 mime types (list, show, update, reset). (rjung)
1367 Status Worker: New global health indicators for load balancers
1368 named bad (error, recovering or stopped), degraded (busy or disabled)
1369 and good (the rest, active and OK or N/A). (rjung)
1372 Status Worker: New edit page, to change one attribute for all
1373 members of a load balancer. (rjung)
1376 Status Worker: Standard logging for status worker. (rjung)
1379 Status Worker: code refactoring. (rjung)
1382 Status Worker: New attribute user (list) denies access, if
1383 the request user in the sense of remote_user is not in this list.
1384 Empty list = no deny (rjung)
1387 Status Worker: New attribute read_only disables the parts
1388 of the status worker, that change states and configurations. (rjung)
1391 <bug>36121</bug>: Don't change main uri when mod_jk serves
1392 included uri. (markt)
1395 Apache VHosts: Merge JkOptions +base - -base + +vhost - -vhost. (rjung)
1398 Apache Docs: Adding requirements, context information, default values and
1399 inheritance rules to the Apache config documentation. (rjung)
1402 Status Worker: Add source type to status worker, remove the redundant "context"
1403 column in the map listing (context=uri). (rjung)
1406 uriworkermap: On reload of the file, all old entries from the previous file
1407 version get deleted, before the new ones are being read. (rjung)
1410 Keep normal maps and exclusion maps internally separate. Don't treat them
1411 as the same when adding a rule. (rjung)
1414 Status Worker: Display mapping rules also for non-lb workers and in global view. (rjung)
1417 Apache VHosts: Use the vhost log files instead of the main log. (rjung)
1420 Apache VHosts: Allow individual timestamp formats by refactoring the formatting
1424 Apache VHosts: Adding all missing config items to the virtual host level.
1425 Don't overwrite the settings from the global server, but inherit them
1426 in case they are not set in the virtual host. (rjung)
1429 Apache: remove unnecessary function names from log messages. (rjung)
1432 Apache: add a default log file location and a message, if the default gets used. (rjung)
1435 Apache: add missing JK_IS_DEBUG_LEVEL() (rjung)
1438 Apache VHosts: Allow JkWorkersFile, JKWorkerProperty, JkShmFile and JkShmFileSize
1439 only in global virtual server. (rjung)
1442 Add some more jk_close_socket() and reduce log level for some info messages. (rjung)
1445 Load Balancer: Added the Sessions strategy. Contributed by Takayuki Kaneko. (rjung)
1448 Docs: Minor enhancements and syncing with more recent versions. (rjung)
1451 <bug>40997</bug>: Separate uri mappings from their '!'
1452 counterpart when checking for duplicates in uriworkermap
1456 <bug>40877</bug>: Make sure the shared memory is reset on
1457 attach for multiple web server child processes. (mturk)
1460 IIS: Added shm_size property to be able to deal with over 64
1461 workers configurations. (mturk)
1464 IIS: Increase default thread count to 250, so its the same as Apache Httpd
1465 default configuration. (mturk)
1468 <bug>40966</bug>: Fix socket descriptor checks on windows. (mturk)
1471 <bug>40965</bug>: Initialize missing service parameters. (mturk)
1474 <bug>40938</bug>: Fix releasing of rewrite map.
1475 Thanks to Chris Adams for spotting that. (mturk)
1478 Apache: Added +FlushHeader JkOptions. (mturk)
1481 Added explicit flush when AJP body packet size is zero. (mturk)
1484 <bug>40856</bug>: Fixing case sensitivity bug in URL mapping. (rjung)
1487 <bug>40793</bug>: Documentation: Improvements to Apache HowTo provided by
1488 Paul Charles Leddy. (markt)
1491 <bug>40774</bug>: Fixing wrong recursion termination. This one restricted the
1492 "reference" feature unintentionally to 20 workers. (rjung)
1495 <bug>40716</bug>: Adding "reference" feature to IIS and Netscape. (rjung)
1498 Documentation: Corrected SetEnvIf syntax in JK_WORKER_NAME example. (rjung)
1501 Documentation: Added forgotten STATE and ACTIVATION notes for load balancer logging in Apache. (rjung)
1504 Apache: Use instdso.sh instead libtool: libtool does not work on HP-UX for example. (jfclere)
1509 <section name="Changes between 1.2.18 and 1.2.19">
1511 <subsection name="Native">
1514 Docs: Add SetHandler and new env var to Apache config docs. (rjung)
1517 Apache 1.3: Backport "no-jk" feature. (rjung)
1520 Apache: Add an environment variable to make SetHandler "jakarta-servlet" more
1521 useful. The variable is JK_WORKER_NAME, but can be changed by the
1522 new directive JkWorkerIndicator. (rjung)
1525 LB: Don't use single worker shortcut, if the single worker is being diabled. (rjung)
1528 Status worker: Add short explanation of activation and error states to legend. (rjung)
1531 Docs: Add meaning of zero timeout values for various timeouts
1532 in workers.properties. (rjung)
1535 LB: Cleanup of Mladens forced recovery. (rjung)
1538 LB: Do not change lb_value for recovering workers to max, if
1539 we are using BUSYNESS method. (rjung)
1542 Apache: Since 1.2.14 mod_jk failed to detect client abort. (rjung)
1545 Docs: Corrected description of JkEnvVar. (rjung)
1548 Solaris: Detect filio.h in configure to make the new connection detection
1549 build on solaris (r432825). (rjung)
1552 Add feature to force the recovery of workers that are
1553 member of loadbalancer if all the members are in error
1554 state. This fixes the time gap where 503 was returned
1555 caused by recovery_timeout although the backend was
1556 ready to handle the requests. (mturk)
1559 Docs: Seperate deprecated directives in their own table. (rjung)
1562 Docs: Allow "-" and "_" in worker names. (rjung)
1565 Allow multiple lines with attributes "balance_workers" and "mount". (rjung)
1568 Make jk_is_some_property match more precisely. (rjung)
1571 JkStatus: Make refresh interval changeable. (rjung)
1574 JkStatus: Adjust display of recover time wrt. global maintenance. (rjung)
1577 LB: Resetting worker state from OK to NA, if worker has been idle
1581 Avoid compiler warnings concerning the use of lb_*_type arrays.
1582 Use functions instead. (rjung)
1585 Added %R JkRequestLogFormat option for Apache 1 and Apache 2. (mturk)
1588 Allow changing jvm Route from status manager. (mturk)
1591 Do not retun 400 if Tomcat fails in the midle of the post
1592 request. Return 500 insted. (mturk)
1595 LB: Combine ok/error/recovering/busy runtime states into a single scalar. (rjung)
1598 LB: Combine active/disabled/stopped configuration states into a single scalar. (rjung)
1601 LB: Add several Apache notes to enable standard logging for load balancer results. (rjung)
1604 LB: Reorganisation of the main load balancer service loop. (rjung)
1607 Implement hierarchical worker configuration via attribute "reference". (rjung)
1610 Log deprecated properties. (rjung)
1613 IIS: Fix simple_rewrite for the cases where the
1614 rewritten url is larger then the original one. (mturk)
1617 New JkOption "DisableReuse" to disable connection persistence. (jim)
1620 LB: Move sessionid retrieval out of get_most_suitable_worker into service. (rjung)
1623 Code cleanup for all service methods (use TRACE, JK_LOG_NULL_PARAMS, null pointer checks). (rjung)
1626 JKSTATUS: add refresh link. No refresh for updates. Redirect to list view after update. (rjung)
1629 Add new hook add_log_items into servers. (rjung)
1632 APACHE httpd: Rename apache logging notes. (rjung)
1635 LB: Rename lock and method constants. Add constants for defaults. (rjung)
1638 Default log level should be INFO and not DEBUG.
1639 Default log level should be the same for all server types. (rjung)
1642 Make rewrite_rule_map and log_level as non mandatory
1643 directives for isapi_redirect. (mturk)
1646 <bug>40107</bug>: Rewrite is_socket_connected function.
1647 Non blocking socket is not used any more. (mturk)
1650 Allow building with VS2005 without too many warnings. (mturk)
1653 Decide by MMN, which piped log API we should use.
1654 mod_jk 1.2.18 broke compilation with Apache 1.3 pre 1.3.28. (rjung)
1659 <section name="Changes between 1.2.17 and 1.2.18">
1661 <subsection name="Native">
1664 Using socklen_t in getsockopt. Also introducing jk_sock_t. (mturk)
1667 Allow recovery wait time below 60 seconds (new minimum is 1 second). (mturk)
1672 <section name="Changes between 1.2.16 and JK 1.2.17">
1674 <subsection name="Native">
1677 Fix hanging jk status worker when certain attributes are being updated
1678 due to double locking. (rjung)
1681 Allow JkMount to behave like uriworkermap.properties
1682 by parsing pipe symbol as two directive marker. (mturk)
1687 <section name="Changes between 1.2.15 and JK 1.2.16">
1689 <subsection name="Native">
1692 Added simple rewrite capability for IIS. Although simple it
1693 will fulfill most needs. (mturk)
1696 Added RECOVER_ABORT_IF_CLIENTERROR recovery_option that closes
1697 the connection if client connection is broken during the request. (mturk)
1700 Renamed cache_timeout directive to connection_pool_timeout. (mturk)
1703 Added connection_pool_minsize directive. (mturk)
1706 Deprecate recycle_timeout directive. (mturk)
1709 Corrected some HTML syntax bugs in output of status worker. (rjung)
1712 Added the refresh=n parameter to the status worker. It will update the display every n seconds. (rjung)
1715 Balancer: Add attribute distance to balanced workers to express preferences between workers. (rjung)
1718 Balancer: Add attribute jvm_route to balanced workers to be able to use the same target in different balancers. (rjung)
1721 Status: Add lb_mult to status. (rjung)
1724 Balancer: Make different balancing strategies work in a similar way (use lb_value, use decay during global maintenance, use integer factors for weights. (rjung)
1727 Balancer: Improve locking. (rjung)
1730 Balancer: Workers start slower after recovering. (rjung)
1733 Balancer: Make different balancing strategies work in a similar way (use lb_value, use decay during global maintenance, use integer factors lb_mult for weights). (rjung)
1736 Balancer: Move recovery check to global maintenance. (rjung)
1739 Balancer: Add global maintenance method, that is called in only one process. (rjung)
1742 Extend our use of autoconf to find a 32Bit and a 64Bit unsigned type and their printf formats. (rjung)
1745 Logging: piped loggers for JkLogFile and Apache 1.3. (rjung)
1748 Logging: Add PID to log lines for each log level apart from REQUEST. (rjung)
1751 Logging: flush buffered logs to keep lines in correct order. Output final newline together with log message. (rjung)
1754 Reducing shm size. (rjung)
1757 Only log removing of old worker, when we actually do it. (rjung)
1760 <bug>37469</bug>: Fix shared memory close for forked childs.
1761 The shared memory will be closed by the parent process. (mturk)
1764 <bug>37332</bug>: Fix potential misuse of buffer length with
1765 snprintf functions. (mturk)
1769 [<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-7197"><b>CVE-2006-7197</b></a>]
1770 Protect mod_jk against buggy or malicious
1771 AJP servers in the backend. Patch provided by Ruediger Pluem. (mturk)
1774 <bug>38889</bug>: Use worker map sorting depending on the path
1775 elements, to comply with Servlet spec. Patch provided by
1776 Steve Revilak. (mturk)
1779 <bug>36138</bug>: Added Busyness lb method. Patch provided
1780 by Chris Lamprecht. (mturk)
1783 Fix pessimistic locking mode. The patch correctly handles the
1784 burst load, by syncing the access to the shared memory data. (mturk)
1787 <bug>38806</bug>: Reclycle worker even if it is disabled.
1788 This fixes hot-standby workers in error state. (mturk)
1791 <bug>37167</bug>: Allow building with BSD-ish like make. (mturk)
1794 ISAPI plugin (isapi_redirect.dll) did not provide correct request data
1796 to include in the IIS log. (markt)
1801 <section name="Changes between 1.2.14 and 1.2.15">
1803 <subsection name="Native">
1806 Fix AJP13 Cookie2 parsing. Cookie2 was always send as Cookie.
1807 Patch provided by Andre Gebers. (mturk)
1810 <bug>35862</bug>: NSAPI plugin attempts to read freed memory and attempts to
1811 dereference a null pointer. Patch provided by Brian Kavanagh. (markt)
1816 <section name="Changes between 1.2.13 and 1.2.14">
1818 <subsection name="Native">
1821 Fix lb for worker mpm's with cachesize set to lower number then
1822 ThreadsPerChild is. If retries is set to value larger then 3 sleep for
1823 100 ms on each attempt. This enables to tune the connection cache,
1824 and serialize incoming connections instead returning busy if connection
1825 count is larger then cachesize. (mturk)
1828 <bug>36525</bug>: Solaris core dump. (mturk)
1831 <bug>36102</bug>: Worker actions do not persist. (mturk)
1834 <bug>35864</bug>: Status worker doesn't list workers.
1835 Patch provided by Martin Goldhahn. (mturk)
1838 <bug>35809</bug>: JkMountCopy don't work for Apache 2.0 Patch provided by
1839 Christophe Dubach. (mturk)
1842 <bug>35298</bug>: Multiple JK/ISAPI redirectors on a single IIS site are not supported
1843 Patch provided by Tim Whittington. (mturk)
1848 <section name="Changes between 1.2.12 and 1.2.13">
1850 <subsection name="Native">
1853 <bug>34397</bug>: Emergency was handled as Error. (jfclere)
1856 <bug>34474</bug>: // in URL were not handled correctly with Apache-1.3. (jfclere)
1859 Use 64 bits int for transferred/read bytes.
1862 Added JkOptions +FlushPackets used to optimize memory
1863 usage when sending large data. (mturk)
1866 Added lock directive for load balancer that allows more acurate
1867 load balancing in case of burst load. (mturk)
1870 Added worker.maintain directive to allow customizing default 10
1871 second timeout. On busy servers this value needs to be set on
1872 higher value. (mturk)
1875 Fix for NetWare compiler to deal with different types between AP13
1876 and AP2 SDKs. (fuankg)
1879 Emit much more legible user.dmp crash analysis output for WIN32. (wrowe)
1882 <bug>34558</bug>: Fix first failover request. (mturk)
1888 <section name="Changes between 1.2.11 and 1.2.12">
1890 <subsection name="Native">
1893 Added ForwardLocallAddres JkOptions flag for passing local instead remote
1894 address. Useful for remote addr valve. (mturk)
1896 <fix>Fix that worker not used, when stopped flag is true. (pero)
1899 Add loadbalance default worker secret attribute to the documentation (pero)
1905 <section name="Changes between 1.2.10 and 1.2.11">
1907 <subsection name="Native">
1909 <fix>Backport SC_M_JK_STORED from JK2 for passing arbitrary
1910 methods instead failing the request. (mturk)
1912 <fix>Added missing SEARCH and ACL http methods. (mturk)
1915 Add worker secret attribute to the documentation (pero)
1918 Add a stopped flag to worker configuration. Set flag True and
1919 complete traffic to worker is stopped.
1920 Also update the Ant JkStatusUpdateTask at Tomcat 5.5.10 release.
1921 Only usefull in a replicated session cluster.(pero)
1923 <update>Added worker maintain function that will maintain all
1924 the workers instead just the current one. This enables to recycle
1925 the connections on all workers. (mturk)
1927 <update>Use shutdown when recycling connections instead hard
1928 breaking the socket. (mturk)
1930 <update>Add unique directives checking. The directives if
1931 unique are now overwritten instead concatenated. (mturk)
1933 <update>Allow multiple worker.list directives. (mturk)
1936 <bug>34577</bug>: For IIS log original request instead loging
1937 the request for ISAPI extension. (mturk)
1940 <bug>34558</bug>: Make sure the returned status codes are the same
1941 for ajp and lb workers. (mturk)
1944 <bug>34423</bug>: Use APR_USE_FLOCK_SERIALIZE for setting log lock
1945 on platforms like FreeBSD. Patch provided by Allan Saddi. (mturk)
1948 <bug>33843</bug>: Fix obtaining LDFLAGS that were used for building
1949 Apache HTTPD. Patch provided by Beat Kneubuehl. (mturk)
1952 <bug>34358</bug>: Enable load balancer method configuration. (glenn)
1955 <bug>34357</bug>: In some situations Apache 2 mod_jk could segfault
1956 when the JkAutoAlias directive is used. (glenn)
1959 Add --enable-prefork to the documentation (pero)
1964 <section name="Changes between 1.2.9 and 1.2.10">
1966 <subsection name="Native">
1968 <update>Set default shared memory to 64K instead 1M. (mturk)
1970 <fix>Do not mark the worker in error state if headers are
1971 larger then AJP13 limit. (mturk)
1974 On Series you should use the latest PTF for Apache 2.0
1975 (which is now 2.0.52) and ad minima SI17402/SI17061 or cumulative
1976 including them. (hgomez)
1979 Change the xml status format to xml attribute syntax (pero)
1982 <bug>33248</bug>: Fix builds where apxs defines multiple
1983 directories for APR includes. (mturk)
1986 <bug>32696</bug>: Return 404 instead 403 when WEB-INF is requested
1987 to comply with Servlet spec. (mturk)
1989 <update>Added ANT task for managing jkstatus. (pero)
1992 If socket_timeout is set, check if socket is alive before
1993 sending any request to Tomcat. (mturk)
1996 Added JkMountFile for Apache web servers. This file can contain
1997 uri mappings in the form (/url=worker), and is checked for
1998 updates at regular 60 second interval. (mturk)
2001 Added status worker for managing worker runtime data using
2005 Added load balancer method directive that is used for setting
2006 the algorithm used for balancing workers. Method can be either
2007 Request (default) or Traffic. (mturk)
2010 Added shared memory to allow dynamic configuration. Shared memory
2011 is needed only for unix platform and web servers having multiple
2012 child processes. For Apache web server two new directives has been
2013 added (JkShmFile and JkShmSize). (mturk)
2016 Added textupdate mode to status worker to handle remote updates
2017 from ant tasks.(pero)
2020 <bug>33562</bug>: Fix Reply_timeout when recovery_options
2021 is larger than 1. Patch provided by Takashi Satou. (mturk)
2024 <bug>33308</bug>: Fix segfaults when ForwardDirectories is enabled
2030 <section name="Changes between 1.2.7 and 1.2.8">
2032 <subsection name="Native">
2035 Allow anyone to debug and diagnose stack dumps using windbg or any
2036 other debugging tool, and (if they add the .pdb files to their
2037 installation) to make sense of dr watson logs.
2038 Patch provided by William A. Rowe (wrowe)
2041 Fix in_addr_t usage by using the real struct ignoring typedef.
2042 Patch provided by William A. Rowe (wrowe)
2045 Fix url rewriting by restoring the in place uri from which the
2046 jsessionid was removed. (mturk)
2049 Make load balancer algorithm thread safe by introducing mutex
2050 to the load balancer worker. (mturk)
2053 Fix sending error pages for IIS to client by adding Content-Type header
2054 using correct api function call. (mturk)
2057 <bug>32696</bug>: Prevent IIS from crushing when web-inf url was requested. (mturk)
2060 Use default cachesize for servers that support discovering the number of
2061 threads per child process. (mturk).
2064 Fix Apache content-length header parsing using case insensitive compare. (billbarker)
2067 Fix parsing AJP headers using case insensitive compare. (mturk)
2070 Use infinite socket timeout if socket_timeout is set to zero or less then zero. (mturk)
2073 Change <b>balanced_workers</b> to <b>balance_workers</b> but keep
2074 backward compatibility preserving the old directive. (mturk).
2077 Fix ajp initialization for workers with cache_size set to zero. (mturk)
2080 <bug>32317</bug>: Making mod_jk replication aware (Clustering Support).
2081 Patch provided by Rainer Jung. (mturk).
2084 <bug>31132</bug>: Core dump when JkLogFile is missing from conf. (mturk)
2089 <section name="Changes between 1.2.6 and 1.2.7">
2091 <subsection name="Native">
2094 Added new property named recover_time that can be used to change the
2095 default 60 second recover time. (mturk)
2098 Added custom retries for worker, so we don't depend on default setting.
2099 If set to a number grater then 3, it will sleep for 100ms on retry greater
2100 then 3 and then try again. (mturk)
2103 Added JkWorkerProperty directive that enables omiting workers.properties file.
2104 For example: JkWorkerProperty worker.ajp13a.port=8009. (mturk)
2107 Check all JSESSIONID cookies for a valid jvmRoute. If you have multiple Tomcats
2108 with overlapping domains, then you can get multiple cookies without a defined order.
2109 This will route correctly as long as the different domains don't have any
2110 Tomcats in common. (billbarker)
2113 Added JkUnMount directive for negative mappings that works as opposite to JkMount directives.
2114 It is used for blocking of particular URL or content type. (mturk)
2117 Added wildchar match uri mappings. One can now use JkMount to
2118 map /app/*/servlet/* or /app?/*/*.jsp. (mturk)
2121 Rewrite the logging by adding Trace options. (mturk)
2124 Added socket_timeout property that sets the timeout
2125 for the socket itself. (mturk)
2128 Changed socket_timeout property to recycle_timeout. This better
2129 explains what the directive actually does. (mturk)
2132 Changed the load balancer algorithm.
2133 The idea behind this new scheduler is the following:
2134 lbfactor is <i>how much we expect this worker to work</i>,
2135 or <i>the worker's work quota</i>.
2136 lbstatus is <i>how urgent this worker has to work to fulfill its quota
2137 of work</i>. We distribute each worker's work quota to the worker, and then look
2138 which of them needs to work most urgently (biggest lbstatus). This
2139 worker is then selected for work, and its lbstatus reduced by the
2140 total work quota we distributed to all workers. Thus the sum of all
2141 lbstatus does not change.(*)
2142 If some workers are disabled, the others will
2143 still be scheduled correctly. (mturk)
2148 <section name="JK 2">
2149 <p>JK2 has been put in maintainer mode and no further development will take place.
2150 The reason for shutting down JK2 development was the lack of developers interest.
2151 Other reason was lack of users interest in adopting JK2, caused by configuration
2152 complexity when compared to JK.