xref: /unit/CHANGES (revision 1222:8ffcee3c43dd)
1
2Changes with Unit 1.12.0                                         03 Oct 2019
3
4    *) Feature: compatibility with PHP 7.4.
5
6    *) Bugfix: descriptors leak on process creation; the bug had appeared in
7       1.11.0.
8
9    *) Bugfix: TLS connection might be closed prematurely while sending
10       response.
11
12    *) Bugfix: segmentation fault might have occurred if an irregular file
13       was requested.
14
15
16Changes with Unit 1.11.0                                         19 Sep 2019
17
18    *) Feature: basic support for serving static files.
19
20    *) Feature: isolation of application processes with Linux namespaces.
21
22    *) Feature: built-in WebSocket server implementation for Java Servlet
23       Containers.
24
25    *) Feature: direct addressing of API configuration options containing
26       slashes "/" using URI encoding (%2F).
27
28    *) Bugfix: segmentation fault might have occurred in Go applications
29       under high load.
30
31    *) Bugfix: WebSocket support was broken if Unit was built with some
32       linkers other than GNU ld (e.g. gold or LLD).
33
34
35Changes with Unit 1.10.0                                         22 Aug 2019
36
37    *) Change: matching of cookies in routes made case sensitive.
38
39    *) Change: decreased log level of common errors when clients close
40       connections.
41
42    *) Change: removed the Perl module's "--include=" ./configure option.
43
44    *) Feature: built-in WebSocket server implementation for Node.js module.
45
46    *) Feature: splitting PATH_INFO from request URI in PHP module.
47
48    *) Feature: request routing by scheme (HTTP or HTTPS).
49
50    *) Feature: support for multipart requests body in Java module.
51
52    *) Feature: improved API compatibility with Node.js 11.10 or later.
53
54    *) Bugfix: reconfiguration failed if "listeners" or "applications"
55       objects were missing.
56
57    *) Bugfix: applying a large configuration might have failed.
58
59
60Changes with Unit 1.9.0                                          30 May 2019
61
62    *) Feature: request routing by arguments, headers, and cookies.
63
64    *) Feature: route matching patterns allow a wildcard in the middle.
65
66    *) Feature: POST operation for appending elements to arrays in
67       configuration.
68
69    *) Feature: support for changing credentials using CAP_SETUID and
70       CAP_SETGID capabilities on Linux without running main process as
71       privileged user.
72
73    *) Bugfix: memory leak in the router process might have happened when a
74       client prematurely closed the connection.
75
76    *) Bugfix: applying a large configuration might have failed.
77
78    *) Bugfix: PUT and DELETE operations on array elements in configuration
79       did not work.
80
81    *) Bugfix: request schema in applications did not reflect TLS
82       connections.
83
84    *) Bugfix: restored compatibility with Node.js applications that use
85       ServerResponse._implicitHeader() function; the bug had appeared in
86       1.7.
87
88    *) Bugfix: various compatibility issues with Node.js applications.
89
90
91Changes with Unit 1.8.0                                          01 Mar 2019
92
93    *) Change: now three numbers are always used for versioning: major,
94       minor, and patch versions.
95
96    *) Change: now QUERY_STRING is always defined even if the request does
97       not include the query component.
98
99    *) Feature: basic internal request routing by Host, URI, and method.
100
101    *) Feature: experimental support for Java Servlet Containers.
102
103    *) Bugfix: segmentation fault might have occurred in the router process.
104
105    *) Bugfix: various potential memory leaks.
106
107    *) Bugfix: TLS connections might have stalled.
108
109    *) Bugfix: some Perl applications might have failed to send the response
110       body.
111
112    *) Bugfix: some compilers with specific flags might have produced
113       non-functioning builds; the bug had appeared in 1.5.
114
115    *) Bugfix: Node.js package had wrong version number when installed from
116       sources.
117
118
119Changes with Unit 1.7.1                                          07 Feb 2019
120
121    *) Security: a heap memory buffer overflow might have been caused in the
122       router process by a specially crafted request, potentially resulting
123       in a segmentation fault or other unspecified behavior
124       (CVE-2019-7401).
125
126    *) Bugfix: install of Go module failed without prior building of Unit
127       daemon; the bug had appeared in 1.7.
128
129
130Changes with Unit 1.7                                            20 Dec 2018
131
132    *) Change: now rpath is set in Ruby module only if the library was not
133       found in default search paths; this allows to meet packaging
134       restrictions on some systems.
135
136    *) Bugfix: "disable_functions" and "disable_classes" PHP options set via
137       Control API did not work.
138
139    *) Bugfix: Promises on request data in Node.js were not triggered.
140
141    *) Bugfix: various compatibility issues with Node.js applications.
142
143    *) Bugfix: a segmentation fault occurred in Node.js module if
144       application tried to read request body after request.end() was
145       called.
146
147    *) Bugfix: a segmentation fault occurred in Node.js module if
148       application attempted to send header twice.
149
150    *) Bugfix: names of response header fields in Node.js module were
151       erroneously treated as case-sensitive.
152
153    *) Bugfix: uncatched exceptions in Node.js were not logged.
154
155    *) Bugfix: global install of Node.js module from sources was broken on
156       some systems; the bug had appeared in 1.6.
157
158    *) Bugfix: traceback for exceptions during initialization of Python
159       applications might not be logged.
160
161    *) Bugfix: PHP module build failed if PHP interpreter was built with
162       thread safety enabled.
163
164
165Changes with Unit 1.6                                            15 Nov 2018
166
167    *) Change: "make install" now installs Node.js module as well if it was
168       configured.
169
170    *) Feature: "--local" ./configure option to install Node.js module
171       locally.
172
173    *) Bugfix: Node.js module might have crashed due to broken reference
174       counting.
175
176    *) Bugfix: asynchronous operations in Node.js might not have worked.
177
178    *) Bugfix: various compatibility issues with Node.js applications.
179
180    *) Bugfix: "freed pointer is out of pool" alerts might have appeared in
181       log.
182
183    *) Bugfix: module discovery did not work on 64-bit big-endian systems
184       like IBM/S390x.
185
186
187Changes with Unit 1.5                                            25 Oct 2018
188
189    *) Change: the "type" of application object for Go was changed to
190       "external".
191
192    *) Feature: initial version of Node.js package with basic HTTP
193       request-response support.
194
195    *) Feature: compatibility with LibreSSL.
196
197    *) Feature: --libdir and --incdir ./configure options to install libunit
198       headers and static library.
199
200    *) Bugfix: connection might be closed prematurely while sending
201       response; the bug had appeared in 1.3.
202
203    *) Bugfix: application processes might have stopped handling requests,
204       producing "last message send failed: Resource temporarily
205       unavailable" alerts in log; the bug had appeared in 1.4.
206
207    *) Bugfix: Go applications did not work when Unit was built with musl C
208       library.
209
210
211Changes with Unit 1.4                                            20 Sep 2018
212
213    *) Change: the control API maps the configuration object only at
214       "/config/".
215
216    *) Feature: TLS support for client connections.
217
218    *) Feature: TLS certificates storage control API.
219
220    *) Feature: Unit library (libunit) to streamline language module
221       integration.
222
223    *) Feature: "408 Request Timeout" responses while closing HTTP
224       keep-alive connections.
225
226    *) Feature: improvements in OpenBSD support. Thanks to David Carlier.
227
228    *) Bugfix: a segmentation fault might have occurred after
229       reconfiguration.
230
231    *) Bugfix: building on systems with non-default locale might be broken.
232
233    *) Bugfix: "header_read_timeout" might not work properly.
234
235    *) Bugfix: header fields values with non-ASCII bytes might be handled
236       incorrectly in Python 3 module.
237
238
239Changes with Unit 1.3                                            13 Jul 2018
240
241    *) Change: UTF-8 characters are now allowed in request header field
242       values.
243
244    *) Feature: configuration of the request body size limit.
245
246    *) Feature: configuration of various HTTP connection timeouts.
247
248    *) Feature: Ruby module now automatically uses Bundler where possible.
249
250    *) Feature: http.Flusher interface in Go module.
251
252    *) Bugfix: various issues in HTTP connection errors handling.
253
254    *) Bugfix: requests with body data might be handled incorrectly in PHP
255       module.
256
257    *) Bugfix: individual PHP configuration options specified via control
258       API were reset to previous values after the first request in
259       application process.
260
261
262Changes with Unit 1.2                                            07 Jun 2018
263
264    *) Feature: configuration of environment variables for application
265       processes.
266
267    *) Feature: customization of php.ini path.
268
269    *) Feature: setting of individual PHP configuration options.
270
271    *) Feature: configuration of execution arguments for Go applications.
272
273    *) Bugfix: keep-alive connections might hang after reconfiguration.
274
275
276Changes with Unit 1.1                                            26 Apr 2018
277
278    *) Bugfix: Python applications that use the write() callable did not
279       work.
280
281    *) Bugfix: virtual environments created with Python 3.3 or above might
282       not have worked.
283
284    *) Bugfix: the request.Read() function in Go applications did not
285       produce EOF when the whole body was read.
286
287    *) Bugfix: a segmentation fault might have occurred while access log
288       reopening.
289
290    *) Bugfix: in parsing of IPv6 control socket addresses.
291
292    *) Bugfix: loading of application modules was broken on OpenBSD.
293
294    *) Bugfix: a segmentation fault might have occurred when there were two
295       modules with the same type and version; the bug had appeared in 1.0.
296
297    *) Bugfix: alerts "freed pointer points to non-freeble page" might have
298       appeared in log on 32-bit platforms.
299
300
301Changes with Unit 1.0                                            12 Apr 2018
302
303    *) Change: configuration object moved into "/config/" path.
304
305    *) Feature: basic access logging.
306
307    *) Bugfix: 503 error occurred if Go application did not write response
308       header or body.
309
310    *) Bugfix: Ruby applications that use encoding conversions might not
311       have worked.
312
313    *) Bugfix: various stability issues.
314
315
316Changes with Unit 0.7                                            22 Mar 2018
317
318    *) Feature: Ruby application module.
319
320    *) Bugfix: in discovering modules.
321
322    *) Bugfix: various race conditions on reconfiguration and during
323       shutting down.
324
325    *) Bugfix: tabs and trailing spaces were not allowed in header fields
326       values.
327
328    *) Bugfix: a segmentation fault occurred in Python module if
329       start_response() was called outside of WSGI callable.
330
331    *) Bugfix: a segmentation fault might have occurred in PHP module if
332       there was an error while initialization.
333
334
335Changes with Unit 0.6                                            09 Feb 2018
336
337    *) Bugfix: the main process died when the "type" application option
338       contained version; the bug had appeared in 0.5.
339
340
341Changes with Unit 0.5                                            08 Feb 2018
342
343    *) Change: the "workers" application option was removed, the "processes"
344       application option should be used instead.
345
346    *) Feature: the "processes" application option with prefork and dynamic
347       process management support.
348
349    *) Feature: Perl application module.
350
351    *) Bugfix: in reading client request body; the bug had appeared in 0.3.
352
353    *) Bugfix: some Python applications might not have worked due to missing
354       "wsgi.errors" environ variable.
355
356    *) Bugfix: HTTP chunked responses might be encoded incorrectly on 32-bit
357       platforms.
358
359    *) Bugfix: infinite looping in HTTP parser.
360
361    *) Bugfix: segmentation fault in router.
362
363
364Changes with Unit 0.4                                            15 Jan 2018
365
366    *) Feature: compatibility with DragonFly BSD.
367
368    *) Feature: "configure php --lib-static" option.
369
370    *) Bugfix: HTTP request body was not passed to application; the bug had
371       appeared in 0.3.
372
373    *) Bugfix: HTTP large header buffers allocation and deallocation fixed;
374       the bug had appeared in 0.3.
375
376    *) Bugfix: some PHP applications might not have worked with relative
377       "root" path.
378
379
380Changes with Unit 0.3                                            28 Dec 2017
381
382    *) Change: the Go package name changed to "nginx/unit".
383
384    *) Change: in the "limits.timeout" application option: application start
385       time and time in queue now are not accounted.
386
387    *) Feature: the "limits.requests" application option.
388
389    *) Feature: application request processing latency optimization.
390
391    *) Feature: HTTP keep-alive connections support.
392
393    *) Feature: the "home" Python virtual environment configuration option.
394
395    *) Feature: Python atexit hook support.
396
397    *) Feature: various Go package improvements.
398
399    *) Bugfix: various crashes fixed.
400
401
402Changes with Unit 0.2                                            19 Oct 2017
403
404    *) Feature: configuration persistence.
405
406    *) Feature: improved handling of configuration errors.
407
408    *) Feature: application "timeout" property.
409
410    *) Bugfix: POST request for PHP were handled incorrectly.
411
412    *) Bugfix: the router exited abnormally if all listeners had been
413       deleted.
414
415    *) Bugfix: the router crashed under load.
416
417    *) Bugfix: memory leak in the router.
418
419
420Changes with Unit 0.1                                            06 Sep 2017
421
422    *) First public release.
423
424