Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2019-09-18 | Fixing request release order to avoid crashes on exit. | Max Romanov | 1 | -6/+10 | |
Each request references the router process structure that owns all memory maps. The process structure has a reference counter; each request increases the counter to lock the structure in memory until request processing ends. Incoming and outgoing buffers reference memory maps that the process owns, so the process structure should be released only when all buffers are released to avoid invalid memory access and a crash. This describes the libunit library mechanism used for application processes. The background of this issue is as follows: The issue was found on buildbot when the router crashed during Java websocket tests. The Java application receives a notification from the master process; when the notification is processed, libunit deletes the process structure from its process hash and decrements the use counter; however, active websocket connections maintain their use counts on the process structure. After that, when the master process is stopping the application, libunit releases active websocket connections. At this point, it's important to release the connections' memory buffers before the corresponding process structure and all shared memory segments are released. | |||||
2019-09-18 | Go: do not store pointer to Go object. | Max Romanov | 2 | -2/+49 | |
To pass Go object references to C and back we use hack with casting to unsafe and then to uintptr. However, we should not store such references because Go not guaratnee it will be available by the same address. Introducing map with integer key helps to avoid dereference stored address. This closes #253 and #309 issues on GitHub. | |||||
2019-09-18 | Reducing number of warning messages. | Max Romanov | 1 | -6/+5 | |
One alert per failed allocation is enough. | |||||
2019-09-18 | Protecting context structures with mutex. | Max Romanov | 1 | -4/+63 | |
By design, Unit context is created for the thread which reads messages from the router. However, Go request handlers are called in a separate goroutine that may be executed in a different thread. To avoid a racing condition, access to lists of free structures in the context should be serialized. This patch should fix random crashes in Go applications under high load. This is related to #253 and #309 issues on GitHub. | |||||
2019-09-18 | Configuration: added ability to modify object members with slashes. | Valentin Bartenev | 1 | -39/+49 | |
Example: PUT/POST/DELETE /config/listeners/unix:%2Fpath%2Fto%2Fsocket This follows a49ee872e83d. | |||||
2019-09-18 | Tests: added read_buffer_size option in http(). | Andrey Zelenkov | 1 | -1/+8 | |
2019-09-17 | Tests: head() method introduced. | Andrey Zelenkov | 1 | -0/+3 | |
2019-09-17 | HTTP parser: fixed parsing of target after literal space character. | Valentin Bartenev | 3 | -3/+63 | |
In theory, all space characters in request target must be encoded; however, some clients may violate the specification. For the sake of interoperability, Unit supports unencoded space characters. Previously, if there was a space character before the extension or arguments parts, those parts weren't recognized. Also, quoted symbols and complex target weren't detected after a space character. | |||||
2019-09-16 | HTTP parser: removed unused "plus_in_target" flag. | Valentin Bartenev | 3 | -48/+15 | |
2019-09-16 | HTTP parser: removed unused "offset" field. | Valentin Bartenev | 1 | -2/+0 | |
Thanks to 洪志道 (Hong Zhi Dao). | |||||
2019-09-16 | HTTP parser: removed unused "exten_start" and "args_start" fields. | Valentin Bartenev | 3 | -47/+37 | |
2019-09-16 | Configuration: added ability to access object members with slashes. | Valentin Bartenev | 6 | -4/+104 | |
Now URI encoding can be used to escape "/" in the request path: GET /config/listeners/unix:%2Fpath%2Fto%2Fsocket/ | |||||
2019-09-16 | Tests: fixed features check. | Andrey Zelenkov | 1 | -2/+2 | |
2019-09-14 | Tests: refactored prerequisites model. | Andrey Zelenkov | 24 | -113/+146 | |
2019-09-16 | Tests: prepare_env() introduced. | Andrey Zelenkov | 1 | -8/+13 | |
2019-09-16 | Tests: style and minor fixes in java.py. | Andrey Zelenkov | 2 | -8/+7 | |
2019-09-16 | Tests: more comments. | Andrey Zelenkov | 1 | -0/+4 | |
2019-09-16 | Tests: set default "unsafe" value. | Andrey Zelenkov | 1 | -0/+1 | |
2019-09-16 | Packages: added explicit library path for Java on RPM based distros. | Andrei Belov | 3 | -3/+9 | |
This helps to avoid using excessive strictness in RPATH of Java modules. | |||||
2019-09-09 | Added "extern" to nxt_http_fields_hash_proto to avoid link issues. | Max Romanov | 1 | -1/+1 | |
2019-09-05 | Tests: Java websockets tests. | Andrey Zelenkov | 2 | -0/+1526 | |
2019-09-05 | Java: introducing websocket support. | Max Romanov | 113 | -69/+15421 | |
2019-09-03 | Tests: increased read_timeout for websockets tests. | Andrey Zelenkov | 1 | -2/+6 | |
2019-09-02 | Making request state handler calls more consistent. | Max Romanov | 2 | -10/+4 | |
2019-09-02 | Tests: fixed recv_bytes() in websockets.py. | Andrey Zelenkov | 2 | -11/+3 | |
2019-09-02 | Tests: removed duplicate websocket tests. | Andrey Zelenkov | 1 | -80/+0 | |
2019-09-02 | Tests: prevented writing non-chopped frames to the closed socket. | Andrey Zelenkov | 2 | -2/+4 | |
2019-08-30 | Tests: prevented writing to the closed socket for websocket tests. | Andrey Zelenkov | 1 | -1/+4 | |
2019-08-30 | Tests: websockets style fixes. | Andrey Zelenkov | 2 | -248/+216 | |
2019-08-30 | Fixed WebSocket implementation that was broken on some systems. | Max Romanov | 1 | -1/+1 | |
The "nxt_http_websocket" request state, defined in "nxt_http_websocket.c", is used in "nxt_router.c" and must be linked with external symbol declared in "nxt_router.c". Due to the missing "extern" keyword, building Unit with some linkers (notably gold and LLD) caused WebSocket connections to get stuck or even crash the router process. | |||||
2019-08-26 | Adding body handler to nxt_http_request_header_send(). | Igor Sysoev | 5 | -16/+27 | |
2019-08-26 | Version bump. | Valentin Bartenev | 1 | -2/+2 | |
2019-08-23 | Added changes for 1.10.0-2 bugfix release. | Andrei Belov | 1 | -0/+21 | |
2019-08-23 | Installing libunit files for websocket support. | Max Romanov | 1 | -4/+12 | |
2019-08-22 | Tests: removed keepalive_interval for websocket tests. | Andrey Zelenkov | 2 | -6/+12 | |
Also increased read_timeout in frame_read() for slow hosts. | |||||
2019-08-22 | Added tag 1.10.0 for changeset cdbba3c3e376 | Valentin Bartenev | 1 | -0/+1 | |
2019-08-22 | Generated Dockerfiles for Unit 1.10.0.1.10.0 | Valentin Bartenev | 9 | -9/+9 | |
2019-08-22 | Fixed rebuilding of Dockerfiles. | Valentin Bartenev | 1 | -1/+1 | |
2019-08-22 | Added version 1.10.0 CHANGES. | Valentin Bartenev | 2 | -0/+112 | |
2019-08-22 | Tests: Node.js websockets tests tuned. | Andrey Zelenkov | 2 | -5/+16 | |
2019-08-20 | Node.js: introducing websocket support. | Max Romanov | 15 | -175/+2373 | |
2019-08-20 | Introducing websocket support in router and libunit. | Max Romanov | 29 | -442/+3536 | |
2019-08-22 | Tests: Node.js websockets. | Andrey Zelenkov | 5 | -0/+1841 | |
2019-08-22 | Tests: "--unsafe" option introduced. | Andrey Zelenkov | 1 | -0/+8 | |
2019-08-21 | Tests: reverted rerun for Java tests in 5e429a7f133c. | Andrey Zelenkov | 1 | -3/+1 | |
Each testcase should also recompile to be recompiled. So backed out for now. | |||||
2019-08-16 | Changing the sequence of body send execution. | Max Romanov | 3 | -11/+11 | |
Request state ready_handler required for further websocket events processing. It is not required for regular response transferring. | |||||
2019-08-16 | Improving response header fields processing. | Max Romanov | 3 | -27/+46 | |
Fields are filtered one by one before being added to fields list. This avoids adding and then skipping connection-specific fields. | |||||
2019-08-16 | Fixing multi-thread port write racing conditions. | Max Romanov | 4 | -159/+165 | |
2019-08-14 | Tests: print decoded strings in detailed mode, if possible. | Andrey Zelenkov | 1 | -2/+10 | |
2019-08-14 | Renaming supplemental request structures in router. | Max Romanov | 2 | -349/+420 | |
- nxt_req_app_link_t -> nxt_request_app_link_t - nxt_req_conn_link_t -> nxt_request_rpc_data_t Corresponding abbreviated field names also changed: - ra -> req_app_link - rc -> req_rpc_data |