diff --git a/.github/workflows/centos_7.yml b/.github/workflows/centos_7.yml
index 87c77154dd55d64544df0caeca3c57b8e62745b8..402c72c7732e7db762aef2552affbef6c808846d 100644
--- a/.github/workflows/centos_7.yml
+++ b/.github/workflows/centos_7.yml
@@ -66,7 +66,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: centos-7${{ matrix.build-type == 'gc64' && '-gc64' || '' }}
diff --git a/.github/workflows/centos_7_aarch64.yml b/.github/workflows/centos_7_aarch64.yml
index 8b663afa591f3ee7a806ca6408524599b868107e..34d3af2f578e64e637974050c6ac4a5bf9401c98 100644
--- a/.github/workflows/centos_7_aarch64.yml
+++ b/.github/workflows/centos_7_aarch64.yml
@@ -60,7 +60,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: centos-7
diff --git a/.github/workflows/centos_8.yml b/.github/workflows/centos_8.yml
index 1bef5a048f0f1f7e113a3c27f56a8eed6425e137..b1edbb0ba642e820d39dba2f76d70b9d0da945db 100644
--- a/.github/workflows/centos_8.yml
+++ b/.github/workflows/centos_8.yml
@@ -66,7 +66,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: centos-8${{ matrix.build-type == 'gc64' && '-gc64' || '' }}
diff --git a/.github/workflows/centos_8_aarch64.yml b/.github/workflows/centos_8_aarch64.yml
index 333b99c05ac8fb8b9517409854a9c97caf2de816..dfe0eafe0f59dcb557846a14f6a42c46322419ec 100644
--- a/.github/workflows/centos_8_aarch64.yml
+++ b/.github/workflows/centos_8_aarch64.yml
@@ -60,7 +60,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: centos-8
diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml
index 22f334cc358801e26b0268facb004c3f6ed701ae..7f7bedfea1b549609e2a51954f55eb30fa514095 100644
--- a/.github/workflows/coverage.yml
+++ b/.github/workflows/coverage.yml
@@ -77,14 +77,14 @@ jobs:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
 
       - name: Collect coverage info
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         with:
           name: coverage
           retention-days: 21
           path: ./coverage.info
 
       - name: Collect failure logs
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: failure-logs
diff --git a/.github/workflows/coverity.yml b/.github/workflows/coverity.yml
index 00d388ea3a5626576fbf9cdfa5e222a4ef222948..d98c0305de5d4fde9649c3973142d2fe7141747a 100644
--- a/.github/workflows/coverity.yml
+++ b/.github/workflows/coverity.yml
@@ -31,7 +31,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: debug
diff --git a/.github/workflows/debian_10.yml b/.github/workflows/debian_10.yml
index 4962274ade14c2c7ba127dd953769de5c0f57562..0ade27a27458300a18a6b51e4e412e1812605dd7 100644
--- a/.github/workflows/debian_10.yml
+++ b/.github/workflows/debian_10.yml
@@ -66,7 +66,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: debian-buster${{ matrix.build-type == 'gc64' && '-gc64' || '' }}
diff --git a/.github/workflows/debian_10_aarch64.yml b/.github/workflows/debian_10_aarch64.yml
index df7e61f5e9aa13d48253dfa9a893677737861496..e92117a5fe1d95a843847f595a6bb0a6c282035a 100644
--- a/.github/workflows/debian_10_aarch64.yml
+++ b/.github/workflows/debian_10_aarch64.yml
@@ -60,7 +60,7 @@ jobs:
         with:
            bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: debian-buster
