xref: /unit/CHANGES (revision 1134)
1*1134Svbart@nginx.com
2*1134Svbart@nginx.comChanges with Unit 1.10.0                                         22 Aug 2019
3*1134Svbart@nginx.com
4*1134Svbart@nginx.com    *) Change: matching of cookies in routes made case sensitive.
5*1134Svbart@nginx.com
6*1134Svbart@nginx.com    *) Change: decreased log level of common errors when clients close
7*1134Svbart@nginx.com       connections.
8*1134Svbart@nginx.com
9*1134Svbart@nginx.com    *) Change: removed the Perl module's "--include=" ./configure option.
10*1134Svbart@nginx.com
11*1134Svbart@nginx.com    *) Feature: built-in WebSocket server implementation for Node.js module.
12*1134Svbart@nginx.com
13*1134Svbart@nginx.com    *) Feature: splitting PATH_INFO from request URI in PHP module.
14*1134Svbart@nginx.com
15*1134Svbart@nginx.com    *) Feature: request routing by scheme (HTTP or HTTPS).
16*1134Svbart@nginx.com
17*1134Svbart@nginx.com    *) Feature: support for multipart requests body in Java module.
18*1134Svbart@nginx.com
19*1134Svbart@nginx.com    *) Feature: improved API compatibility with Node.js 11.10 or later.
20*1134Svbart@nginx.com
21*1134Svbart@nginx.com    *) Bugfix: reconfiguration failed if "listeners" or "applications"
22*1134Svbart@nginx.com       objects were missing.
23*1134Svbart@nginx.com
24*1134Svbart@nginx.com    *) Bugfix: applying a large configuration might have failed.
25*1134Svbart@nginx.com
261069Svbart@nginx.com
271069Svbart@nginx.comChanges with Unit 1.9.0                                          30 May 2019
281069Svbart@nginx.com
291069Svbart@nginx.com    *) Feature: request routing by arguments, headers, and cookies.
301069Svbart@nginx.com
311069Svbart@nginx.com    *) Feature: route matching patterns allow a wildcard in the middle.
321069Svbart@nginx.com
331069Svbart@nginx.com    *) Feature: POST operation for appending elements to arrays in
341069Svbart@nginx.com       configuration.
351069Svbart@nginx.com
361069Svbart@nginx.com    *) Feature: support for changing credentials using CAP_SETUID and
371069Svbart@nginx.com       CAP_SETGID capabilities on Linux without running main process as
381069Svbart@nginx.com       privileged user.
391069Svbart@nginx.com
401069Svbart@nginx.com    *) Bugfix: memory leak in the router process might have happened when a
411069Svbart@nginx.com       client prematurely closed the connection.
421069Svbart@nginx.com
431069Svbart@nginx.com    *) Bugfix: applying a large configuration might have failed.
441069Svbart@nginx.com
451069Svbart@nginx.com    *) Bugfix: PUT and DELETE operations on array elements in configuration
461069Svbart@nginx.com       did not work.
471069Svbart@nginx.com
481069Svbart@nginx.com    *) Bugfix: request schema in applications did not reflect TLS
491069Svbart@nginx.com       connections.
501069Svbart@nginx.com
511069Svbart@nginx.com    *) Bugfix: restored compatibility with Node.js applications that use
521069Svbart@nginx.com       ServerResponse._implicitHeader() function; the bug had appeared in
531069Svbart@nginx.com       1.7.
541069Svbart@nginx.com
551069Svbart@nginx.com    *) Bugfix: various compatibility issues with Node.js applications.
561069Svbart@nginx.com
57991Svbart@nginx.com
58991Svbart@nginx.comChanges with Unit 1.8.0                                          01 Mar 2019
59991Svbart@nginx.com
60991Svbart@nginx.com    *) Change: now three numbers are always used for versioning: major,
61991Svbart@nginx.com       minor, and patch versions.
62991Svbart@nginx.com
63991Svbart@nginx.com    *) Change: now QUERY_STRING is always defined even if the request does
64991Svbart@nginx.com       not include the query component.
65991Svbart@nginx.com
66991Svbart@nginx.com    *) Feature: basic internal request routing by Host, URI, and method.
67991Svbart@nginx.com
68991Svbart@nginx.com    *) Feature: experimental support for Java Servlet Containers.
69991Svbart@nginx.com
70991Svbart@nginx.com    *) Bugfix: segmentation fault might have occurred in the router process.
71991Svbart@nginx.com
72991Svbart@nginx.com    *) Bugfix: various potential memory leaks.
73991Svbart@nginx.com
74991Svbart@nginx.com    *) Bugfix: TLS connections might have stalled.
75991Svbart@nginx.com
76991Svbart@nginx.com    *) Bugfix: some Perl applications might have failed to send the response
77991Svbart@nginx.com       body.
78991Svbart@nginx.com
79991Svbart@nginx.com    *) Bugfix: some compilers with specific flags might have produced
80991Svbart@nginx.com       non-functioning builds; the bug had appeared in 1.5.
81991Svbart@nginx.com
82991Svbart@nginx.com    *) Bugfix: Node.js package had wrong version number when installed from
83991Svbart@nginx.com       sources.
84991Svbart@nginx.com
85926Svbart@nginx.com
86926Svbart@nginx.comChanges with Unit 1.7.1                                          07 Feb 2019
87926Svbart@nginx.com
88926Svbart@nginx.com    *) Security: a heap memory buffer overflow might have been caused in the
89926Svbart@nginx.com       router process by a specially crafted request, potentially resulting
90926Svbart@nginx.com       in a segmentation fault or other unspecified behavior
91926Svbart@nginx.com       (CVE-2019-7401).
92926Svbart@nginx.com
93926Svbart@nginx.com    *) Bugfix: install of Go module failed without prior building of Unit
94926Svbart@nginx.com       daemon; the bug had appeared in 1.7.
95926Svbart@nginx.com
96886Svbart@nginx.com
97886Svbart@nginx.comChanges with Unit 1.7                                            20 Dec 2018
98886Svbart@nginx.com
99886Svbart@nginx.com    *) Change: now rpath is set in Ruby module only if the library was not
100886Svbart@nginx.com       found in default search paths; this allows to meet packaging
101886Svbart@nginx.com       restrictions on some systems.
102886Svbart@nginx.com
103886Svbart@nginx.com    *) Bugfix: "disable_functions" and "disable_classes" PHP options set via
104886Svbart@nginx.com       Control API did not work.
105886Svbart@nginx.com
106886Svbart@nginx.com    *) Bugfix: Promises on request data in Node.js were not triggered.
107886Svbart@nginx.com
108886Svbart@nginx.com    *) Bugfix: various compatibility issues with Node.js applications.
109886Svbart@nginx.com
110886Svbart@nginx.com    *) Bugfix: a segmentation fault occurred in Node.js module if
111886Svbart@nginx.com       application tried to read request body after request.end() was
112886Svbart@nginx.com       called.
113886Svbart@nginx.com
114886Svbart@nginx.com    *) Bugfix: a segmentation fault occurred in Node.js module if
115886Svbart@nginx.com       application attempted to send header twice.
116886Svbart@nginx.com
117886Svbart@nginx.com    *) Bugfix: names of response header fields in Node.js module were
118886Svbart@nginx.com       erroneously treated as case-sensitive.
119886Svbart@nginx.com
120886Svbart@nginx.com    *) Bugfix: uncatched exceptions in Node.js were not logged.
121886Svbart@nginx.com
122886Svbart@nginx.com    *) Bugfix: global install of Node.js module from sources was broken on
123886Svbart@nginx.com       some systems; the bug had appeared in 1.6.
124886Svbart@nginx.com
125886Svbart@nginx.com    *) Bugfix: traceback for exceptions during initialization of Python
126886Svbart@nginx.com       applications might not be logged.
127886Svbart@nginx.com
128886Svbart@nginx.com    *) Bugfix: PHP module build failed if PHP interpreter was built with
129886Svbart@nginx.com       thread safety enabled.
130886Svbart@nginx.com
131846Svbart@nginx.com
132846Svbart@nginx.comChanges with Unit 1.6                                            15 Nov 2018
133846Svbart@nginx.com
134846Svbart@nginx.com    *) Change: "make install" now installs Node.js module as well if it was
135846Svbart@nginx.com       configured.
136846Svbart@nginx.com
137846Svbart@nginx.com    *) Feature: "--local" ./configure option to install Node.js module
138846Svbart@nginx.com       locally.
139846Svbart@nginx.com
140846Svbart@nginx.com    *) Bugfix: Node.js module might have crashed due to broken reference
141846Svbart@nginx.com       counting.
142846Svbart@nginx.com
143846Svbart@nginx.com    *) Bugfix: asynchronous operations in Node.js might not have worked.
144846Svbart@nginx.com
145846Svbart@nginx.com    *) Bugfix: various compatibility issues with Node.js applications.
146846Svbart@nginx.com
147846Svbart@nginx.com    *) Bugfix: "freed pointer is out of pool" alerts might have appeared in
148846Svbart@nginx.com       log.
149846Svbart@nginx.com
150885Svbart@nginx.com    *) Bugfix: module discovery did not work on 64-bit big-endian systems
151846Svbart@nginx.com       like IBM/S390x.
152846Svbart@nginx.com
153820Svbart@nginx.com
154820Svbart@nginx.comChanges with Unit 1.5                                            25 Oct 2018
155820Svbart@nginx.com
156820Svbart@nginx.com    *) Change: the "type" of application object for Go was changed to
157820Svbart@nginx.com       "external".
158820Svbart@nginx.com
159820Svbart@nginx.com    *) Feature: initial version of Node.js package with basic HTTP
160820Svbart@nginx.com       request-response support.
161820Svbart@nginx.com
162820Svbart@nginx.com    *) Feature: compatibility with LibreSSL.
163820Svbart@nginx.com
164820Svbart@nginx.com    *) Feature: --libdir and --incdir ./configure options to install libunit
165820Svbart@nginx.com       headers and static library.
166820Svbart@nginx.com
167820Svbart@nginx.com    *) Bugfix: connection might be closed prematurely while sending
168820Svbart@nginx.com       response; the bug had appeared in 1.3.
169820Svbart@nginx.com
170820Svbart@nginx.com    *) Bugfix: application processes might have stopped handling requests,
171820Svbart@nginx.com       producing "last message send failed: Resource temporarily
172820Svbart@nginx.com       unavailable" alerts in log; the bug had appeared in 1.4.
173820Svbart@nginx.com
174885Svbart@nginx.com    *) Bugfix: Go applications did not work when Unit was built with musl C
175820Svbart@nginx.com       library.
176820Svbart@nginx.com
177783Svbart@nginx.com
178783Svbart@nginx.comChanges with Unit 1.4                                            20 Sep 2018
179783Svbart@nginx.com
180783Svbart@nginx.com    *) Change: the control API maps the configuration object only at
181783Svbart@nginx.com       "/config/".
182783Svbart@nginx.com
183783Svbart@nginx.com    *) Feature: TLS support for client connections.
184783Svbart@nginx.com
185783Svbart@nginx.com    *) Feature: TLS certificates storage control API.
186783Svbart@nginx.com
187783Svbart@nginx.com    *) Feature: Unit library (libunit) to streamline language module
188783Svbart@nginx.com       integration.
189783Svbart@nginx.com
190783Svbart@nginx.com    *) Feature: "408 Request Timeout" responses while closing HTTP
191783Svbart@nginx.com       keep-alive connections.
192783Svbart@nginx.com
193783Svbart@nginx.com    *) Feature: improvements in OpenBSD support. Thanks to David Carlier.
194783Svbart@nginx.com
195783Svbart@nginx.com    *) Bugfix: a segmentation fault might have occurred after
196783Svbart@nginx.com       reconfiguration.
197783Svbart@nginx.com
198783Svbart@nginx.com    *) Bugfix: building on systems with non-default locale might be broken.
199783Svbart@nginx.com
200783Svbart@nginx.com    *) Bugfix: "header_read_timeout" might not work properly.
201783Svbart@nginx.com
202783Svbart@nginx.com    *) Bugfix: header fields values with non-ASCII bytes might be handled
203783Svbart@nginx.com       incorrectly in Python 3 module.
204783Svbart@nginx.com
205727Svbart@nginx.com
206727Svbart@nginx.comChanges with Unit 1.3                                            13 Jul 2018
207727Svbart@nginx.com
208727Svbart@nginx.com    *) Change: UTF-8 characters are now allowed in request header field
209727Svbart@nginx.com       values.
210727Svbart@nginx.com
211727Svbart@nginx.com    *) Feature: configuration of the request body size limit.
212727Svbart@nginx.com
213727Svbart@nginx.com    *) Feature: configuration of various HTTP connection timeouts.
214727Svbart@nginx.com
215727Svbart@nginx.com    *) Feature: Ruby module now automatically uses Bundler where possible.
216727Svbart@nginx.com
217727Svbart@nginx.com    *) Feature: http.Flusher interface in Go module.
218727Svbart@nginx.com
219727Svbart@nginx.com    *) Bugfix: various issues in HTTP connection errors handling.
220727Svbart@nginx.com
221727Svbart@nginx.com    *) Bugfix: requests with body data might be handled incorrectly in PHP
222727Svbart@nginx.com       module.
223727Svbart@nginx.com
224727Svbart@nginx.com    *) Bugfix: individual PHP configuration options specified via control
225727Svbart@nginx.com       API were reset to previous values after the first request in
226727Svbart@nginx.com       application process.
227727Svbart@nginx.com
228689Svbart@nginx.com
229689Svbart@nginx.comChanges with Unit 1.2                                            07 Jun 2018
230689Svbart@nginx.com
231689Svbart@nginx.com    *) Feature: configuration of environment variables for application
232689Svbart@nginx.com       processes.
233689Svbart@nginx.com
234689Svbart@nginx.com    *) Feature: customization of php.ini path.
235689Svbart@nginx.com
236689Svbart@nginx.com    *) Feature: setting of individual PHP configuration options.
237689Svbart@nginx.com
238689Svbart@nginx.com    *) Feature: configuration of execution arguments for Go applications.
239689Svbart@nginx.com
240689Svbart@nginx.com    *) Bugfix: keep-alive connections might hang after reconfiguration.
241689Svbart@nginx.com
242666Svbart@nginx.com
243666Svbart@nginx.comChanges with Unit 1.1                                            26 Apr 2018
244666Svbart@nginx.com
245666Svbart@nginx.com    *) Bugfix: Python applications that use the write() callable did not
246666Svbart@nginx.com       work.
247666Svbart@nginx.com
248666Svbart@nginx.com    *) Bugfix: virtual environments created with Python 3.3 or above might
249666Svbart@nginx.com       not have worked.
250666Svbart@nginx.com
251666Svbart@nginx.com    *) Bugfix: the request.Read() function in Go applications did not
252666Svbart@nginx.com       produce EOF when the whole body was read.
253666Svbart@nginx.com
254666Svbart@nginx.com    *) Bugfix: a segmentation fault might have occurred while access log
255666Svbart@nginx.com       reopening.
256666Svbart@nginx.com
257666Svbart@nginx.com    *) Bugfix: in parsing of IPv6 control socket addresses.
258666Svbart@nginx.com
259666Svbart@nginx.com    *) Bugfix: loading of application modules was broken on OpenBSD.
260666Svbart@nginx.com
261666Svbart@nginx.com    *) Bugfix: a segmentation fault might have occurred when there were two
262666Svbart@nginx.com       modules with the same type and version; the bug had appeared in 1.0.
263666Svbart@nginx.com
264666Svbart@nginx.com    *) Bugfix: alerts "freed pointer points to non-freeble page" might have
265666Svbart@nginx.com       appeared in log on 32-bit platforms.
266666Svbart@nginx.com
267639Svbart@nginx.com
268639Svbart@nginx.comChanges with Unit 1.0                                            12 Apr 2018
269639Svbart@nginx.com
270639Svbart@nginx.com    *) Change: configuration object moved into "/config/" path.
271639Svbart@nginx.com
272639Svbart@nginx.com    *) Feature: basic access logging.
273639Svbart@nginx.com
274639Svbart@nginx.com    *) Bugfix: 503 error occurred if Go application did not write response
275639Svbart@nginx.com       header or body.
276639Svbart@nginx.com
277639Svbart@nginx.com    *) Bugfix: Ruby applications that use encoding conversions might not
278663Svbart@nginx.com       have worked.
279639Svbart@nginx.com
280639Svbart@nginx.com    *) Bugfix: various stability issues.
281639Svbart@nginx.com
282586Svbart@nginx.com
283586Svbart@nginx.comChanges with Unit 0.7                                            22 Mar 2018
284586Svbart@nginx.com
285586Svbart@nginx.com    *) Feature: Ruby application module.
286586Svbart@nginx.com
287586Svbart@nginx.com    *) Bugfix: in discovering modules.
288586Svbart@nginx.com
289586Svbart@nginx.com    *) Bugfix: various race conditions on reconfiguration and during
290586Svbart@nginx.com       shutting down.
291586Svbart@nginx.com
292586Svbart@nginx.com    *) Bugfix: tabs and trailing spaces were not allowed in header fields
293586Svbart@nginx.com       values.
294586Svbart@nginx.com
295586Svbart@nginx.com    *) Bugfix: a segmentation fault occurred in Python module if
296586Svbart@nginx.com       start_response() was called outside of WSGI callable.
297586Svbart@nginx.com
298663Svbart@nginx.com    *) Bugfix: a segmentation fault might have occurred in PHP module if
299663Svbart@nginx.com       there was an error while initialization.
300586Svbart@nginx.com
301539Svbart@nginx.com
302539Svbart@nginx.comChanges with Unit 0.6                                            09 Feb 2018
303539Svbart@nginx.com
304539Svbart@nginx.com    *) Bugfix: the main process died when the "type" application option
305539Svbart@nginx.com       contained version; the bug had appeared in 0.5.
306539Svbart@nginx.com
307531Svbart@nginx.com
308531Svbart@nginx.comChanges with Unit 0.5                                            08 Feb 2018
309531Svbart@nginx.com
310531Svbart@nginx.com    *) Change: the "workers" application option was removed, the "processes"
311531Svbart@nginx.com       application option should be used instead.
312531Svbart@nginx.com
313531Svbart@nginx.com    *) Feature: the "processes" application option with prefork and dynamic
314531Svbart@nginx.com       process management support.
315531Svbart@nginx.com
316531Svbart@nginx.com    *) Feature: Perl application module.
317531Svbart@nginx.com
318531Svbart@nginx.com    *) Bugfix: in reading client request body; the bug had appeared in 0.3.
319531Svbart@nginx.com
320663Svbart@nginx.com    *) Bugfix: some Python applications might not have worked due to missing
321531Svbart@nginx.com       "wsgi.errors" environ variable.
322531Svbart@nginx.com
323531Svbart@nginx.com    *) Bugfix: HTTP chunked responses might be encoded incorrectly on 32-bit
324531Svbart@nginx.com       platforms.
325531Svbart@nginx.com
326531Svbart@nginx.com    *) Bugfix: infinite looping in HTTP parser.
327531Svbart@nginx.com
328531Svbart@nginx.com    *) Bugfix: segmentation fault in router.
329531Svbart@nginx.com
330469Sigor@sysoev.ru
331469Sigor@sysoev.ruChanges with Unit 0.4                                            15 Jan 2018
332469Sigor@sysoev.ru
333469Sigor@sysoev.ru    *) Feature: compatibility with DragonFly BSD.
334469Sigor@sysoev.ru
335469Sigor@sysoev.ru    *) Feature: "configure php --lib-static" option.
336469Sigor@sysoev.ru
337469Sigor@sysoev.ru    *) Bugfix: HTTP request body was not passed to application; the bug had
338469Sigor@sysoev.ru       appeared in 0.3.
339469Sigor@sysoev.ru
340469Sigor@sysoev.ru    *) Bugfix: HTTP large header buffers allocation and deallocation fixed;
341469Sigor@sysoev.ru       the bug had appeared in 0.3.
342469Sigor@sysoev.ru
343663Svbart@nginx.com    *) Bugfix: some PHP applications might not have worked with relative
344663Svbart@nginx.com       "root" path.
345469Sigor@sysoev.ru
346432Sigor@sysoev.ru
347432Sigor@sysoev.ruChanges with Unit 0.3                                            28 Dec 2017
348432Sigor@sysoev.ru
349432Sigor@sysoev.ru    *) Change: the Go package name changed to "nginx/unit".
350432Sigor@sysoev.ru
351432Sigor@sysoev.ru    *) Change: in the "limits.timeout" application option: application start
352432Sigor@sysoev.ru       time and time in queue now are not accounted.
353432Sigor@sysoev.ru
354432Sigor@sysoev.ru    *) Feature: the "limits.requests" application option.
355432Sigor@sysoev.ru
356432Sigor@sysoev.ru    *) Feature: application request processing latency optimization.
357432Sigor@sysoev.ru
358432Sigor@sysoev.ru    *) Feature: HTTP keep-alive connections support.
359432Sigor@sysoev.ru
360432Sigor@sysoev.ru    *) Feature: the "home" Python virtual environment configuration option.
361432Sigor@sysoev.ru
362432Sigor@sysoev.ru    *) Feature: Python atexit hook support.
363432Sigor@sysoev.ru
364432Sigor@sysoev.ru    *) Feature: various Go package improvements.
365432Sigor@sysoev.ru
366432Sigor@sysoev.ru    *) Bugfix: various crashes fixed.
367432Sigor@sysoev.ru
368286Sigor@sysoev.ru
369370Sigor@sysoev.ruChanges with Unit 0.2                                            19 Oct 2017
370370Sigor@sysoev.ru
371370Sigor@sysoev.ru    *) Feature: configuration persistence.
372370Sigor@sysoev.ru
373370Sigor@sysoev.ru    *) Feature: improved handling of configuration errors.
374370Sigor@sysoev.ru
375370Sigor@sysoev.ru    *) Feature: application "timeout" property.
376370Sigor@sysoev.ru
377370Sigor@sysoev.ru    *) Bugfix: POST request for PHP were handled incorrectly.
378370Sigor@sysoev.ru
379370Sigor@sysoev.ru    *) Bugfix: the router exited abnormally if all listeners had been
380370Sigor@sysoev.ru       deleted.
381370Sigor@sysoev.ru
382370Sigor@sysoev.ru    *) Bugfix: the router crashed under load.
383370Sigor@sysoev.ru
384370Sigor@sysoev.ru    *) Bugfix: memory leak in the router.
385370Sigor@sysoev.ru
386370Sigor@sysoev.ru
387370Sigor@sysoev.ruChanges with Unit 0.1                                            06 Sep 2017
388286Sigor@sysoev.ru
389286Sigor@sysoev.ru    *) First public release.
390286Sigor@sysoev.ru
391