Commit Diff


commit - 219b2b019ea60a966315f78d50e9575bfc8ef334
commit + 620fee9d279f77145b88073ecc432543fbbac7b7
blob - 31ecb149f3c4687477bba2f7d73af1436ce5cb81
blob + 3123be8dc2e7c680fd704526e10e328699e85d76
--- README.md
+++ README.md
@@ -53,6 +53,7 @@ $ spatch --sp-file coccinelle/mmap_map_failed.cocci --
 
 - `tarantool/box/box_cfg_raw_access`
 - `tarantool/box/grant_guest_full_access`
+- `tarantool/box/set_trigger_once`
 - `tarantool/crypto/insecure-hash-algorithm`
 - `tarantool/digest/insecure-hash-algorithm`
 - `tarantool/vshard/bad_hash_func`
blob - /dev/null
blob + b9b9c4ae60b31737029f1e6e00ec4a18fd4e67be (mode 644)
--- /dev/null
+++ rules/lua/tarantool/box/set_trigger_once.lua
@@ -0,0 +1,8 @@
+local triggerfunc = function() end
+local oldtrigger = function() end
+
+-- ruleid: set_trigger_once
+box.space:before_replace(triggerfunc)
+
+-- ok: set_trigger_once
+box.space:before_replace(triggerfunc, oldtrigger)
blob - /dev/null
blob + e8745990154b6fe3d226611c5401cdb94fe68562 (mode 644)
--- /dev/null
+++ rules/lua/tarantool/box/set_trigger_once.yaml
@@ -0,0 +1,11 @@
+rules:
+  - id: set_trigger_once
+    patterns:
+      - pattern: box.$SPACE:before_replace(...)
+      - pattern-not: box.$SPACE:before_replace($NEW, $OLD)
+    message: set_trigger_once
+    languages: [lua]
+    metadata:
+      references:
+        - https://www.tarantool.io/en/doc/latest/concepts/triggers/
+    severity: WARNING