{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":684173604,"defaultBranch":"master","name":"unit","ownerLogin":"Pavlusha311245","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2023-08-28T15:53:10.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/49598333?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1715586798.0","currentOid":""},"activityList":{"items":[{"before":"149555dbb6d68c15b4d8752e76e995ff6ba36fe6","after":"ea5c41b8056997ed40138020272b5159271f1b87","ref":"refs/heads/master","pushedAt":"2024-05-27T07:13:57.000Z","pushType":"push","commitsCount":11,"pusher":{"login":"Pavlusha311245","name":"Pavel Zavadski","path":"/Pavlusha311245","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49598333?s=80&v=4"},"commit":{"message":"wasm: Add a missing 'const' qualifier in nxt_wasm_setup()\n\nSigned-off-by: Andrew Clayton ","shortMessageHtmlLink":"wasm: Add a missing 'const' qualifier in nxt_wasm_setup()"}},{"before":null,"after":"3a5956fa5237cbf853a13fb955c7f1498ec6c590","ref":"refs/heads/feature/proxy_inet_default_port","pushedAt":"2024-05-13T07:53:18.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Pavlusha311245","name":"Pavel Zavadski","path":"/Pavlusha311245","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49598333?s=80&v=4"},"commit":{"message":"Added standard port for inet and inet6\n\nAdded a standard port for IPv4 and IPv6 addresses when using proxy and HTTP, eliminating the need to specify an additional port 80. This is defined by the RFC standards for HTTP. Currently Nginx Unit only uses HTTP connections for proxying, version 1.1.","shortMessageHtmlLink":"Added standard port for inet and inet6"}},{"before":"bad2c181e124cc93cd839fce019bc31dab1b7e1b","after":"149555dbb6d68c15b4d8752e76e995ff6ba36fe6","ref":"refs/heads/master","pushedAt":"2024-05-13T07:02:11.000Z","pushType":"push","commitsCount":157,"pusher":{"login":"Pavlusha311245","name":"Pavel Zavadski","path":"/Pavlusha311245","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49598333?s=80&v=4"},"commit":{"message":"trigger unitctl CI on version tags of existing format\n\nSigned-off-by: Ava Hahn ","shortMessageHtmlLink":"trigger unitctl CI on version tags of existing format"}},{"before":"02d1984c912261a1274534a24a2d94ac7c7abfa7","after":"bad2c181e124cc93cd839fce019bc31dab1b7e1b","ref":"refs/heads/master","pushedAt":"2024-02-13T13:05:44.000Z","pushType":"push","commitsCount":20,"pusher":{"login":"Pavlusha311245","name":"Pavel Zavadski","path":"/Pavlusha311245","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49598333?s=80&v=4"},"commit":{"message":"Packages: Added Fedora 39 support.","shortMessageHtmlLink":"Packages: Added Fedora 39 support."}},{"before":"9611a3bc31a8ae413a14d248b1d4c672104508f1","after":"2cb99cab03745e93683644482f24c549d9a9f438","ref":"refs/heads/feature/unit_about_section","pushedAt":"2024-01-26T09:25:21.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Pavlusha311245","name":"Pavel Zavadski","path":"/Pavlusha311245","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49598333?s=80&v=4"},"commit":{"message":"Add unit section to status endpoint\n\nAdded unit section to /status endpoint. Unit section is about web-server version, config last load time and config update generation\nResponse example below:\n{\"unit\":{\"version\":\"1.32.0\",\"load_time\":\"2024-01-25T13:24:08.000Z\",\"generation\":0},\"connections\":{\"accepted\":0,\"active\":0,\"idle\":0,\"closed\":0},\"requests\":{\"total\":0},\"applications\":{\"laravel\":{\"processes\":{\"running\":1,\"starting\":0,\"idle\":1},\"requests\":{\"active\":0}}}}\nCloses: https://github.com/nginx/unit/issues/928","shortMessageHtmlLink":"Add unit section to status endpoint"}},{"before":"2e85ebd4efef828e17b8bbaf6c35cb42357407e4","after":"9611a3bc31a8ae413a14d248b1d4c672104508f1","ref":"refs/heads/feature/unit_about_section","pushedAt":"2024-01-25T15:51:18.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Pavlusha311245","name":"Pavel Zavadski","path":"/Pavlusha311245","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49598333?s=80&v=4"},"commit":{"message":"Add unit section to status endpoint\n\nAdded unit section to /status endpoint. Unit section is about web-server version, config last load time and config update generation\nResponse example below:\n{\"unit\":{\"version\":\"1.32.0\",\"load_time\":\"2024-01-25T13:24:08.000Z\",\"generation\":0},\"connections\":{\"accepted\":0,\"active\":0,\"idle\":0,\"closed\":0},\"requests\":{\"total\":0},\"applications\":{\"laravel\":{\"processes\":{\"running\":1,\"starting\":0,\"idle\":1},\"requests\":{\"active\":0}}}}\nCloses: https://github.com/nginx/unit/issues/928","shortMessageHtmlLink":"Add unit section to status endpoint"}},{"before":"f4cbf1c8101c5610c03eb90fb58b9fe69a341721","after":"2e85ebd4efef828e17b8bbaf6c35cb42357407e4","ref":"refs/heads/feature/unit_about_section","pushedAt":"2024-01-24T16:17:23.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Pavlusha311245","name":"Pavel Zavadski","path":"/Pavlusha311245","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49598333?s=80&v=4"},"commit":{"message":"Added unit section to status endpoint #928","shortMessageHtmlLink":"Added unit section to status endpoint nginx#928"}},{"before":"90eb6048fc3c15988953074e457090cd763b4855","after":"f4cbf1c8101c5610c03eb90fb58b9fe69a341721","ref":"refs/heads/feature/unit_about_section","pushedAt":"2024-01-24T16:15:54.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Pavlusha311245","name":"Pavel Zavadski","path":"/Pavlusha311245","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49598333?s=80&v=4"},"commit":{"message":"Added unit section to status endpoint #928","shortMessageHtmlLink":"Added unit section to status endpoint nginx#928"}},{"before":"d2afc092ac8a151e2b42e2fb55b106e013454292","after":"90eb6048fc3c15988953074e457090cd763b4855","ref":"refs/heads/feature/unit_about_section","pushedAt":"2024-01-24T16:14:50.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Pavlusha311245","name":"Pavel Zavadski","path":"/Pavlusha311245","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49598333?s=80&v=4"},"commit":{"message":"Added unit section to status endpoint #928","shortMessageHtmlLink":"Added unit section to status endpoint nginx#928"}},{"before":"4e08f4954917ba8485823ab56619089a75c25129","after":"02d1984c912261a1274534a24a2d94ac7c7abfa7","ref":"refs/heads/master","pushedAt":"2024-01-24T13:39:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Pavlusha311245","name":"Pavel Zavadski","path":"/Pavlusha311245","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49598333?s=80&v=4"},"commit":{"message":"HTTP: Remove short read check in nxt_http_static_buf_completion()\n\nOn GH, @tonychuuy reported an issue when using Units 'share' action they\nwould get the following error in the unit log\n\n 2024/01/15 17:53:41 [error] 49#52 *103 file \"/var/www/html/public/vendor/telescope/app.css\" has changed while sending response to a client\n\nThis would happen when trying to serve files over a certain size and the\nrequested file would not be sent.\n\nThis is due to a somewhat bogus check in\nnxt_http_static_buf_completion()\n\nI say bogus because it's not clear what the check is trying to\naccomplish and the error message is not entirely accurate either.\n\nThe check in question goes like\n\n n = pread(file->fd, buf, size, offset);\n return n;\n ...\n if (n != size) {\n if (n >= 0) {\n /* log file changed error and finish */\n\n /* >> Problem is here << */\n }\n\n \t/* log general error and finish */\n }\n\nIf the number of bytes read is not what we asked for and is > -1 (i.e\nnot an error) then it says the file has changed, but really it only\nchecks if the file has _shrunk_ (we can't get back _more_ bytes than we\nasked for) since it was stat'd.\n\nThis is what happens\n\n recvfrom(22, \"GET /tfile HTTP/1.1\\r\\nHost: local\"..., 2048, 0, NULL, NULL) = 82\n openat(AT_FDCWD, \"/mnt/9p/tfile\", O_RDONLY|O_NONBLOCK) = 23\n newfstatat(23, \"\", {st_mode=S_IFREG|0644, st_size=149922, ...}, AT_EMPTY_PATH) = 0\n\nWe get a request from a client, open the requested file and stat(2) it to\nget the file size.\n\nWe would then go into a pread/writev loop reading the file data and\nsending it to the client until it's all been sent.\n\nHowever what was happening in this case was this (showing a dummy file\nof 149922 bytes)\n\n pread64(23, \"\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\"..., 131072, 0) = 61440\n write(2, \"2024/01/17 15:30:50 [error] 1849\"..., 109) = 109\n\nWe wanted to read 131072 bytes but only read 61440 bytes, the above\ncheck triggered and the file transfer was aborted and the above error\nmessage logged.\n\nNormally for a regular file you will only get less bytes than asked for\nif the read call is interrupted by a signal or you're near the end of\nfile.\n\nThere is however at least another situation where this may happen, if\nthe file in question is being served from a network filesystem.\n\nIt turns out that was indeed the case here, the files where being served\nover the 9P filesystem protocol. Unit was running in a docker container\nin an Ubuntu VM under Windows/WSL2 and the files where being passed\nthrough to the VM from Windows over 9P.\n\nWhatever the intention of this check, it is clearly causing issues in\nreal world scenarios.\n\nIf it was really desired to check if the had changed since it was\nopened/stat'd then it would require a different methodology and be a\npatch for another day. But as it stands this current check does more\nharm than good, so lets just remove it.\n\nWith it removed we now get for the above test file\n\n recvfrom(22, \"GET /tfile HTTP/1.1\\r\\nHost: local\"..., 2048, 0, NULL, NULL) = 82\n openat(AT_FDCWD, \"/mnt/9p/tfile\", O_RDONLY|O_NONBLOCK) = 23\n newfstatat(23, \"\", {st_mode=S_IFREG|0644, st_size=149922, ...}, AT_EMPTY_PATH) = 0\n mmap(NULL, 135168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f367817b000\n pread64(23, \"\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\"..., 131072, 0) = 61440\n pread64(23, \"\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\"..., 18850, 61440) = 18850\n writev(22, [{iov_base=\"HTTP/1.1 200 OK\\r\\nLast-Modified: \"..., iov_len=171}, {iov_base=\"\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\"..., iov_len=61440}, {iov_base=\"\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\"..., iov_len=18850}], 3) = 80461\n pread64(23, \"\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\"..., 69632, 80290) = 61440\n pread64(23, \"\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\"..., 8192, 141730) = 8192\n close(23) = 0\n writev(22, [{iov_base=\"\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\"..., iov_len=61440}, {iov_base=\"\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\"..., iov_len=8192}], 2) = 69632\n\nSo we can see we do two pread(2)s's and a writev(2), then another two\npread(2)s and another writev(2) and all the file data has been read and\nsent to the client.\n\nReported-by: tonychuuy \nLink: \nFixes: 08a8d1510 (\"Basic support for serving static files.\")\nCloses: https://github.com/nginx/unit/issues/1064\nReviewed-by: Zhidao Hong \nReviewed-by: Andrei Zeliankou \nSigned-off-by: Andrew Clayton ","shortMessageHtmlLink":"HTTP: Remove short read check in nxt_http_static_buf_completion()"}},{"before":"786e55ad83e2a4087dec80f85ae9cf1e401ed099","after":"d2afc092ac8a151e2b42e2fb55b106e013454292","ref":"refs/heads/feature/unit_about_section","pushedAt":"2024-01-21T09:07:43.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Pavlusha311245","name":"Pavel Zavadski","path":"/Pavlusha311245","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49598333?s=80&v=4"},"commit":{"message":"Added unit section to status endpoint #928","shortMessageHtmlLink":"Added unit section to status endpoint nginx#928"}},{"before":"49aee6760a26b14c06180e4f25088cb18e2037a7","after":"4e08f4954917ba8485823ab56619089a75c25129","ref":"refs/heads/master","pushedAt":"2024-01-18T14:50:12.000Z","pushType":"push","commitsCount":8,"pusher":{"login":"Pavlusha311245","name":"Pavel Zavadski","path":"/Pavlusha311245","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49598333?s=80&v=4"},"commit":{"message":"Tests: added Ruby tests with array in header values","shortMessageHtmlLink":"Tests: added Ruby tests with array in header values"}},{"before":"19af3a95ef060582a1ead2a8848eb8849f1ca559","after":"786e55ad83e2a4087dec80f85ae9cf1e401ed099","ref":"refs/heads/feature/unit_about_section","pushedAt":"2023-12-30T10:39:21.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Pavlusha311245","name":"Pavel Zavadski","path":"/Pavlusha311245","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49598333?s=80&v=4"},"commit":{"message":"Added unit section to status endpoint #928","shortMessageHtmlLink":"Added unit section to status endpoint nginx#928"}},{"before":"30501e143b2a08e0c682fcf0831a3de1e0566237","after":"19af3a95ef060582a1ead2a8848eb8849f1ca559","ref":"refs/heads/feature/unit_about_section","pushedAt":"2023-12-28T11:35:52.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Pavlusha311245","name":"Pavel Zavadski","path":"/Pavlusha311245","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49598333?s=80&v=4"},"commit":{"message":"Added unit section to status endpoint #928\n\nSigned-off-by: Paul Zavadski ","shortMessageHtmlLink":"Added unit section to status endpoint nginx#928"}},{"before":"b6216f0bb7c4e10afcec00c6660644ff32db0dfb","after":"49aee6760a26b14c06180e4f25088cb18e2037a7","ref":"refs/heads/master","pushedAt":"2023-12-28T11:35:13.000Z","pushType":"push","commitsCount":47,"pusher":{"login":"Pavlusha311245","name":"Pavel Zavadski","path":"/Pavlusha311245","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49598333?s=80&v=4"},"commit":{"message":"HTTP: added TSTR validation flag to the rewrite option.\n\nThis is to improve error messages for rewrite configuration.\nTake the configuration as an example:\n\n {\n \"rewrite\": \"`${a + \"\n }\n\nPreviously, when applying it the user would see this error message:\n\n failed to apply previous configuration\n\nAfter this change, the user will see this improved error message:\n\n the previous configuration is invalid: \"SyntaxError: Unexpected end of input in default:1\" in the \"rewrite\" value.","shortMessageHtmlLink":"HTTP: added TSTR validation flag to the rewrite option."}},{"before":"cee14dc8b23071621c58fad3dff71a45e44d70e1","after":"30501e143b2a08e0c682fcf0831a3de1e0566237","ref":"refs/heads/feature/unit_about_section","pushedAt":"2023-12-28T11:34:42.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Pavlusha311245","name":"Pavel Zavadski","path":"/Pavlusha311245","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49598333?s=80&v=4"},"commit":{"message":"Added unit section to status endpoint #928\n\nSigned-off-by: Paul Zavadski ","shortMessageHtmlLink":"Added unit section to status endpoint nginx#928"}},{"before":"989e8cd9c8cbadede6cb43953ff04f922274a535","after":"b6216f0bb7c4e10afcec00c6660644ff32db0dfb","ref":"refs/heads/master","pushedAt":"2023-10-01T07:32:47.000Z","pushType":"push","commitsCount":16,"pusher":{"login":"Pavlusha311245","name":"Pavel Zavadski","path":"/Pavlusha311245","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49598333?s=80&v=4"},"commit":{"message":"Java: fixed the calculation related to the response buffer.\n\nWe need to take into account the size of the nxt_unit_response_t\nstructure itself when calculating where to start appending data to in\nmemory.\n\nCloses: \nReported-by: Alejandro Colomar \nReviewed-by: Andrew Clayton \nSigned-off-by: Andrew Clayton ","shortMessageHtmlLink":"Java: fixed the calculation related to the response buffer."}},{"before":"5c579830f0ef27317621572154de8820c4b7f3b1","after":"cee14dc8b23071621c58fad3dff71a45e44d70e1","ref":"refs/heads/feature/unit_about_section","pushedAt":"2023-08-28T16:04:39.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Pavlusha311245","name":"Pavel Zavadski","path":"/Pavlusha311245","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49598333?s=80&v=4"},"commit":{"message":"Added unit section to status endpoint #928\n\nSigned-off-by: Paul Zavadski ","shortMessageHtmlLink":"Added unit section to status endpoint nginx#928"}},{"before":"473c18e2a8e1ba83e84f0229ff01d501ba8b9206","after":"5c579830f0ef27317621572154de8820c4b7f3b1","ref":"refs/heads/feature/unit_about_section","pushedAt":"2023-08-28T16:04:14.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Pavlusha311245","name":"Pavel Zavadski","path":"/Pavlusha311245","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49598333?s=80&v=4"},"commit":{"message":"Added unit section to status endpoint #928","shortMessageHtmlLink":"Added unit section to status endpoint nginx#928"}},{"before":null,"after":"473c18e2a8e1ba83e84f0229ff01d501ba8b9206","ref":"refs/heads/feature/unit_about_section","pushedAt":"2023-08-28T16:02:00.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Pavlusha311245","name":"Pavel Zavadski","path":"/Pavlusha311245","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/49598333?s=80&v=4"},"commit":{"message":"Added unit section to status endpoint #928","shortMessageHtmlLink":"Added unit section to status endpoint nginx#928"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEVJcQEgA","startCursor":null,"endCursor":null}},"title":"Activity ยท Pavlusha311245/unit"}