diff --git a/.github/workflows/debian_11.yml b/.github/workflows/debian_11.yml
index a965e2cc76f058c99cd8bf8f24a8ccfc0a002c36..d0038896c0c4675c92a094dc897a002765c10d40 100644
--- a/.github/workflows/debian_11.yml
+++ b/.github/workflows/debian_11.yml
@@ -66,7 +66,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: debian-bullseye${{ matrix.build-type == 'gc64' && '-gc64' || '' }}
diff --git a/.github/workflows/debian_11_aarch64.yml b/.github/workflows/debian_11_aarch64.yml
index 7d416f6aba6b4de31f021ad70c912cffe2b47b3d..3a863162684dee05d9e35e3f6f2a0031e2541efa 100644
--- a/.github/workflows/debian_11_aarch64.yml
+++ b/.github/workflows/debian_11_aarch64.yml
@@ -60,7 +60,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: debian-bullseye
diff --git a/.github/workflows/debian_9.yml b/.github/workflows/debian_9.yml
index 6dff7b037a649245d265fbd54dc4188207899f0d..f804762fca972539b95578f2b9c282f21a7c92a6 100644
--- a/.github/workflows/debian_9.yml
+++ b/.github/workflows/debian_9.yml
@@ -66,7 +66,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: debian-stretch${{ matrix.build-type == 'gc64' && '-gc64' || '' }}
diff --git a/.github/workflows/debug.yml b/.github/workflows/debug.yml
index d1a42dad8899f31c973eba26d0a3c2dcb0f8ac93..1997d4872d41fae9a9468ff2f81aea9fb46fcada 100644
--- a/.github/workflows/debug.yml
+++ b/.github/workflows/debug.yml
@@ -65,7 +65,7 @@ jobs:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
 
       - name: Collect artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: failure-logs
diff --git a/.github/workflows/debug_aarch64.yml b/.github/workflows/debug_aarch64.yml
index fc44ca96a0650dd843b4629b0ee88fd4d21c97f2..50db68edc504bd2c69e8a02eb9a6e6e963962040 100644
--- a/.github/workflows/debug_aarch64.yml
+++ b/.github/workflows/debug_aarch64.yml
@@ -58,7 +58,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: failure-logs
diff --git a/.github/workflows/default_gcc_centos_7.yml b/.github/workflows/default_gcc_centos_7.yml
index 71dd62c2460255e3ec228593aeb310fbd2211c05..fb9d9eebb23c7c586cec06e5a9d0782ee386088d 100644
--- a/.github/workflows/default_gcc_centos_7.yml
+++ b/.github/workflows/default_gcc_centos_7.yml
@@ -64,7 +64,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: default_gcc_centos_7
diff --git a/.github/workflows/fedora_34.yml b/.github/workflows/fedora_34.yml
index 77c69c2ae3ff7f1a9c3b97814012c6b743ffa570..451684e8c5197967f5f9fd1893bab4b72044e6d8 100644
--- a/.github/workflows/fedora_34.yml
+++ b/.github/workflows/fedora_34.yml
@@ -66,7 +66,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: fedora-34${{ matrix.build-type == 'gc64' && '-gc64' || '' }}
diff --git a/.github/workflows/fedora_34_aarch64.yml b/.github/workflows/fedora_34_aarch64.yml
index 564f8b26c8a46fbe1d0ce3abddd9a3141c04b20f..e50798e54e6ba956dddd3ebadedb18a9ebb74df1 100644
--- a/.github/workflows/fedora_34_aarch64.yml
+++ b/.github/workflows/fedora_34_aarch64.yml
@@ -60,7 +60,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: fedora-34
diff --git a/.github/workflows/fedora_35.yml b/.github/workflows/fedora_35.yml
index 4735c094a0c7666e468f031fe05e0c7e0205ce85..7c1e970cb8027d8368a6cd2c61f6f895ccf78f40 100644
--- a/.github/workflows/fedora_35.yml
+++ b/.github/workflows/fedora_35.yml
@@ -66,7 +66,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: fedora-35${{ matrix.build-type == 'gc64' && '-gc64' || '' }}
diff --git a/.github/workflows/fedora_35_aarch64.yml b/.github/workflows/fedora_35_aarch64.yml
index e4d460612ba9cd70ecdb6d94479b30702ba8f0be..7b459a3cb1b92ca39c210326b569af3c970920fb 100644
--- a/.github/workflows/fedora_35_aarch64.yml
+++ b/.github/workflows/fedora_35_aarch64.yml
@@ -60,7 +60,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: fedora-35
diff --git a/.github/workflows/fedora_36.yml b/.github/workflows/fedora_36.yml
index 99e50af3355a84ab75d8a9a0123757eebed6aee4..0430157d08c89df8dc30bcf6ca8eef3c0d52deb5 100644
--- a/.github/workflows/fedora_36.yml
+++ b/.github/workflows/fedora_36.yml
@@ -66,7 +66,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: fedora-36${{ matrix.build-type == 'gc64' && '-gc64' || '' }}
diff --git a/.github/workflows/fedora_36_aarch64.yml b/.github/workflows/fedora_36_aarch64.yml
index 38a7e5335a859d5a6affda802c5b75d5e419fe2e..211a2aeb196fea71b52eba0e4181abfd6565e6c4 100644
--- a/.github/workflows/fedora_36_aarch64.yml
+++ b/.github/workflows/fedora_36_aarch64.yml
@@ -60,7 +60,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: fedora-36
diff --git a/.github/workflows/freebsd-12.yml b/.github/workflows/freebsd-12.yml
index 6695613da6e36f84bbcd987ffafa3303101dd91e..05fe29cc0d7526012f1cbed347ad6b4341f7fb94 100644
--- a/.github/workflows/freebsd-12.yml
+++ b/.github/workflows/freebsd-12.yml
@@ -58,7 +58,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: freebsd-12
diff --git a/.github/workflows/freebsd-13.yml b/.github/workflows/freebsd-13.yml
index 12154c80ecfec73cfc32a816c8dcc81df85d302f..b19148adbec7b8f956fdc65a8c47ac7ff4d17031 100644
--- a/.github/workflows/freebsd-13.yml
+++ b/.github/workflows/freebsd-13.yml
@@ -58,7 +58,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: freebsd-13
diff --git a/.github/workflows/fuzzing.yml b/.github/workflows/fuzzing.yml
index 9f2e83be3af27c7326c1e5b3f95792885bd0861d..447074d448ff8245b7f3a0b22efb4723a87d9f97 100644
--- a/.github/workflows/fuzzing.yml
+++ b/.github/workflows/fuzzing.yml
@@ -71,7 +71,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: upload crash
-        uses: actions/upload-artifact@v1
+        uses: actions/upload-artifact@v3
         if: failure() && steps.build.outcome == 'success'
         with:
           name: ${{ matrix.sanitizer }}-artifacts
