{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":911980,"defaultBranch":"master","name":"tarantool","ownerLogin":"tarantool","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2010-09-15T07:59:26.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/2344919?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1714228083.0","currentOid":""},"activityList":{"items":[{"before":"fb897a26b3611263f63d1dca93610fd96e0d3273","after":"078d638c3c0b7d70200fcb085f73701b5e5bc519","ref":"refs/heads/m.kostoev/stub-for-ee-730","pushedAt":"2024-05-02T12:31:41.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"mkostoevr","name":"Magomed Kostoev","path":"/mkostoevr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26708480?s=80&v=4"},"commit":{"message":"WIP for faster scan","shortMessageHtmlLink":"WIP for faster scan"}},{"before":"7b3875da87abd133ba119acc01664ebf254628b2","after":"96b1187776248fcf7bbb990c1e1650c3680c8590","ref":"refs/heads/gh-pages","pushedAt":"2024-05-02T11:42:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Deploying to gh-pages from @ tarantool/tarantool@2467e421cbfd42d0f58c0d27e4e397e730412e6c πŸš€","shortMessageHtmlLink":"Deploying to gh-pages from @ 2467e42 πŸš€"}},{"before":"f7e6686a43a700527b46557aa50b8cb785cb764f","after":"2467e421cbfd42d0f58c0d27e4e397e730412e6c","ref":"refs/heads/master","pushedAt":"2024-05-02T11:41:30.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"locker","name":"Vladimir Davydov","path":"/locker","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1114511?s=80&v=4"},"commit":{"message":"bps: fix the OS X build\n\nFix the clang warning in the BPS tree with logarithmic offset support.\n\nCloses #9987\n\nNO_DOC=no functional changes\nNO_TEST=no functional changes\nNO_CHANGELOG=no functional changes","shortMessageHtmlLink":"bps: fix the OS X build"}},{"before":"060dcbcb0b25de79e51b92e126357ad150df3394","after":"7b3875da87abd133ba119acc01664ebf254628b2","ref":"refs/heads/gh-pages","pushedAt":"2024-04-27T14:29:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Deploying to gh-pages from @ tarantool/tarantool@f7e6686a43a700527b46557aa50b8cb785cb764f πŸš€","shortMessageHtmlLink":"Deploying to gh-pages from @ f7e6686 πŸš€"}},{"before":"d2a8eb9429e92f8ef45b4375ffa15bd6aec7f890","after":null,"ref":"refs/heads/gerold103/gh-9567-too-long-subscribe-v3","pushedAt":"2024-04-27T14:28:03.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"sergepetrenko","name":"Serge Petrenko","path":"/sergepetrenko","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35663196?s=80&v=4"}},{"before":"e279070ad7e223369ead2c76d607234ac9c0c462","after":"f7e6686a43a700527b46557aa50b8cb785cb764f","ref":"refs/heads/master","pushedAt":"2024-04-27T14:28:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sergepetrenko","name":"Serge Petrenko","path":"/sergepetrenko","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35663196?s=80&v=4"},"commit":{"message":"relay: fix timeout on large xlog subscribe start\n\nWhen a replica subscribes, it might in the beginning try to\nposition its reader cursor to the end of a large xlog file.\n\nPositioning inside of this file can take significant time during\nwhich the WAL reader yielded and tried to send heartbeats, but\ncouldn't, because the relay thread wasn't communicating with the\nTX thread.\n\nWhen there are no messages from TX for too long time, the\nheartbeats to the replica are not being sent\n(commit 56571d83172f991d2e8c09b85c27f079c067fe43 (\"raft: make\nfollowers notice leader hang\")).\n\nThe relay must communicate with the TX thread even when subscribe\nis just being started and opens a large xlog file.\n\nThis isn't the first time when the missing heartbeats result into\ntimeouts. See more here:\n\n- commit 30ad4a5549c215e4e46579ad65fae55c00558843 (\"relay: yield\n explicitly every N sent rows\").\n\n- commit 17289440bf3c75e573824e53db226084b241bd33 (\"recovery: make\n it yield when positioning in a WAL\").\n\n- commit ee6de025f7ff4a6fd8e60efafcc78bf613f1686d (\"relay: send\n heartbeats while reading a WAL\").\n\nGiven that this is fixed fourth time, it might suggest that the\nrelay has not the best architecture having some slight drawbacks.\nSee more in #9968.\n\nCloses #9094\n\nNO_DOC=bugfix","shortMessageHtmlLink":"relay: fix timeout on large xlog subscribe start"}},{"before":"c6af05cf861c635fb09a63e1208c913e6d4d9926","after":"060dcbcb0b25de79e51b92e126357ad150df3394","ref":"refs/heads/gh-pages","pushedAt":"2024-04-27T11:10:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Deploying to gh-pages from @ tarantool/tarantool@e279070ad7e223369ead2c76d607234ac9c0c462 πŸš€","shortMessageHtmlLink":"Deploying to gh-pages from @ e279070 πŸš€"}},{"before":"735b0dce76ff83a748e922b292580ebf48f2e946","after":"e279070ad7e223369ead2c76d607234ac9c0c462","ref":"refs/heads/master","pushedAt":"2024-04-27T11:09:45.000Z","pushType":"pr_merge","commitsCount":5,"pusher":{"login":"locker","name":"Vladimir Davydov","path":"/locker","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1114511?s=80&v=4"},"commit":{"message":"perf: reduce the BPS tree perftest dataset\n\nSince the performance benchmarks for three additional flavors of the\nBPS tree had been introduced, the amount of test in this suite has\nincreased to 228. Given some tests work with datasets of 10M entries,\nthe amount of time required to run these increased significantly.\n\nMitigate this by reducing the test datasets.\n\nNO_DOC=perf test\nNO_TEST=perf test\nNO_CHANGELOG=perf test","shortMessageHtmlLink":"perf: reduce the BPS tree perftest dataset"}},{"before":"675b75e6ced47190f36dd077fb90025f97af6819","after":"d2a8eb9429e92f8ef45b4375ffa15bd6aec7f890","ref":"refs/heads/gerold103/gh-9567-too-long-subscribe-v3","pushedAt":"2024-04-26T17:09:13.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Gerold103","name":"Vladislav Shpilevoy","path":"/Gerold103","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5232171?s=80&v=4"},"commit":{"message":"relay: fix timeout on large xlog subscribe start\n\nWhen a replica subscribes, it might in the beginning try to\nposition its reader cursor to the end of a large xlog file.\n\nPositioning inside of this file can take significant time during\nwhich the WAL reader yielded and tried to send heartbeats, but\ncouldn't, because the relay thread wasn't communicating with the\nTX thread.\n\nWhen there are no messages from TX for too long time, the\nheartbeats to the replica are not being sent\n(commit 56571d83172f991d2e8c09b85c27f079c067fe43 (\"raft: make\nfollowers notice leader hang\")).\n\nThe relay must communicate with the TX thread even when subscribe\nis just being started and opens a large xlog file.\n\nThis isn't the first time when the missing heartbeats result into\ntimeouts. See more here:\n\n- commit 30ad4a5549c215e4e46579ad65fae55c00558843 (\"relay: yield\n explicitly every N sent rows\").\n\n- commit 17289440bf3c75e573824e53db226084b241bd33 (\"recovery: make\n it yield when positioning in a WAL\").\n\n- commit ee6de025f7ff4a6fd8e60efafcc78bf613f1686d (\"relay: send\n heartbeats while reading a WAL\").\n\nGiven that this is fixed fourth time, it might suggest that the\nrelay has not the best architecture having some slight drawbacks.\nSee more in #9968.\n\nCloses #9094\n\nNO_DOC=bugfix","shortMessageHtmlLink":"relay: fix timeout on large xlog subscribe start"}},{"before":"5908b1a9222b43cee980157f1be649d8ea74c5e4","after":null,"ref":"refs/heads/foxzi/2.11-ci_timeouts","pushedAt":"2024-04-25T13:33:06.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"ylobankov","name":"Yaroslav Lobankov","path":"/ylobankov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3645987?s=80&v=4"}},{"before":"c4c022e258da744dfdd032dc80883e9b68600134","after":"b30a5ad824a49f768ea2b64bebf68c0a355e25e6","ref":"refs/heads/release/2.11","pushedAt":"2024-04-25T13:33:05.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ylobankov","name":"Yaroslav Lobankov","path":"/ylobankov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3645987?s=80&v=4"},"commit":{"message":"ci: add timeouts for workflow jobs\n\nBy default, each job in a workflow can run for up to 6 hours of the\nexecution time. If a job reaches this limit, the job is terminated by\nGitHub automatically and fails to complete. This patch sets job timeouts\nto 60 minutes to avoid waiting for jobs to complete for 6 hours.\n\nNO_DOC=ci\nNO_TEST=ci\nNO_CHANGELOG=ci","shortMessageHtmlLink":"ci: add timeouts for workflow jobs"}},{"before":"53640e459fad63b79d96e24a5f4b818abf68b949","after":null,"ref":"refs/heads/foxzi/2.10-ci_timeouts","pushedAt":"2024-04-25T13:32:41.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"ylobankov","name":"Yaroslav Lobankov","path":"/ylobankov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3645987?s=80&v=4"}},{"before":"04b99a367559c695580369fb10c11ace38d1b013","after":"b7ef0669dee7e3d4dc8a0b3e2d5f63f229f35722","ref":"refs/heads/release/2.10","pushedAt":"2024-04-25T13:32:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ylobankov","name":"Yaroslav Lobankov","path":"/ylobankov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3645987?s=80&v=4"},"commit":{"message":"ci: add timeouts for workflow jobs\n\nBy default, each job in a workflow can run for up to 6 hours of the\nexecution time. If a job reaches this limit, the job is terminated by\nGitHub automatically and fails to complete. This patch sets job timeouts\nto 60 minutes to avoid waiting for jobs to complete for 6 hours.\n\nNO_DOC=ci\nNO_TEST=ci\nNO_CHANGELOG=ci","shortMessageHtmlLink":"ci: add timeouts for workflow jobs"}},{"before":"763b5291d7f5ac8cbdc7bde2a75fc59b41434f1f","after":"d895bce7851a699a798b9d4bee00e803915aca56","ref":"refs/heads/ligurio/bump-openssl-3.0","pushedAt":"2024-04-25T10:21:38.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Lord-KA","name":"Gleb Kashkin","path":"/Lord-KA","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/43700614?s=80&v=4"},"commit":{"message":"cmake: bump OpenSSL version 1.1.1 -> 3.2.1\n\nTODO:\n\nFix warnings due to using deprecate functions by cyrus-sasl:\n\n```\ndigestmd5.c:894:5: warning: β€˜DES_ede3_cbc_encrypt’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]\n```\n\nSee _https://github.com/cyrusimap/cyrus-sasl/issues/762","shortMessageHtmlLink":"cmake: bump OpenSSL version 1.1.1 -> 3.2.1"}},{"before":"bce6f7c43bada0c3108a9a59dc54ffa44752d8b4","after":"5908b1a9222b43cee980157f1be649d8ea74c5e4","ref":"refs/heads/foxzi/2.11-ci_timeouts","pushedAt":"2024-04-24T21:07:55.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ylobankov","name":"Yaroslav Lobankov","path":"/ylobankov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3645987?s=80&v=4"},"commit":{"message":"ci: add timeouts for workflow jobs\n\nBy default, each job in a workflow can run for up to 6 hours of the\nexecution time. If a job reaches this limit, the job is terminated by\nGitHub automatically and fails to complete. This patch sets job timeouts\nto 60 minutes to avoid waiting for jobs to complete for 6 hours.\n\nNO_DOC=ci\nNO_TEST=ci\nNO_CHANGELOG=ci","shortMessageHtmlLink":"ci: add timeouts for workflow jobs"}},{"before":"1095629dc14dff9c31f73e1c7c506f7a004f6f5c","after":"53640e459fad63b79d96e24a5f4b818abf68b949","ref":"refs/heads/foxzi/2.10-ci_timeouts","pushedAt":"2024-04-24T20:54:41.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ylobankov","name":"Yaroslav Lobankov","path":"/ylobankov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3645987?s=80&v=4"},"commit":{"message":"ci: add timeouts for workflow jobs\n\nBy default, each job in a workflow can run for up to 6 hours of the\nexecution time. If a job reaches this limit, the job is terminated by\nGitHub automatically and fails to complete. This patch sets job timeouts\nto 60 minutes to avoid waiting for jobs to complete for 6 hours.\n\nNO_DOC=ci\nNO_TEST=ci\nNO_CHANGELOG=ci","shortMessageHtmlLink":"ci: add timeouts for workflow jobs"}},{"before":"82084cd66b7aac780db352f49325e0779ec639ed","after":"c6af05cf861c635fb09a63e1208c913e6d4d9926","ref":"refs/heads/gh-pages","pushedAt":"2024-04-24T14:35:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Deploying to gh-pages from @ tarantool/tarantool@735b0dce76ff83a748e922b292580ebf48f2e946 πŸš€","shortMessageHtmlLink":"Deploying to gh-pages from @ 735b0dc πŸš€"}},{"before":"927e351625292c20ff6d07cc70164725fce8b338","after":"735b0dce76ff83a748e922b292580ebf48f2e946","ref":"refs/heads/master","pushedAt":"2024-04-24T14:33:59.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Totktonada","name":"Alexander Turenko","path":"/Totktonada","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92749?s=80&v=4"},"commit":{"message":"popen: add timeout for :wait()\n\nThis commit solves several problems:\n\n* Eliminates polling with fiber sleeps for a process status in `:wait()`.\n Now the method waits for libev's SIGCHLD watcher (via a fiber cond).\n* Fixes use-after-free and crash/infinite hang in `:wait()` when the\n handle is closed from another fiber.\n* Adds `timeout` parameter to `:wait()`.\n\nPopen handles are not reference counted, so the code that waits for a\nprocess completion needs to be a bit tricky to don't access possibly\nfreed memory. I guess things would be simpler if we implemented\nrefcounting on the handles, but the same set of problems are generally\nsolved on the lua/popen side (it tracks `:close()` calls), and I don't\nsee enough motivation to rearrange it. At least, until we'll create the\nhandles not only from Lua.\n\nFixes #4915\nFixes #7653\nFixes #4916\n\n@TarantoolBot document\nTitle: popen: :wait() now has the timeout parameter\n\nUsage example:\n\n```lua\nlocal ph = popen.new(<...>)\nlocal res, err = ph:wait({timeout = 1})\n\nif res == nil then\n -- Timeout is reached.\n assert(err.type == 'TimedOut')\n <...>\nend\n```\n\nAlso `:wait()` now has defined behavior when the popen handle is closed\nfrom another fiber: the method returns the `ChannelIsClosed` error.\n\nBoth updates should have 'Since X.Y.Z' marks in the documentation to\nallow users to decide whether to use the new features based on what\ntarantool releases should be supported by the calling code. IOW, a user\nmay lean on the defined close-during-wait behavior or decide to don't.\nThe same is true for the new timeout option.\n\nSee the `lbox_popen_wait()` comment for the updated formal description\nof the `:wait(<...>)` method.","shortMessageHtmlLink":"popen: add timeout for :wait()"}},{"before":"151d057e24da8187614f04608383f091cc9e2501","after":"0e5607eb1edb094d9c61929035d27f1759b84d71","ref":"refs/heads/release/3.1","pushedAt":"2024-04-24T13:13:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sergepetrenko","name":"Serge Petrenko","path":"/sergepetrenko","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35663196?s=80&v=4"},"commit":{"message":"test: fix flaky persistent triggers test\n\nThe replication test of persistent triggers was waiting only for\nthe persistent triggers to arrive on replica, so the replica tried\nto write to the space which was not created there yet. Let's wait\nfor all changes to arrive to make the test stable.\n\nCloses #9967\n\nNO_CHANGELOG=test\nNO_DOC=test\n\n(cherry picked from commit 927e351625292c20ff6d07cc70164725fce8b338)","shortMessageHtmlLink":"test: fix flaky persistent triggers test"}},{"before":"2d48b7aee74f1c514bc6257eaeb36cc022e65086","after":"bce6f7c43bada0c3108a9a59dc54ffa44752d8b4","ref":"refs/heads/foxzi/2.11-ci_timeouts","pushedAt":"2024-04-24T12:31:12.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"foxzi","name":"Sergei Vorontsov","path":"/foxzi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2674668?s=80&v=4"},"commit":{"message":"ci: add timeouts for workflow jobs\n\nBy default, each job in a workflow can run for up to 6 hours of the\nexecution time. If a job reaches this limit, the job is terminated by\nGitHub automatically and fails to complete. This patch sets job timeouts\nto 60 minutes to avoid waiting for jobs to complete for 6 hours.\n\nNO_DOC=ci\nNO_TEST=ci\nNO_CHANGELOG=ci","shortMessageHtmlLink":"ci: add timeouts for workflow jobs"}},{"before":"f540f2db92330709c4a6132116c64ccd5ccc3577","after":"1095629dc14dff9c31f73e1c7c506f7a004f6f5c","ref":"refs/heads/foxzi/2.10-ci_timeouts","pushedAt":"2024-04-24T11:57:26.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"foxzi","name":"Sergei Vorontsov","path":"/foxzi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2674668?s=80&v=4"},"commit":{"message":"ci: add timeouts for workflow jobs\n\nBy default, each job in a workflow can run for up to 6 hours of the\nexecution time. If a job reaches this limit, the job is terminated by\nGitHub automatically and fails to complete. This patch sets job timeouts\nto 60 minutes to avoid waiting for jobs to complete for 6 hours.\n\nNO_DOC=ci\nNO_TEST=ci\nNO_CHANGELOG=ci","shortMessageHtmlLink":"ci: add timeouts for workflow jobs"}},{"before":"894f9f674a7a737f8b5a30b438fac6ffe7e9632a","after":"f540f2db92330709c4a6132116c64ccd5ccc3577","ref":"refs/heads/foxzi/2.10-ci_timeouts","pushedAt":"2024-04-24T10:38:05.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"foxzi","name":"Sergei Vorontsov","path":"/foxzi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2674668?s=80&v=4"},"commit":{"message":"ci: add timeouts for workflow jobs\n\nBy default, each job in a workflow can run for up to 6 hours of the\nexecution time. If a job reaches this limit, the job is terminated by\nGitHub automatically and fails to complete. This patch sets job timeouts\nto 60 minutes to avoid waiting for jobs to complete for 6 hours.\n\nNO_DOC=ci\nNO_TEST=ci\nNO_CHANGELOG=ci","shortMessageHtmlLink":"ci: add timeouts for workflow jobs"}},{"before":"38293bd660be68bfcd43db2dccc683c8f0fb56ab","after":"894f9f674a7a737f8b5a30b438fac6ffe7e9632a","ref":"refs/heads/foxzi/2.10-ci_timeouts","pushedAt":"2024-04-24T10:34:34.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"foxzi","name":"Sergei Vorontsov","path":"/foxzi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2674668?s=80&v=4"},"commit":{"message":"ci: add timeouts for workflow jobs\n\nBy default, each job in a workflow can run for up to 6 hours of the\nexecution time. If a job reaches this limit, the job is terminated by\nGitHub automatically and fails to complete. This patch sets job timeouts\nto 60 minutes to avoid waiting for jobs to complete for 6 hours.\n\nNO_DOC=ci\nNO_TEST=ci\nNO_CHANGELOG=ci","shortMessageHtmlLink":"ci: add timeouts for workflow jobs"}},{"before":"1243613a580e09ccb196412b2fc6d71f2c06a3dc","after":"2d48b7aee74f1c514bc6257eaeb36cc022e65086","ref":"refs/heads/foxzi/2.11-ci_timeouts","pushedAt":"2024-04-24T10:25:16.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"foxzi","name":"Sergei Vorontsov","path":"/foxzi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2674668?s=80&v=4"},"commit":{"message":"ci: add timeouts for workflow jobs\n\nBy default, each job in a workflow can run for up to 6 hours of the\nexecution time. If a job reaches this limit, the job is terminated by\nGitHub automatically and fails to complete. This patch sets job timeouts\nto 60 minutes to avoid waiting for jobs to complete for 6 hours.\n\nNO_DOC=ci\nNO_TEST=ci\nNO_CHANGELOG=ci","shortMessageHtmlLink":"ci: add timeouts for workflow jobs"}},{"before":"fcf7f5c47d69fbd81b761f203a6d2fbbcf9ae13a","after":"927e351625292c20ff6d07cc70164725fce8b338","ref":"refs/heads/master","pushedAt":"2024-04-24T09:25:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sergepetrenko","name":"Serge Petrenko","path":"/sergepetrenko","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35663196?s=80&v=4"},"commit":{"message":"test: fix flaky persistent triggers test\n\nThe replication test of persistent triggers was waiting only for\nthe persistent triggers to arrive on replica, so the replica tried\nto write to the space which was not created there yet. Let's wait\nfor all changes to arrive to make the test stable.\n\nCloses #9967\n\nNO_CHANGELOG=test\nNO_DOC=test","shortMessageHtmlLink":"test: fix flaky persistent triggers test"}},{"before":"3002848ced564137d825bb8c63e68ccf79fab279","after":"fb897a26b3611263f63d1dca93610fd96e0d3273","ref":"refs/heads/m.kostoev/stub-for-ee-730","pushedAt":"2024-04-24T08:13:47.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"mkostoevr","name":"Magomed Kostoev","path":"/mkostoevr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26708480?s=80&v=4"},"commit":{"message":"Move BPS vector implementation to lib/salad","shortMessageHtmlLink":"Move BPS vector implementation to lib/salad"}},{"before":"7b49ff361359de2072b254466890e43997603128","after":"c4c022e258da744dfdd032dc80883e9b68600134","ref":"refs/heads/release/2.11","pushedAt":"2024-04-23T16:04:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"locker","name":"Vladimir Davydov","path":"/locker","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1114511?s=80&v=4"},"commit":{"message":"netbox: close transport after stopping worker loop and wait for the stop\n\nCurrently, we close the transport from transport from\n`luaT_netbox_transport_stop`, and we do not wait for the worker fiber to\nstop. This causes several problems.\n\nFirstly, the worker can switch context by yielding (`coio_wait`) or\nentering the Lua VM (`netbox_on_state_change`). During a context switch,\nthe connection can get closed. When the connection is closed, its receive\nbuffer is reset. If there was some pending response that was partially\nretrieved (e.g., a large select), then after resetting the buffer we will\nread some inconsistent data. We must not allow this to happen, so let's\ncheck for this case after returning from places where the worker can switch\ncontext. In between closing the connection and cancelling the connection's\nworker, an `on_disconnect` trigger can be called, which, in turn, can\nalso yield, returning control to the worker before it gets cancelled.\n\nSecondly, when the worker enters the Lua VM, garbage collection can be\ntriggered and the connection owning the worker could get closed\nunexpectedly to the worker.\n\nThe fundamental source of these problems is that we close the transport\nbefore the worker's loop stops. Instead, we should close it after the\nworker's loop stops. In `luaT_netbox_transport_stop`, we should only cancel\nthe worker, and either wait for the worker to stop, if we are not executing\non it, or otherwise throw an exception (`luaL_testcancel`) to stop the\nworker's loop. The user will still have the opportunity to catch this\nexception and prevent stoppage of the worker at his own risk. To safeguard\nfrom this scenario, we will now keep the `is_closing` flag enabled once\n`luaT_netbox_transport_stop` is called and never disable it.\n\nThere also still remains a special case of the connection getting garbage\ncollected, when it is impossible to stop the worker's loop, since we cannot\njoin the worker (yielding is forbidden from finalizers), and an exception\nwill not go past the finalizer. However, this case is safe, since the\nconnection is not going to be used by this point, so the worker can simply\nstop on its own at some point. The only thing we need to account for is\nthat we cannot wait for the worker to stop: we can reuse the `wait` option\nof `luaT_netbox_transport_stop` for this.\n\nCloses #9621\nCloses #9826\n\nNO_DOC=\n\nCo-authored-by: Vladimir Davydov \n(cherry picked from commit fcf7f5c47d69fbd81b761f203a6d2fbbcf9ae13a)\n\nCherry pick note: Dropped gh_9621_netbox_worker_crash_test because\nbox.iproto.encode helpers aren't available on 2.11.","shortMessageHtmlLink":"netbox: close transport after stopping worker loop and wait for the stop"}},{"before":"a8c161b728b7b59889ad0a7285ed080785021e54","after":"151d057e24da8187614f04608383f091cc9e2501","ref":"refs/heads/release/3.1","pushedAt":"2024-04-23T15:51:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"locker","name":"Vladimir Davydov","path":"/locker","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1114511?s=80&v=4"},"commit":{"message":"netbox: close transport after stopping worker loop and wait for the stop\n\nCurrently, we close the transport from transport from\n`luaT_netbox_transport_stop`, and we do not wait for the worker fiber to\nstop. This causes several problems.\n\nFirstly, the worker can switch context by yielding (`coio_wait`) or\nentering the Lua VM (`netbox_on_state_change`). During a context switch,\nthe connection can get closed. When the connection is closed, its receive\nbuffer is reset. If there was some pending response that was partially\nretrieved (e.g., a large select), then after resetting the buffer we will\nread some inconsistent data. We must not allow this to happen, so let's\ncheck for this case after returning from places where the worker can switch\ncontext. In between closing the connection and cancelling the connection's\nworker, an `on_disconnect` trigger can be called, which, in turn, can\nalso yield, returning control to the worker before it gets cancelled.\n\nSecondly, when the worker enters the Lua VM, garbage collection can be\ntriggered and the connection owning the worker could get closed\nunexpectedly to the worker.\n\nThe fundamental source of these problems is that we close the transport\nbefore the worker's loop stops. Instead, we should close it after the\nworker's loop stops. In `luaT_netbox_transport_stop`, we should only cancel\nthe worker, and either wait for the worker to stop, if we are not executing\non it, or otherwise throw an exception (`luaL_testcancel`) to stop the\nworker's loop. The user will still have the opportunity to catch this\nexception and prevent stoppage of the worker at his own risk. To safeguard\nfrom this scenario, we will now keep the `is_closing` flag enabled once\n`luaT_netbox_transport_stop` is called and never disable it.\n\nThere also still remains a special case of the connection getting garbage\ncollected, when it is impossible to stop the worker's loop, since we cannot\njoin the worker (yielding is forbidden from finalizers), and an exception\nwill not go past the finalizer. However, this case is safe, since the\nconnection is not going to be used by this point, so the worker can simply\nstop on its own at some point. The only thing we need to account for is\nthat we cannot wait for the worker to stop: we can reuse the `wait` option\nof `luaT_netbox_transport_stop` for this.\n\nCloses #9621\nCloses #9826\n\nNO_DOC=\n\nCo-authored-by: Vladimir Davydov \n(cherry picked from commit fcf7f5c47d69fbd81b761f203a6d2fbbcf9ae13a)","shortMessageHtmlLink":"netbox: close transport after stopping worker loop and wait for the stop"}},{"before":"710b4d0ab4e56cc9b62637592193c16bdc33e9e7","after":"82084cd66b7aac780db352f49325e0779ec639ed","ref":"refs/heads/gh-pages","pushedAt":"2024-04-23T15:34:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Deploying to gh-pages from @ tarantool/tarantool@fcf7f5c47d69fbd81b761f203a6d2fbbcf9ae13a πŸš€","shortMessageHtmlLink":"Deploying to gh-pages from @ fcf7f5c πŸš€"}},{"before":"876177d4954c914b8613d287e4b406166371a736","after":"710b4d0ab4e56cc9b62637592193c16bdc33e9e7","ref":"refs/heads/gh-pages","pushedAt":"2024-04-23T15:33:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Deploying to gh-pages from @ tarantool/tarantool@5602c28d3f1457a2edce47c73526ae99714892f5 πŸš€","shortMessageHtmlLink":"Deploying to gh-pages from @ 5602c28 πŸš€"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEP8aOTgA","startCursor":null,"endCursor":null}},"title":"Activity Β· tarantool/tarantool"}