You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@iotdb.apache.org by "刘珍 (Jira)" <ji...@apache.org> on 2022/01/06 12:30:00 UTC

[jira] [Created] (IOTDB-2292) [Trigger] The alert result on the MQTT is less than that on the Local

刘珍 created IOTDB-2292:
-------------------------

             Summary: [Trigger] The alert result on the MQTT  is less than that on the Local 
                 Key: IOTDB-2292
                 URL: https://issues.apache.org/jira/browse/IOTDB-2292
             Project: Apache IoTDB
          Issue Type: Bug
          Components: Core/Server
    Affects Versions: 0.13.0
            Reporter: 刘珍
         Attachments: TriggerExample.jar

mqtt 端接收到的结果 少于 local端。
local端的结果:19992
mqtt端的结果: 19541
mqtt少了451条的记录。
且 mqtt端的iotdb有error:
2022-01-06 18:07:32,220 [pool-6-thread-1] ERROR o.a.i.d.u.ErrorHandlingUtils:57 - Status code: EXECUTE_STATEMENT_ERROR(400), operation: checkAuthority failed
java.lang.NullPointerException: null
        at org.apache.iotdb.db.concurrent.HashLock.readLock(HashLock.java:48)
        at org.apache.iotdb.db.auth.user.BasicUserManager.getUser(BasicUserManager.java:86)
        at org.apache.iotdb.db.auth.authorizer.BasicAuthorizer.checkUserPrivileges(BasicAuthorizer.java:285)
        at org.apache.iotdb.db.auth.AuthorityChecker.checkOnePath(AuthorityChecker.java:87)
        at org.apache.iotdb.db.auth.AuthorityChecker.check(AuthorityChecker.java:72)
        at org.apache.iotdb.db.service.basic.BasicServiceProvider.checkAuthorization(BasicServiceProvider.java:112)
        at org.apache.iotdb.db.service.basic.BasicServiceProvider.checkAuthority(BasicServiceProvider.java:118)
        at org.apache.iotdb.db.protocol.mqtt.PublishHandler.onPublish(PublishHandler.java:132)
        at io.moquette.interception.BrokerInterceptor.lambda$notifyTopicPublished$3(BrokerInterceptor.java:133)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)


测试用例:
把jar包放到local端的ext/trigger下

步骤1:在local端创建序列
set storage group to root.sg1;
CREATE TIMESERIES root.sg1.dev1.s_1 WITH DATATYPE=INT32, ENCODING=PLAIN;
CREATE TIMESERIES root.sg1.dev1.s_2 WITH DATATYPE=INT64, ENCODING=PLAIN;
CREATE TIMESERIES root.sg1.dev1.s_3 WITH DATATYPE=FLOAT, ENCODING=PLAIN;
CREATE TIMESERIES root.sg1.dev1.s_4 WITH DATATYPE=DOUBLE, ENCODING=PLAIN;
CREATE TIMESERIES root.sg1.dev1.s_5 WITH DATATYPE=TEXT, ENCODING=PLAIN;
CREATE TIMESERIES root.sg1.dev1.s_6 WITH DATATYPE=BOOLEAN, ENCODING=PLAIN;

CREATE TIMESERIES root.sg1.dev2.s_7 WITH DATATYPE=INT64, ENCODING=PLAIN;
CREATE TIMESERIES root.sg1.dev2.s_8 WITH DATATYPE=INT64, ENCODING=PLAIN;
CREATE TIMESERIES root.sg1.dev2.s_9 WITH DATATYPE=INT64, ENCODING=PLAIN;
步骤2:在local端创建触发器
CREATE TRIGGER "trig1"
AFTER INSERT
ON root.sg1.dev1.s_1
AS 'TriggerExample'
WITH (
  'ts_type' = 'int32', 
  'remote_ip' = '172.20.70.4'
);


CREATE TRIGGER "trig2"
AFTER INSERT
ON root.sg1.dev1.s_2
AS 'TriggerExample'
WITH (
  'ts_type' = 'int64', 
  'remote_ip' = '172.20.70.4'
);

CREATE TRIGGER "trig3"
AFTER INSERT
ON root.sg1.dev1.s_3
AS 'TriggerExample'
WITH (
  'ts_type' = 'float', 
  'remote_ip' = '172.20.70.4'
);

CREATE TRIGGER "trig4"
AFTER INSERT
ON root.sg1.dev1.s_4
AS 'TriggerExample'
WITH (
  'ts_type' = 'double', 
  'remote_ip' = '172.20.70.4'
);

CREATE TRIGGER "trig5"
AFTER INSERT
ON root.sg1.dev1.s_5
AS 'TriggerExample'
WITH (
  'ts_type' = 'text', 
  'remote_ip' = '172.20.70.4'
);

CREATE TRIGGER "trig6"
AFTER INSERT
ON root.sg1.dev1.s_6
AS 'TriggerExample'
WITH (
  'ts_type' = 'boolean', 
  'remote_ip' = '172.20.70.4'
);

启动测试脚本:
local端 cli insert 1条 看看触发器是否正常
insert into root.sg1.dev1(time,s_1,s_2,s_3,s_4,s_5,s_6) values(1,1,1,1.2,1.3,'hello',true);
触发器正常,启动测试脚本:
 insert.sh
#!/bin/bash
for i in {10..20000}
do
    ./sbin/start-cli.sh -p 6677 -e "insert into root.sg1.dev1(time,s_1,s_2,s_3,s_4,s_5,s_6) values($i,$i,$i,$i,$i,'hello',true);"
done

一共19992条记录。

触发器的jar包见附件。




--
This message was sent by Atlassian Jira
(v8.20.1#820001)