diff --git a/.github/workflows/jepsen-cluster-txm.yml b/.github/workflows/jepsen-cluster-txm.yml
index dc0f1d7fb081394d53d719b75156ae9957d36b3d..b706732e7a6b8de7319349fc77b7138ad40b7e5a 100644
--- a/.github/workflows/jepsen-cluster-txm.yml
+++ b/.github/workflows/jepsen-cluster-txm.yml
@@ -36,7 +36,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: jepsen-cluster-txm
diff --git a/.github/workflows/jepsen-cluster.yml b/.github/workflows/jepsen-cluster.yml
index ee69cf98e9f1f500077c441e42bacc8c379d2d05..81dcaadc63f33c6f2fdc6a047d646ba28c3dd7e6 100644
--- a/.github/workflows/jepsen-cluster.yml
+++ b/.github/workflows/jepsen-cluster.yml
@@ -36,7 +36,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: jepsen-cluster
diff --git a/.github/workflows/jepsen-single-instance-txm.yml b/.github/workflows/jepsen-single-instance-txm.yml
index 8a5b6b7a07376cb07040e60dbb7089bb4499a50c..8d7a840e3a16b96431d5ee4f03b9c3f409c64386 100644
--- a/.github/workflows/jepsen-single-instance-txm.yml
+++ b/.github/workflows/jepsen-single-instance-txm.yml
@@ -40,7 +40,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: jepsen-single-instance-txm
diff --git a/.github/workflows/jepsen-single-instance.yml b/.github/workflows/jepsen-single-instance.yml
index 2c1d93bc4be38fd456d818ad2b80ad3941886a6c..1d509ab0e90b01e37a30bcde5ff33ea48c484d1b 100644
--- a/.github/workflows/jepsen-single-instance.yml
+++ b/.github/workflows/jepsen-single-instance.yml
@@ -40,7 +40,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: jepsen-single-instance
diff --git a/.github/workflows/memtx_allocator_based_on_malloc.yml b/.github/workflows/memtx_allocator_based_on_malloc.yml
index b458eb54309ccae9d77e622d8f659bfaea077308..651029145e1b646cc6620582477f9062b9536ab3 100644
--- a/.github/workflows/memtx_allocator_based_on_malloc.yml
+++ b/.github/workflows/memtx_allocator_based_on_malloc.yml
@@ -60,7 +60,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: memtx_allocator_based_on_malloc
diff --git a/.github/workflows/opensuse_15_1.yml b/.github/workflows/opensuse_15_1.yml
index 1745b96d65164b698b8088f0aec6411b23ef74af..115491a05141f24b6f4c7feaa204ae4f5fcfbe1a 100644
--- a/.github/workflows/opensuse_15_1.yml
+++ b/.github/workflows/opensuse_15_1.yml
@@ -66,7 +66,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: opensuse-leap-15.1${{ matrix.build-type == 'gc64' && '-gc64' || '' }}
diff --git a/.github/workflows/opensuse_15_2.yml b/.github/workflows/opensuse_15_2.yml
index 47c0edb53d910b0dd24e416395e410357920b7b3..bc214a710bdbb04d239b766255a95e8cf9bb515e 100644
--- a/.github/workflows/opensuse_15_2.yml
+++ b/.github/workflows/opensuse_15_2.yml
@@ -66,7 +66,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: opensuse-leap-15.2${{ matrix.build-type == 'gc64' && '-gc64' || '' }}
diff --git a/.github/workflows/osx_11.yml b/.github/workflows/osx_11.yml
index cf27b42b50d4f14a9a6722d99dfc160d9a5671e9..70c02ea2262da18c18d656e5ab1f24ece8f24f46 100644
--- a/.github/workflows/osx_11.yml
+++ b/.github/workflows/osx_11.yml
@@ -58,7 +58,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: osx_11
diff --git a/.github/workflows/osx_11_aarch64.yml b/.github/workflows/osx_11_aarch64.yml
index a9afa72ad12a5c22d35855afd2023a9d12da26f6..216ac03d2272315f5126c49d007e0cc851be1707 100644
--- a/.github/workflows/osx_11_aarch64.yml
+++ b/.github/workflows/osx_11_aarch64.yml
@@ -58,7 +58,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: osx_11_aarch64
diff --git a/.github/workflows/osx_11_aarch64_debug.yml b/.github/workflows/osx_11_aarch64_debug.yml
index a488bcfaa8451ff92bcd697e36c1faf1448a9665..8ba4f1e3b056e40721e9fa013ec2a6436dd7494a 100644
--- a/.github/workflows/osx_11_aarch64_debug.yml
+++ b/.github/workflows/osx_11_aarch64_debug.yml
@@ -58,7 +58,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: osx_11_aarch64_debug
diff --git a/.github/workflows/osx_11_lto.yml b/.github/workflows/osx_11_lto.yml
index ce6f87043957e5db54c5bbfcf4b2baaa81296e2d..320c5e0fc94855a8db460824a861e3b648453d1b 100644
--- a/.github/workflows/osx_11_lto.yml
+++ b/.github/workflows/osx_11_lto.yml
@@ -60,7 +60,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: osx_11_lto
diff --git a/.github/workflows/osx_12.yml b/.github/workflows/osx_12.yml
index 70b3bc1059fc666844f6af44dbcd8348e09dc551..1cc32c0278e11b7f0f5b01dc19c2c297e83f360e 100644
--- a/.github/workflows/osx_12.yml
+++ b/.github/workflows/osx_12.yml
@@ -58,7 +58,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: osx_12
diff --git a/.github/workflows/osx_12_static_cmake.yml b/.github/workflows/osx_12_static_cmake.yml
index a9fad7d2a89d6e5b619f0046263553b9762d9474..57c815f22181b13953f10fa2b9cb70ec4a4dc3cd 100644
--- a/.github/workflows/osx_12_static_cmake.yml
+++ b/.github/workflows/osx_12_static_cmake.yml
@@ -58,7 +58,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: osx_12_static_cmake
diff --git a/.github/workflows/out_of_source.yml b/.github/workflows/out_of_source.yml
index 3662536b015b72b311c2fd33f34e23dd4d5c2f95..7cac282bf24a549e9dc5baf84fee6fc531b80c41 100644
--- a/.github/workflows/out_of_source.yml
+++ b/.github/workflows/out_of_source.yml
@@ -60,7 +60,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: out_of_source
diff --git a/.github/workflows/perf_cbench.yml b/.github/workflows/perf_cbench.yml
index 675365470b8966d8614ed5cc2453e78aa2c52ed8..2c1425a16653c030bda8268313b4fc1a50dabc92 100644
--- a/.github/workflows/perf_cbench.yml
+++ b/.github/workflows/perf_cbench.yml
@@ -31,7 +31,7 @@ jobs:
         uses: ./.github/actions/send-telegram-notify
         if: failure()
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: always()
         with:
           name: perf_cbench
diff --git a/.github/workflows/perf_linkbench_ssd.yml b/.github/workflows/perf_linkbench_ssd.yml
index 84969d18ca215f5870526b1bff5c61541715e86d..ccc1fac3b4cdad2ddeab3694f2c96b5aa7933ecc 100644
--- a/.github/workflows/perf_linkbench_ssd.yml
+++ b/.github/workflows/perf_linkbench_ssd.yml
@@ -32,7 +32,7 @@ jobs:
         uses: ./.github/actions/send-telegram-notify
         if: failure()
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: always()
         with:
           name: perf_linkbench_ssd
diff --git a/.github/workflows/perf_nosqlbench_hash.yml b/.github/workflows/perf_nosqlbench_hash.yml
index 325bc00c4abfe7f1f130066aa66984ed5d9baa43..d0a77553033132df492fd54e83194ae100e71145 100644
--- a/.github/workflows/perf_nosqlbench_hash.yml
+++ b/.github/workflows/perf_nosqlbench_hash.yml
@@ -32,7 +32,7 @@ jobs:
         uses: ./.github/actions/send-telegram-notify
         if: failure()
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: always()
         with:
           name: perf_nosqlbench_hash
diff --git a/.github/workflows/perf_nosqlbench_tree.yml b/.github/workflows/perf_nosqlbench_tree.yml
index fd35940aa0dedc5f79405bb8cdf0356abcca5dc5..ad9a25a4a0560032fcdc7db3102612eddcf61d2c 100644
--- a/.github/workflows/perf_nosqlbench_tree.yml
+++ b/.github/workflows/perf_nosqlbench_tree.yml
@@ -32,7 +32,7 @@ jobs:
         uses: ./.github/actions/send-telegram-notify
         if: failure()
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: always()
         with:
           name: perf_nosqlbench_tree
