Skip to content

系统时间错误时雪花算法生成的ID触发异常 #491

@BugsGuru

Description

@BugsGuru

版本信息(Version)

2506

问题描述(Describe)

系统时间为2001年时,开启扫描任务时报错:
Image

截图或日志(Log)

开启扫描任务的请求(cURL形式),其中instance_id(17165331503324860416)超出int64的范围:

curl 'http://localhost:10000/sqle/v1/projects/default/instance_audit_plans' \
  -H 'Accept: application/json, text/plain, */*' \
  -H 'Accept-Language: zh-CN,zh;q=0.9' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTI1NzY0MTcsImlhdCI6MTc1MjU2OTIxNywiaXNzIjoiYWN0aW9udGVjaCBkbXMiLCJ0eXAiOiJkbXMtdG9rZW4iLCJ1aWQiOiI3MDAyMDAifQ.dFkARmSjD39-GoPKP9WshMn0W1lSi1aevlw3Y4qfGmE' \
  -H 'Connection: keep-alive' \
  -H 'Content-Type: application/json' \
  -b 'dms-token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTI1NzY0MTcsImlhdCI6MTc1MjU2OTIxNywiaXNzIjoiYWN0aW9udGVjaCBkbXMiLCJ0eXAiOiJkbXMtdG9rZW4iLCJ1aWQiOiI3MDAyMDAifQ.dFkARmSjD39-GoPKP9WshMn0W1lSi1aevlw3Y4qfGmE; dms-refresh-token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTI2NTU2MTcsImlhdCI6MTc1MjU2OTIxNywiaXNzIjoiYWN0aW9udGVjaCBkbXMiLCJ0eXAiOiJkbXMtcmVmcmVzaC10b2tlbiIsInVpZCI6IjcwMDIwMCJ9.tysh1p5FgEZD-8g2uxTRIdJc1Xhtd6ncjPH7C21VqbU' \
  -H 'Origin: http://localhost:10000/' \
  -H 'Referer: http://localhost:10000/sqle/project/700300/sql-management-conf/create' \
  -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[138.0.0.0](http://138.0.0.0/) Safari/537.36' \
  -H 'zone;' \
  --data-raw '{"instance_id":"17165331503324860416","audit_plans":[{"audit_plan_type":"mysql_slow_log","rule_template_name":"default_MySQL_V2Rules","audit_plan_params":[{"key":"collect_interval_minute","value":"60"},{"key":"slow_log_collect_input","value":"0"},{"key":"first_sqls_scrapped_in_last_period_hours","value":"24"}]}]}' \
  --insecure

数据库中db_services记录,其中uid为负数

mysql> select * from db_services\G;
*************************** 1. row ***************************
                      uid: -1281412570384691200
               created_at: 2001-02-28 09:06:50.409
               updated_at: 2001-02-28 09:06:50.409
                     name: test_mysql
                  db_type: MySQL
                  db_host: localhost
                  db_port: 3306
                  db_user: actiontech
              db_password: 2iawO2KBWZTqG9KFwp7UUA==
                     desc: 
      environment_tag_uid: -1281428352829222912
        additional_params: NULL
                   source: SQLE
              project_uid: 700300
       maintenance_period: NULL
         extra_parameters: {"sqle_config": {"rule_template_id": "2", "sql_query_config": {"audit_enabled": false, "max_pre_query_rows": 0, "query_timeout_second": 0, "allow_query_when_less_than_audit_level": ""}, "rule_template_name": "default_MySQL_V2Rules"}, "additional_param": null}
        is_enable_masking: 0
   last_connection_status: NULL
     last_connection_time: NULL
last_connection_error_msg: NULL
            enable_backup: 0
          backup_max_rows: 1000

curl instance_id: 17165331503324860416
db_services uid: -1281412570384691200

instance_id 应该是 uid 的补码无符号解释

如何复现(To Reproduce)

部署dms时,系统时间改成2001年

问题原因

解决方案

变更影响面

受影响的模块或功能

外部引用的潜在问题或风险

版本兼容性

测试建议

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions