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

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

    [ https://issues.apache.org/jira/browse/IOTDB-2292?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17476594#comment-17476594 ] 

Haonan Hou commented on IOTDB-2292:
-----------------------------------

Resolved by https://github.com/apache/iotdb/pull/4814

> [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-SNAPSHOT
>            Reporter: 刘珍
>            Assignee: xieqijun
>            Priority: Critical
>              Labels: 0.13.0
>         Attachments: TriggerExample.jar, log_error.log
>
>
> 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;
> 步骤2:在local端创建触发器
> CREATE TRIGGER "trig1"
> AFTER INSERT
> ON root.sg1.dev1.s_1
> AS 'TriggerExample'
> WITH (
> 'ts_type' = 'int32', 
> 'remote_ip' = '127.0.0.1'
> );
> CREATE TRIGGER "trig2"
> AFTER INSERT
> ON root.sg1.dev1.s_2
> AS 'TriggerExample'
> WITH (
> 'ts_type' = 'int64', 
> 'remote_ip' = '127.0.0.1'
> );
> CREATE TRIGGER "trig3"
> AFTER INSERT
> ON root.sg1.dev1.s_3
> AS 'TriggerExample'
> WITH (
> 'ts_type' = 'float', 
> 'remote_ip' = '127.0.0.1'
> );
> CREATE TRIGGER "trig4"
> AFTER INSERT
> ON root.sg1.dev1.s_4
> AS 'TriggerExample'
> WITH (
> 'ts_type' = 'double', 
> 'remote_ip' = '127.0.0.1'
> );
> CREATE TRIGGER "trig5"
> AFTER INSERT
> ON root.sg1.dev1.s_5
> AS 'TriggerExample'
> WITH (
> 'ts_type' = 'text', 
> 'remote_ip' = '127.0.0.1'
> );
> CREATE TRIGGER "trig6"
> AFTER INSERT
> ON root.sg1.dev1.s_6
> AS 'TriggerExample'
> WITH (
> 'ts_type' = 'boolean', 
> 'remote_ip' = '127.0.0.1'
> );
> 启动测试脚本:
> 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)