diff --git a/.github/workflows/perf_sysbench.yml b/.github/workflows/perf_sysbench.yml
index c8ea0645f459a1956e216b4828de36f80aca235f..02d4c1df08df8778b88480b5b50a0236ce0ffdd4 100644
--- a/.github/workflows/perf_sysbench.yml
+++ b/.github/workflows/perf_sysbench.yml
@@ -147,7 +147,7 @@ jobs:
         if: failure()
 
       - name: Collect artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: always()
         with:
           name: perf_sysbench_${{ matrix.branch }}
diff --git a/.github/workflows/perf_tpcc.yml b/.github/workflows/perf_tpcc.yml
index 9c2fb97bbacb98d0374c96eb966feb0517533b70..f5000c09c72da643d892800b0046ee723f12829f 100644
--- a/.github/workflows/perf_tpcc.yml
+++ b/.github/workflows/perf_tpcc.yml
@@ -31,7 +31,7 @@ jobs:
         uses: ./.github/actions/send-telegram-notify
         if: failure()
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: always()
         with:
           name: perf_tpcc
diff --git a/.github/workflows/perf_tpch.yml b/.github/workflows/perf_tpch.yml
index 0b63d41bcd22e352c410cd738b163e2fdccd37f4..997545f9089d61d35294afda54ed287f25ea0278 100644
--- a/.github/workflows/perf_tpch.yml
+++ b/.github/workflows/perf_tpch.yml
@@ -32,7 +32,7 @@ jobs:
         uses: ./.github/actions/send-telegram-notify
         if: failure()
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: always()
         with:
           name: perf_tpch
