summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)AuthorFilesLines
2021-03-15Ruby: fixed encodings initialization.Valentin Bartenev2-0/+10
The Ruby interpreter expects an explicit setlocale() call before initialization to pick up character encodings in the "Encoding" class from the environment. This closes #531 issue on GitHub.
2021-03-15Fixed certificates loading on startup with some filesystems.Valentin Bartenev2-4/+13
It appears that readdir() on Linux detects file types unreliably, always setting the "d_type" field to DT_UNKNOWN for some less common filesystems. As a result, all files were skipped and no certificate bundles were found when the state directory was located on such filesystems. Skipping "." and ".." instead of any non-regular files should be enough, as no other non-regular files normally appear in this directory. This closes #368 issue on GitHub.
2021-03-15Fixed TLS connection shutdown on errors.Valentin Bartenev2-4/+14
An immediate return statement on connection errors was mistakenly added to the beginning of nxt_openssl_conn_io_shutdown() in ecd3c5bbf7d8, breaking the TLS connection finalization procedure. As a result, a TLS connection was left unfinalized if it had been closed prematurely or a fatal protocol error had occurred, which caused memory and socket descriptor leakage. Moreover, in some cases (notably, on handshake errors in tests with kqueue on macOS) the read event was triggered later and nxt_h1p_conn_error() was called the second time; after the change in af93c866b4f0, the latter call crashed the router process in an attempt to remove a connection from the idle queue twice.
2021-03-02Closing app outgoing shared memory file descriptor.Max Romanov2-0/+11
This fixes file descriptor leakage in router. Shared memory file used to send data from router to application. These files are shared among all processes of same application and router keeps the opened file descriptor since 06017e6e3a5f commit.
2021-03-02Fixing warnings on Solaris.Max Romanov2-2/+2
pthread_t on Solaris is an integer type with size not equal to pointer size. To avoid warnings, type casts to and from pointer needs to be done via uintptr_t type. This change originally proposed by Juraj Lutter <juraj@lutter.sk>.
2021-03-02Fixing NetBSD compatibility.Max Romanov2-2/+10
Instead of PTHREAD_STACK_MIN define, NetBSD requires to get minimum stack size using sysctl(_SC_THREAD_STACK_MIN). This change originally proposed by Juraj Lutter <juraj@lutter.sk>.
2021-02-23Tests: fixed tests to work without openssl support.Andrei Zeliankou1-0/+3
2021-02-18Tests: added regex check.Andrei Zeliankou3-0/+27
2021-02-16Version bump.Valentin Bartenev2-2/+10
2021-02-15Tests: clear certificates after each test.Andrei Zeliankou1-8/+29
2021-02-10Tests: increased timeout in wait_for_record().Andrei Zeliankou3-4/+4
2021-02-08Tests: added "--restart" option.Andrei Zeliankou5-22/+103
Now Unit do not restart after each test by default.
2021-02-05Regenerated Dockerfiles.Konstantin Pavlov8-8/+8
2021-02-05Docker: added curl run-time dependency.Konstantin Pavlov1-1/+1
It is needed for docker-entrypoint scripts to work.
2021-02-04Added changelog for Python 3.9 module appeared for Fedora 33.Andrei Belov1-0/+13
2021-02-04Added tag 1.22.0 for changeset 331bdadeca30Valentin Bartenev1-0/+1
2021-02-04Generated Dockerfiles for Unit 1.22.0.1.22.0Valentin Bartenev8-8/+8
2021-02-04Added version 1.22.0 CHANGES.Valentin Bartenev2-2/+41
2021-02-04Reordered changes for 1.22.0 by significance (subjective).Valentin Bartenev1-17/+17
2021-02-04Tests: added tests for "path" option in Python application.Andrei Zeliankou2-0/+45
2021-02-04Updated phrasing and corrected errors in docs/changes.xml.Artem Konev1-15/+16
2021-02-03Fixing shared app queue unmap size.Max Romanov2-1/+14
Shared app queue takes more memory than port memory. To unmap all memory pages correct size need to be specified for munmap() call. Otherwise 4 Mb memory leaked on each configured application removal. The issue was introduced in 1d84b9e4b459.
2021-02-03Fixing possible NULL dereference.Max Romanov1-11/+12
For listen socket request reply port can be NULL if Router crashes immediately after issuing the request. Found by Coverity (CID 366310).
2021-02-03Using shared memory to pass configuration to main process.Max Romanov2-22/+84
This patch is required to remove fragmented messages functionality.
2021-02-02Docker: reverted 44154b830401.Konstantin Pavlov1-2/+0
Automatic synchronisation is now set up, so manual pushes to AWS ECR are discouraged.
2021-02-01Fixed building by GCC 10 with -flto and -O2.Valentin Bartenev1-0/+6
This closes #467 issue on GitHub.
2021-02-01Regenerated Dockerfiles.Konstantin Pavlov15-833/+566
2021-01-13Docker: based docker images off official languages ones.Konstantin Pavlov3-141/+151
Language versions are bumped to: - python 3.9 - ruby 2.7 - go 1.15 - node 15 - perl 5.32 Removed images: - python 2.7 due to EOL - full/latest due to incompatibility with the new scheme
2021-01-28Fixed changelog style.Valentin Bartenev1-1/+1
2021-01-28Removing unused mutex from nxt_process_t.Max Romanov2-4/+0
2021-01-28Router: fixing crash after WebSocket processing.Max Romanov3-1/+35
After WebSocket processing, the application port was released with incorrect reason ("got request"), unnecessarily decrementing the active request counter. The assertion was triggered only on application removal; a test was added for this case.
2021-01-27Router: fixing error handling in config request.Max Romanov1-19/+42
The controller process awaits the response from the router for every configration change request. This patch adds error reporting for various error conditions which may happen because of file descriptors or memory shortage. Lack of a response lead to the controller awaiting the response, thus being unable to process other client reconfiguration requests that also became stuck.
2021-01-26Packages: added Fedora 33 support.Andrei Belov3-1/+76
2021-01-25Router: fixing assertion in shortage of file descriptors.Max Romanov1-0/+2
Each application in router process required fd for a request queue shared memory. When the number of file descripts close to the limit, and port sockets successfully opened, router needs to properly handle the errors. This patch closes port sockets before destroying port structure to avoid file descriptors leakage and assertion in debug build.
2021-01-18Bumping year in copyright notice.Valentin Bartenev2-16/+16
2021-01-14Tests: added missing checks for configuration results.Andrei Zeliankou11-56/+72
2021-01-13Tests: added test for "procfs" option.Andrei Zeliankou1-0/+23
2021-01-13Tests: "language_deps" option checked more carefully.Andrei Zeliankou1-20/+12
2021-01-13Tests: waitformount() and waitforunmount() introduced.Andrei Zeliankou1-0/+32
2021-01-13Tests: style.Andrei Zeliankou27-35/+2
2021-01-12Tests: unit_stop() removed where possible.Andrei Zeliankou6-70/+10
Since wait_for_record() was introduced there is no need to stop Unit before parsing unit.log.
2021-01-08Tests: fixed test_respawn.py to act upon test processes.Tiago Natel de Moura2-23/+32
Running `test_respawn_` test cases on a machine with Unit daemon in background would fail tests because `ps ax` was used without filtering out other unit instances. This patch also prevents from tests killing other Unit processes not related to tests.
2021-01-07Tests: reordered asserts to avoid a test race.Tiago Natel de Moura1-5/+9
The mount points are unmounted in the main process after it detects the app process died. By testing the `tmpfs: true` first, it happens that main could start the `tmpfs: false` test case before main cleans the old process mount points.
2020-12-29Libunit: processing single port message.Max Romanov3-69/+161
This partially reverts the optimisation introduced in 1d84b9e4b459 to avoid an unpredictable block in nxt_unit_process_port_msg(). Under high load, this function may never return control to its caller, and the external event loop (in Node.js and Python asyncio) won't be able to process other scheduled events. To reproduce the issue, two request processing types are needed: 'fast' and 'furious'. The 'fast' one simply returns a small response, while the 'furious' schedules asynchronous calls to external resources. Thus, if Unit is subjected to a large amount of 'fast' requests, the 'furious' request processing freezes until the high load ends. The issue was found by Wu Jian Ping (@wujjpp) during Node.js stream implementation discussion and relates to PR #502 on GitHub.
2020-12-29Node.js: ServerRequest and ServerResponse compliance to Stream API.Max Romanov5-89/+94
ServerRequest now inherit stream Readable object. ServerResponse provides 'writable' property. Thanks to Wu Jian Ping (@wujjpp). This closes #274, closes #317 issues and closes #502 PR on GitHub.
2020-12-28Packages: fixed building for Ubuntu 16.04 "xenial".Andrei Belov2-0/+79
Changes introduced in a27532e3a17b effectively broke building of the unit package due to missed dh_installsystemd script in older debhelper 9.x. Once Ubuntu 16.04 reach EOL, the following actions should be made: - this commit should be reverted; - minimal debhelper version should be increased to 11.
2020-12-24Packages: fixed an ability to override package version.Andrei Belov3-3/+6
This was broken since 00d8049418cf.
2020-12-24Version bump for unit modules.Andrei Belov1-0/+22
This is required in order to build Debian packages from current tip without making manual interventions. Moving forward, this should be a part of every version bump commit.
2020-12-23Packages: set the "--user" value to "nobody" for build-stage tests.Andrei Belov2-4/+4
This allows tests to pass well in cases when the default user specified in the ./configure parameters does not exist in the building environment.
2020-12-23Tests: ability to run unitd with specified "--user" option.Andrei Belov1-19/+27