Zhixiao Bao
3de5894916
feat: taosk compatibility ( #34343 )
2026-01-22 14:24:32 +08:00
guichuan zhang
2c62466aa0
feat(taosx): support distributed taosx ( #34126 )
...
* feat: add xnode syntax
* refactor(xnode): reduce function complexity
* chore: add lost xnode.h file
* feat(xnode): create xnode task
* chore: fix double free error
* add xnoded
* start xnoded as subprocess
* complete xnode task feature
* complete show xnode jobs feature
* complete with option feature
* complete alter xnode job feature
* complete alter xnode task feature
* complete user pass feature
* clean code
* modify status type as char
* fix leader ep null
* fix start task req null
* fix pass id for status
* support timeout msg
* drop xnode task relative jobs
* clean code
* wip
* chore: add test cases for xnode
* chore: fix 3.0 merge changes
* fix drain core dump and create task core dump
* add password check
* retrieve xnode status from xnoded
* pass integer as double to cjson
* add some debug log
* add some job log
* fix start task lock
* do not handle http response
* fix coredump drop xnode task by name
* support start/stop/drop task by name
* remove mock xnoded
* support unix socket
* kill pre-xnoded before start
* support dnode close xnoded
* test(xnode): add unit test cases for xnode
* rebalance support where clause
* fix some test issue
* unformat http post content json string
* add xnode zh doc
* modify drain description
* remove job create/stop/drop operation
* support rebalance all without where condition
* support alter task by name
* add NULL param for mndCheckOperPrivilege
* add xnode txnode module for libmnode.a
* code clean
* change parser len to 4096
* clean code
* chore: try to fix gtest/gtest.h not found
* chore: fix markdown files
* chore: fix markdown in zh
* chore: fix enum issue and add ci
* chore: fix test case problem
* chore: fix pKeyVal overflow
* chore: rename to 排空节点
* chore: external cmake remove parallel
* chore: add DEP_ext_gtest for xnode test
* chore: fix gtest errors
* chore: remove gtest pthread lib
* chore: fix data type not match
* chore: fix some lint errors
* chore: fix void unlink
* chore: fix return with null pointer check
* chore: fix pointer double free and xnodeMemoryTest strncpy null
* chore: fix xnode encode action invalid datelen
* chore: remove TD_LINUX condition
* chore: use PRIu64 denote long long
* chore: fix task parser NULL and allow no with clause
* fix(xnode): fix windows build error
* chore: fix windows curl error
* chore: fix test case ins_tables relative error
* chore: fix memory leak
* docs: update taosx docs
* chore: update taosx docs
* chore: add role priviledge table
* chore: fix error code doc
* chore: fix test_xnode.py
* chore: fix doc typo
* fix: ci error while run test_user_privilege_sysinfo.py
---------
Co-authored-by: Linhe Huo <linhehuo@gmail.com>
Co-authored-by: huohong <sallyhuo@taosdata.com>
Co-authored-by: Simon Guan <guanshengliang@qq.com>
2026-01-01 14:51:03 +08:00
Bomin Zhang
93fe726f9c
feat[TS-7231]: identity authentication ( #33702 )
2025-12-05 17:35:10 +08:00
dmchen
486aca36a0
Merge branch '3.3.6' into merge/3.3.6tomain
2025-09-08 10:09:21 +08:00
dongming chen
624577ea8c
enh/TD-37682-set-sync-timeout ( #32762 )
...
* enh/TD-37682-set-sync-timeout
* add reset vnode sync timeout
* add 4 parameter
* change default
* rename parameter
* refactor: replace strcmp with taosStrncasecmp for syncTimeout checks
* feat: add support for additional sync interval configuration options
* feat: update sync timeout configuration handling in dmProcessConfigReq
* fix: adjust sync interval calculations in dmProcessConfigReq for accuracy
* fix: correct parameter names for sync vnode and mnode election intervals
* fix: update expected row count for 'show variables' in test_show_basic
* fix: update expected row count for 'show variables' in test_valgrind_checkerror1
* feat: add millisecond precision for status intervals and timeouts
* fix: update expected row count for 'show variables' in test_show_basic and test_valgrind_checkerror1
* fix: reduce sleep duration in management threads for improved responsiveness
* feat: add internal parameters for debugging synchronization module in taosd documentation
2025-09-08 09:02:28 +08:00
Pan Wei
bcc25e56bc
feat: new stream ( #31678 )
...
* fix: windows compile issue
* test: add vtable cases (#31829 )
* fix: windows compile issues
* test:add test cases
* fix: windows compile issue
* case: em-4 stream case submit
* test: stream4_sub1 found bug2
* test: submit test_scene_meters_bug2.py
* add stream parameters example
* feat: [TS-6100] Do not translate const value as column.
* Feat/ts 6100 3.0 zlv (#31747 )
* modify asan exampel
* modify asan exampel
* add example
* add example
* modify case example
---------
Co-authored-by: zelv01 <1101510017@qq.com>
* feat(stream): fix memory leak
* modify sliding example
* test: update test case.
* feat(stream): fix conflicts
* fix: add offset case 10a 10s 10m 10h 10d
* feat(stream): fix conflicts
* chore(stream): rename case name #TS-6100
* add case
* modify example
* fix: windows compile issues
* fix: data null check
* feat: [TS-6100] Forbid where when using %%trows (#31827 )
* feat: [TS-6100] Forbid where when using %%trows
* test: update cases
* feat: [TS-6100] Fix leaks.
---------
Co-authored-by: Simon Guan <guanshengliang@qq.com>
* test: reproduce bugs
* test: update test case.
* test: update test case.
* feat: [TS-6100] Fix leaks.
* test: add cases
* Feat/ts 6100 3.0.pw10 (#31841 )
* enh: add operator reset func
* fix: merge join reset issue
* fix: memory issues
* fix: add debug assert
* fix: memory issues
* fix: memory leak
* fix: memory issues
* fix taos log miss
* fix: case issue
* fix: case issue
* fix: case issues
* fix: drop dnode issue
* fix: memory issues
* fix: memory issues
* fix: memory leak issues
* fix: recalculate time range issue
* fix: add debug log
* fix: memory issues
* fix: enable case asan
* Update streamlist_for_ci.task
* fix: case asan issue
* fix: stream name issue
* fix: external window compile issues
* fix: deploy memory issue
* fix: ahandle issue
* fix: ahandle issue
* fix: ahandle issue
* fix: virtual table reader list issue
* fix: log info
* fix: msg error
* fix: virtual table addr list issue
* fix: memory issues
* fix: memory leak issue
* fix: memory issues
* fix: memory free issues
* fix: memory issues
* fix: snode deploy issue
* fix: mnode reader issue
* fix: memory issues
* fix: add debug test
* enh: add ignore nodata trigger
* fix: memory leaks
* fix: configuration issue
* fix: memory issue
* fix: external window issue
* fix: external window issues
* fix: external window placeholder issue
* fix: placeholder function init issues
* fix: memory leak issue
* fix: add debug log
* fix: compile issues
* fix: double free issue
* fix: runner addr update issue
* fix: msg rsp issue
* fix: external window reset issue
* fix: configuration issue
* fix: deploy msg issue
* fix: compile issue
---------
Co-authored-by: huohong <sallyhuo@taosdata.com>
* test: reproduce bugs
* fix: add sliding interval combine case
* test: add cases
* test: add recalc test.
* test: reproduce bugs
* case : add vt ts is null check
* modify case
* bug: submit test_idmp_meters_bug3.py
* test: add test for recalc.
* test: add cases
* fix: error code check
* test: add cases
* fix(stream): scan wal with schema in that version
* add case
* test: add cases
* test: update test case.
* fix: windows compile issues
* add case
* test: add cases (#31845 )
* modify case
* fix: reset interpPrev
* test: add test_idmp_meters bug4 and bug3
* add case
* fix(stream): opti wal interface
* fix: remove test_idmp_meters_bug5.py
* test: add cases
* fix(stream): fix ts data fetch for virtual tables
* cancel asan case
* test: update test case.
* test: update test case.
* add case
* test: add cases
* test: add cases
* test: add case test_idmp_meters_bug5.py
* test: update test case.
* fix(stream): tmq error
* test: add cases
* feat: [TS-6100] Restore deleted code in mndSma.c since they are still in use.
* fix(stream): optimize val scan logic
* test: add test_recalc_expired_time.py to ci.
* test: update test case.
* test: update test case.
* feat: [TS-6100] Fix fill range check
* fix(stream): optimize val scan logic
* add case
* test: modify for partition by %%1
* test: add fun case stream4_sub7
* fix(stream): optimize val scan logic
* add case
* feat: [TS-6100] Rename OPTIONS to STREAM_OPTIONS.
* test: add test for recalc.
* test: use stream_options.
* fix: some cases error.
* test: remove recalc from ci.
* fix: ci case issues (#31880 )
* enh: add operator reset func
* fix: merge join reset issue
* fix: memory issues
* fix: add debug assert
* fix: memory issues
* fix: memory leak
* fix: memory issues
* fix taos log miss
* fix: case issue
* fix: case issue
* fix: case issues
* fix: drop dnode issue
* fix: memory issues
* fix: memory issues
* fix: memory leak issues
* fix: recalculate time range issue
* fix: add debug log
* fix: memory issues
* fix: enable case asan
* Update streamlist_for_ci.task
* fix: case asan issue
* fix: stream name issue
* fix: external window compile issues
* fix: deploy memory issue
* fix: ahandle issue
* fix: ahandle issue
* fix: ahandle issue
* fix: virtual table reader list issue
* fix: log info
* fix: msg error
* fix: virtual table addr list issue
* fix: memory issues
* fix: memory leak issue
* fix: memory issues
* fix: memory free issues
* fix: memory issues
* fix: snode deploy issue
* fix: mnode reader issue
* fix: memory issues
* fix: add debug test
* enh: add ignore nodata trigger
* fix: memory leaks
* fix: configuration issue
* fix: memory issue
* fix: external window issue
* fix: external window issues
* fix: external window placeholder issue
* fix: placeholder function init issues
* fix: memory leak issue
* fix: add debug log
* fix: compile issues
* fix: double free issue
* fix: runner addr update issue
* fix: msg rsp issue
* fix: external window reset issue
* fix: configuration issue
* fix: deploy msg issue
* fix: compile issue
* fix: external window idx issue
* fix: ci issues
---------
Co-authored-by: huohong <sallyhuo@taosdata.com>
* fix(stream): fix compilation error
* fix(stream): optimize val scan logic
* test:add test cases
* test: modify case
* fix: external agg error
* test(stream): tobacco scene testing #TD-36514
* test: add stream cases (#31885 )
* fix: windows compile issue
* fix: calc timerange
* fix: windows compile issue
* modify case
* fix(stream): compile error
* test: remove one debug test case file
* test: modify
* test: add test cases
* test: reproduce bugs
* test: reproduce bugs
* feat: [TS-6100] Placeholder function should only appera in SELECT and… (#31868 )
* feat: [TS-6100] Placeholder function should only appera in SELECT and WHERE and FROM.
* test: update case
---------
Co-authored-by: Simon Guan <guanshengliang@qq.com>
* add example
* add example
* modify case example
* modify case
* test:alter sql
* test: add stream5 case
* fix(stream): get schema error with version
* test: add delete recalc test py.
* test: remove bug cases
* test: stream5 case test passed
* test: add state cases (#31893 )
* fix(stream): compile error
* test: modify case
* test: add cases
* test: add test.
* test: update test case.
* chore(test): fix case err
* test: update test case.
* fix: align data get
* fix(stream): fix row index of datablock written into data cache
* fix: put align data
* test: update test case.
* test: add test cases for virtual table
* chore(test): fix case err #TD-36514
* add case
* test: add test for water mark.
* test: add meters bug6 for stream5
* test: add cases (#31903 )
* test: add test for recalc.
* feat: [TS-6100] %%trows can only be used when event type is window close.
* test: add precision of database for ms/us/ns
* modify case
* add case
* add case
* test: add test to ci.
* modify case
* fix: ci case issues (#31904 )
* enh: add operator reset func
* fix: merge join reset issue
* fix: memory issues
* fix: add debug assert
* fix: memory issues
* fix: memory leak
* fix: memory issues
* fix taos log miss
* fix: case issue
* fix: case issue
* fix: case issues
* fix: drop dnode issue
* fix: memory issues
* fix: memory issues
* fix: memory leak issues
* fix: recalculate time range issue
* fix: add debug log
* fix: memory issues
* fix: enable case asan
* Update streamlist_for_ci.task
* fix: case asan issue
* fix: stream name issue
* fix: external window compile issues
* fix: deploy memory issue
* fix: ahandle issue
* fix: ahandle issue
* fix: ahandle issue
* fix: virtual table reader list issue
* fix: log info
* fix: msg error
* fix: virtual table addr list issue
* fix: memory issues
* fix: memory leak issue
* fix: memory issues
* fix: memory free issues
* fix: memory issues
* fix: snode deploy issue
* fix: mnode reader issue
* fix: memory issues
* fix: add debug test
* enh: add ignore nodata trigger
* fix: memory leaks
* fix: configuration issue
* fix: memory issue
* fix: external window issue
* fix: external window issues
* fix: external window placeholder issue
* fix: placeholder function init issues
* fix: memory leak issue
* fix: add debug log
* fix: compile issues
* fix: double free issue
* fix: runner addr update issue
* fix: msg rsp issue
* fix: external window reset issue
* fix: configuration issue
* fix: deploy msg issue
* fix: compile issue
* fix: external window idx issue
* fix: ci issues
* fix: ci case issues
* fix: drop dnode issue
---------
Co-authored-by: huohong <sallyhuo@taosdata.com>
* fix(stream): ci error
* test: update test case.
* feat: [TS-6100] Disable some failed UT.
* feat: [TS-6100] Fix virtual table
* test: add bug 5.
* test: add test delete recalc to ci.
* test: add bug 6.
* test(stream): tobacco scene #TD-36514
* fix: reqCids,reqCols memory leak in SSTriggerRealtimeContext
Co-authored-by: Tony Zhang <tonyzhang@taosdata.com>
* test: add case stream6
* fix(stream): implement some pending features in trigger task
* modify case
* modify case
* fix: case issues
* modify case
* test: add recalc for warter mark.
* fix(stream): fix count window trigger of virtual tables
* fix(stream): memory leak
* test: fix run err.
* test: add stream6 bug7
* fix: adjust format
* test(stream): tobacco scene testing #TD-36514
* test: change bug7 with update window1 and 2
* test: add test bug 7.
* case: restore write 3 window
* fix: windows compile issue
* fix: notify
* test: add cases
* modify case
* test: update test case.
* test(stream): toobacco scene testing #TD-36514
---------
Co-authored-by: Simon Guan <slguan@taosdata.com>
Co-authored-by: plum-lihui <huili@taosdata.com>
Co-authored-by: Alex Duan <417921451@qq.com>
Co-authored-by: zelv01 <1101510017@qq.com>
Co-authored-by: Jing Sima <simondominic9997@outlook.com>
Co-authored-by: xiangyang guo <66111494+happyguoxy@users.noreply.github.com>
Co-authored-by: wangmm0220 <wangmm0220@gmail.com>
Co-authored-by: Haojun Liao <hjliao@taosdata.com>
Co-authored-by: zyyang90 <zyyang@taosdata.com>
Co-authored-by: Alex Duan <51781608+DuanKuanJun@users.noreply.github.com>
Co-authored-by: facetosea <285808407@qq.com>
Co-authored-by: Simon Guan <guanshengliang@qq.com>
Co-authored-by: huohong <sallyhuo@taosdata.com>
Co-authored-by: Li Hui <52318143+plum-lihui@users.noreply.github.com>
Co-authored-by: Jinqing Kuang <kuangjinqingcn@gmail.com>
Co-authored-by: xiao-77 <berylbao@taosdata.com>
Co-authored-by: Zhixiao Bao <62235797+xiao-77@users.noreply.github.com>
Co-authored-by: happyguoxy <happy_guoxy@163.com>
Co-authored-by: Tony Zhang <34825804+Tony2h@users.noreply.github.com>
Co-authored-by: Tony Zhang <tonyzhang@taosdata.com>
2025-07-16 14:42:16 +08:00
Kaili Xu
dc2b021778
feat: support mount data path ( #31677 )
2025-07-12 15:39:29 +08:00
Zhixiao Bao
62d8b35fd0
feat: add write metrics. ( #31198 )
2025-06-30 10:33:34 +08:00
Minglei Jin
66c4ef3e90
feat(mqtt): mqtt subscription ( #30127 )
...
* feat(mqtt): Initial commit for mqtt
* chore(xnode/mnd): xnode message handlers for mnode
* chore(mnd/xnode): mnode part for xnode
* chore(xnode/translater): fix show commands
* fix(ast/creater): fix xnode create option
* fix(xnode/ci): fix ci & doc's error codes
* chore(xnode/sql): make create/drop/show work properly
* fix(xnode/sql): commit new files
* fix(xnode/sql): commit cmake files
* fix: fix testing cases
* fix(xnode/tsc): fix tokens
* fix(ast/anode): fix anode update decl.
* fix(xnode/error): fix xnode error codes
* fix: xnode make/destroy
* chore: xnode with option & dnode id
* chore: use taosmqtt for xnode
* chore: new error code for xnode launching
* chore(xnode): new error code
* chore: header for _xnode_mgmt_mqtt
* chore: source for _xnode_mgmt_mqtt
* chore: remove test directory from cmake
* chore: remove taosmqtt for ci to compile
* chore: remove taosudf header from xnode
* chore: new window macro
* chore: remove xnode mgmt mqtt for windows compilation
* Revert "chore: remove xnode mgmt mqtt for windows compilation"
This reverts commit 197e1640c7 .
* chore: cleanup code
* chore: xnode mgmt comment windows part out
* chore: mgmt/mqtt, move uv head toppest
* xnode/mnode: create xnode once per dnode
* fix(xnode/systable/test): fix column count
* xnode/sdb: renumber sdb type for xnode to make start/stop order correct
* xnode/mqtt: new param mqttPort
* fix SXnode's struct type
* transfer dnode id to mqtt subscription
* tmqtt: remove uv_a linking
* tmqtt/tools: sources for tools
* tools: fix windows compilation
* tools/producer: fix windows sleep param
* tools/producer: fix uninited var rc
* make tools only for linux
* test/mnodes: wail 1 or 2 seconds for offline to be leader
* update topic producer tool for geometry data type testing
* format tool sql statements
* show xnodes' ep
* make shell auto complete xnodes
* use usleep instead of sleep
* mqtt/proto: first version mqtt protocol
* remove assert styles
* build with linux only
* fix libuv for taosmqtt building
* fix log printing
* mem: use ttq_ prefix instead of tmqtt
* xnode/parser/proto: protocol option for xnode
* xnode/translater/option: translate xnode option proto
* xnode/translator: translate proto param
* xnode/tmsg: encode/decode proto param
* xnode/mnode: proto parma for mndXnode
* xnode/proto: protocol param for xnode
* xnode/mqtt: save/load proto from xnode json
* rename tmqtt proto header
* rename head directories
* rename header name styles
* restyle func names
* update
* update
* use camel db
* use camel for cxt
* update count of information_schema
* fix exceptional cases
* fix w.r.t reviews
* fixes w.r.t reviews
* use ttq_free
* append xnode msgs
* update information schema count
* support tmq meta data sub
* success typo fix
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix error line var w.r.t. suggestions from copilot
* denote mqtt node with bnode instead of xnode
* smoke testing for mqtt
* soak testing
* new package for test framework: paho 2.1.0
* import mqtt into util
* fix soak testing
* test/soak: user 5 topics per client
* test/soak: cover qos
* update docker image references to tdengine-ci:0.1 in CI scripts and common.py
* refactor: rename bnode msg to backup node
* refactor: rename xnode to bnode 1
* refactor: rename xnode to bnode 2
* refactor: rename xnode to bnode 3
* refactor: rename xnode to bnode 4
* refactor: rename xnode to bnode 4
* refactor: rename xnode to bnode 5
* refactor: rename xnode to bnode 6
* refactor: rename some files 1
* refactor: rename some files 2
* refactor: rename some files 3
* refactor: rename some files 4
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: chenhaoran <haoran920c@163.com>
Co-authored-by: Simon Guan <guanshengliang@qq.com>
2025-06-25 14:58:51 +08:00
Simon Guan
76ad364b93
enh: adjust some logs
2025-02-27 09:55:11 +08:00
Simon Guan
b91dd10846
enh: add log level to each log entry
2025-02-27 09:55:11 +08:00
dmchen
9ef4e45171
fix/TS-5532-set-seperate-thrad-update-status-fix-case
2024-10-18 07:51:52 +00:00
dmchen
6fa8557e99
fix/TS-5532-set-seperate-thread-update-status-fix-case
2024-10-18 07:23:25 +00:00
dmchen
f01d166b3c
enh/TD-31977-monitor-qid
2024-09-10 03:40:38 +00:00
xiao77
81615362c3
format
2024-09-03 16:25:40 +08:00
xiao77
d3518fbc89
fix:TD-31587:Repeated insert performance degradation
2024-09-03 15:24:33 +08:00
Yihao Deng
7b09a9f8b1
change log qid
2024-08-27 08:25:28 +00:00
Yihao Deng
e1998d151b
update qid log
2024-08-24 10:19:25 +00:00
yihaoDeng
d3ea7ad6d1
change QID log
2024-08-22 10:08:26 +08:00
dmchen
b85dba328c
fix/TD-30849
2024-08-15 03:55:20 +00:00
Yihao Deng
21de23e14b
refactor error code
2024-07-16 11:00:12 +00:00
Yihao Deng
6c39f81c7b
refactor error
2024-07-16 01:04:16 +00:00
dmchen
3a4412b282
fix/TD-30876
2024-07-05 06:24:53 +00:00
dmchen
a297a38818
fix/TD-29772
2024-05-21 01:57:33 +00:00
kailixu
504263315d
enh: batch create table
2024-04-28 04:37:30 +08:00
dmchen
5f31575624
refactor
2024-04-09 06:55:01 +00:00
dmchen
d6ae4d37cc
add function for sql
2024-03-29 06:19:44 +00:00
dmchen
b9deb71fc5
basic function
2024-03-29 02:48:49 +00:00
Shungang Li
3a656c3595
feat: support 2 replica with arbitrator
2024-03-19 09:30:35 +08:00
chenhaoran
ab07900895
Merge branch '3.0' into feat/TD-26529-3.0
2024-02-23 20:54:19 +08:00
kailixu
c7932675ce
enh: get machine id
2024-02-21 09:07:38 +08:00
dmchen
d9af07de6f
new table structure
2024-01-24 09:44:44 +00:00
dmchen
daa2c2238a
fix/TS-4251
2023-12-12 12:17:49 +08:00
Ping Xiao
4f23ea2a8c
enh: dmodule logic
2023-09-26 11:47:53 +08:00
kailixu
8f828e052b
enh: timeseries calculation optimization
2023-09-22 20:07:51 +08:00
kailixu
6698861c8b
chore: timeseries distribute
2023-09-19 08:29:51 +08:00
yihaoDeng
250fed499f
Merge branch 'enh/ipWhiteList' of https://github.com/taosdata/TDengine into enh/ipWhiteList
2023-09-14 18:49:17 +08:00
Benguang Zhao
e4d16e594c
enh: check if disk space sufficient at primary dir with tfs
2023-08-08 17:53:11 +08:00
dmchen
440a8725e5
fix/TS-3524
2023-06-13 15:07:00 +08:00
cadem
470fef6452
fix/block check to async check for mnode
2023-04-24 13:38:55 +08:00
cadem
3b78d4382b
add learner
2023-04-18 19:03:45 +08:00
Benguang Zhao
c0a835ff58
enh: rotate mnode epSet on sending dnode status failure
2023-03-06 19:36:17 +08:00
yihaoDeng
2e25f7e90d
fix: fix asan problem
2023-02-23 18:07:48 +08:00
yihaoDeng
2013ba0d8f
fix: fix asan problem
2023-02-23 17:54:51 +08:00
Shengliang Guan
d476b6db13
enh: update epset on dnode info changed
2023-01-16 15:41:50 +08:00
Shengliang Guan
da6722d353
enh: update epset on dnode info changed
2023-01-16 13:28:18 +08:00
Shengliang Guan
ad8c73645b
fix: update epset on dnode info changed
2023-01-13 15:26:24 +08:00
Shengliang Guan
cd0404bc25
refact: adjust return value of tmsgUpdateDnodeInfo
2023-01-12 17:08:33 +08:00
Shengliang Guan
c2323db00d
fix: allow the ip resolved by fqdn different between dnodes
2022-12-30 17:04:14 +08:00
Haojun Liao
4fef284cfe
refactor: do some internal refactor.
2022-11-30 21:26:27 +08:00