diff --git a/.github/workflows/perf_ycsb_hash.yml b/.github/workflows/perf_ycsb_hash.yml
index d6213418e3ae5be0811aa8f20d10c64f18a9c6eb..3c0f59dc70b512339fd20747a161fd2acaf65411 100644
--- a/.github/workflows/perf_ycsb_hash.yml
+++ b/.github/workflows/perf_ycsb_hash.yml
@@ -32,7 +32,7 @@ jobs:
         uses: ./.github/actions/send-telegram-notify
         if: failure()
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: always()
         with:
           name: perf_ycsb_hash
diff --git a/.github/workflows/perf_ycsb_tree.yml b/.github/workflows/perf_ycsb_tree.yml
index 1d840eb54c651e608677b05df1dbf6def5c0b21a..aecfc16bb65dd9dfc25bf7117fd80cb722163797 100644
--- a/.github/workflows/perf_ycsb_tree.yml
+++ b/.github/workflows/perf_ycsb_tree.yml
@@ -32,7 +32,7 @@ jobs:
         uses: ./.github/actions/send-telegram-notify
         if: failure()
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: always()
         with:
           name: perf_ycsb_tree
diff --git a/.github/workflows/redos_7_3.yaml b/.github/workflows/redos_7_3.yaml
index bf43d8cf4719b564535f491d97295a5c1ef9386c..a747bbdd45167c8f3b4c7cec04d39e3e159a722c 100644
--- a/.github/workflows/redos_7_3.yaml
+++ b/.github/workflows/redos_7_3.yaml
@@ -66,7 +66,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: redos-7.3${{ matrix.build-type == 'gc64' && '-gc64' || '' }}
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 6d53d4a5a2163ede40c7b903f4a6705672ae7fb9..ff2478e4849ebfc1d45913abb04293da9adcd322 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -58,7 +58,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: release
diff --git a/.github/workflows/release_asan_clang11.yml b/.github/workflows/release_asan_clang11.yml
index 7f3ebab1fe33fe94ab42cba7ce0f8a6b67387b29..6966335b4490008c5e49ff50bd42839b38c900b7 100644
--- a/.github/workflows/release_asan_clang11.yml
+++ b/.github/workflows/release_asan_clang11.yml
@@ -58,7 +58,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: release_asan_clang11
diff --git a/.github/workflows/release_clang.yml b/.github/workflows/release_clang.yml
index 067af4353d25f9a0f0cbefe56a6f7c8c2e6266cf..eae8a48b57395682c16dec56c0193fa50c7fa5f6 100644
--- a/.github/workflows/release_clang.yml
+++ b/.github/workflows/release_clang.yml
@@ -61,7 +61,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: release_clang
diff --git a/.github/workflows/release_lto.yml b/.github/workflows/release_lto.yml
index d3d2a44ee6a0377905ff383d66cb94d4a991eca2..ffa03effeeb5554aff34b2f64a19c49b335a17fe 100644
--- a/.github/workflows/release_lto.yml
+++ b/.github/workflows/release_lto.yml
@@ -60,7 +60,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: release_lto
diff --git a/.github/workflows/release_lto_clang11.yml b/.github/workflows/release_lto_clang11.yml
index 1356ddf46d9ba6da29e45c444bb183d3295463f4..59b05139523cab7e5dc92492b0041c6c625733d4 100644
--- a/.github/workflows/release_lto_clang11.yml
+++ b/.github/workflows/release_lto_clang11.yml
@@ -62,7 +62,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: release_lto_clang11
diff --git a/.github/workflows/reusable_build.yml b/.github/workflows/reusable_build.yml
index 314f5209c076d775756ef865f708bd19f8f88f70..1a62881dfb26c932b3ce7ef2538446652a56ac14 100644
--- a/.github/workflows/reusable_build.yml
+++ b/.github/workflows/reusable_build.yml
@@ -45,7 +45,7 @@ jobs:
           PRESERVE_ENVVARS: 'MAKE_CHECK,${{ env.PRESERVE_ENVVARS }}'
         run: make -f .pack.mk package
       - name: 'Upload build artifacts'
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         with:
           name: tarantool-${{ env.OS }}-${{ env.DIST }}-${{ steps.get_sha.outputs.sha }}
           retention-days: 21
@@ -55,7 +55,7 @@ jobs:
           if-no-files-found: error
       - name: 'Upload logs if the build failed'
         if: failure() && steps.run_build.conclusion == 'failure'
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         with:
           name: tarantool-build-log-${{ env.OS }}-${{ env.DIST }}-${{ steps.get_sha.outputs.sha }}
           retention-days: 21
diff --git a/.github/workflows/static_build.yml b/.github/workflows/static_build.yml
index 0b0e0f239b56f59bbd8731fc00b91fa8423aa79f..41634c13bce56f9ce7106d0c8013d8922d90411a 100644
--- a/.github/workflows/static_build.yml
+++ b/.github/workflows/static_build.yml
@@ -58,7 +58,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: static_build
diff --git a/.github/workflows/static_build_cmake_linux.yml b/.github/workflows/static_build_cmake_linux.yml
index 6847be8922c791857b858d29c2e9b3505eb8d8bf..6de3e4c94be24882e96f0bec72ea4be201914096 100644
--- a/.github/workflows/static_build_cmake_linux.yml
+++ b/.github/workflows/static_build_cmake_linux.yml
@@ -58,7 +58,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: static_build_cmake_linux
diff --git a/.github/workflows/ubuntu_16_04.yml b/.github/workflows/ubuntu_16_04.yml
index fbae07a0fdda650bb4d34e91663fe60fbb38be62..132ab09e5b14b2cd807f034b89d47675969f443c 100644
--- a/.github/workflows/ubuntu_16_04.yml
+++ b/.github/workflows/ubuntu_16_04.yml
@@ -66,7 +66,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: ubuntu-xenial${{ matrix.build-type == 'gc64' && '-gc64' || '' }}
diff --git a/.github/workflows/ubuntu_18_04.yml b/.github/workflows/ubuntu_18_04.yml
index 0eeeed51f14963db3251298bfe6da62e06ab4d85..2b5a7707d1c98177bf0b0705736d7c447f15c04e 100644
--- a/.github/workflows/ubuntu_18_04.yml
+++ b/.github/workflows/ubuntu_18_04.yml
@@ -66,7 +66,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: ubuntu-bionic${{ matrix.build-type == 'gc64' && '-gc64' || '' }}
diff --git a/.github/workflows/ubuntu_20_04.yml b/.github/workflows/ubuntu_20_04.yml
index 4bdc67caef44f77b02923d87a85e4054d80b4b6e..2b7be60dc7ff7c2e417a7b8e520e35337a0136de 100644
--- a/.github/workflows/ubuntu_20_04.yml
+++ b/.github/workflows/ubuntu_20_04.yml
@@ -66,7 +66,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: ubuntu-focal${{ matrix.build-type == 'gc64' && '-gc64' || '' }}
diff --git a/.github/workflows/ubuntu_20_04_aarch64.yml b/.github/workflows/ubuntu_20_04_aarch64.yml
index 480fd2cee0de14b47c1dc7a114546ab89003ed7a..bdaa5cd2a1baa3f4eb57653639b86d3fc96cbcfe 100644
--- a/.github/workflows/ubuntu_20_04_aarch64.yml
+++ b/.github/workflows/ubuntu_20_04_aarch64.yml
@@ -60,7 +60,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: ubuntu-focal
diff --git a/.github/workflows/ubuntu_22_04.yml b/.github/workflows/ubuntu_22_04.yml
index 47f734139c266ded7a1d1bbdb168e1b44f2d28b6..12e41b0c64b97fc41bffa4940fc2e3c714a62860 100644
--- a/.github/workflows/ubuntu_22_04.yml
+++ b/.github/workflows/ubuntu_22_04.yml
@@ -66,7 +66,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: ubuntu-jammy${{ matrix.build-type == 'gc64' && '-gc64' || '' }}
diff --git a/.github/workflows/ubuntu_22_04_aarch64.yml b/.github/workflows/ubuntu_22_04_aarch64.yml
index f8482807a28a6191964474ed141a6581ebb0465b..345cad9d00cffe4e36ed913d71311ee393c5fb0c 100644
--- a/.github/workflows/ubuntu_22_04_aarch64.yml
+++ b/.github/workflows/ubuntu_22_04_aarch64.yml
@@ -60,7 +60,7 @@ jobs:
         with:
           bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }}
       - name: artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         if: failure()
         with:
           name: ubuntu-jammy