Commit Graph

12786 Commits

Author SHA1 Message Date
JimMoen
5151242583
feat(rule-engine): zip, gzip, zip_compress funcs in rule-sql 2022-12-19 15:43:50 +08:00
Andrew Mayorov
e267b3c89e
ci: avoid coverdata filename collisions 2022-12-18 23:12:22 +03:00
Andrew Mayorov
501f0fc8d5
ci: reduce test matrix size
Test emqx profile under OTP-25 only. Build test matrix programmatically
for that purpose.
2022-12-18 23:12:22 +03:00
Andrew Mayorov
f17ebb8796
ci: cut down slim build matrix 2022-12-18 23:12:22 +03:00
Ivan Dyachkov
d245a9909d
Merge pull request #9570 from id/chore-fail-build-if-apple-notarization-failed
chore: fail build if apple notarization failed
2022-12-17 13:47:25 +01:00
Ivan Dyachkov
eaf2a0bdfd chore: fail build if apple notarization failed 2022-12-17 12:00:07 +01:00
Zaiming (Stone) Shi
117740593e
Merge pull request #9567 from JimMoen/bump-dashboard-vsn
feat: bump dashboard vsn
2022-12-16 18:50:09 +01:00
Thales Macedo Garitezi
c0b208dd9e fix(influxdb): check if fields are empty before sending
Related Issue: https://emqx.atlassian.net/browse/EMQX-8461

Currently, the InfluxDB client raises an error if an empty `fields`
map is passed to it for pushing data.

```
  14:03:35.563 [error] [InfluxDB] Encode [
    %{
      fields: %{},
      measurement: "t/topic",
      tags: %{},
      timestamp: 1670864615563
    }
  ] failed: :error :missing_field [
    {:influxdb_line, :encode_fields, 1,
     [
       file: '/home/thales/dev/emqx/emqx/deps/influxdb/src/influxdb_line.erl',
       line: 60
     ]},
    {:influxdb_line, :encode_, 1,
     [
       file: '/home/thales/dev/emqx/emqx/deps/influxdb/src/influxdb_line.erl',
       line: 44
     ]},
    {:influxdb_line, :"-encode_/1-fun-0-", 2,
     [
       file: '/home/thales/dev/emqx/emqx/deps/influxdb/src/influxdb_line.erl',
       line: 38
     ]},
    {:influxdb, :write, 2,
     [file: '/home/thales/dev/emqx/emqx/deps/influxdb/src/influxdb.erl', line: 79]},
    {:emqx_ee_connector_influxdb, :do_query, 3,
     [
       file: '/home/thales/dev/emqx/emqx/lib-ee/emqx_ee_connector/src/emqx_ee_connector_influxdb.erl',
       line: 322
     ]},
    {:emqx_resource_worker, :apply_query_fun, 6,
     [
       file: '/home/thales/dev/emqx/emqx/apps/emqx_resource/src/emqx_resource_worker.erl',
       line: 454
     ]},
    {:emqx_resource_worker, :query_or_acc, 3,
     [
       file: '/home/thales/dev/emqx/emqx/apps/emqx_resource/src/emqx_resource_worker.erl',
       line: 306
     ]},
    {:gen_statem, :loop_state_callback, 11, [file: 'gen_statem.erl', line: 1203]},
    {:proc_lib, :init_p_do_apply, 3, [file: 'proc_lib.erl', line: 226]}
  ]
  2022-12-12T14:03:35.563607-03:00 [error] [InfluxDB] Encode [#{fields => #{},measurement => <<"t/topic">>,tags => #{},timestamp => 1670864615563}] failed: error missing_field [{influxdb_line,encode_fields,1,[{file,"/home/thales/dev/emqx/emqx/deps/influxdb/src/influxdb_line.erl"},{line,60}]},{influxdb_line,encode_,1,[{file,"/home/thales/dev/emqx/emqx/deps/influxdb/src/influxdb_line.erl"},{line,44}]},{influxdb_line,'-encode_/1-fun-0-',2,[{file,"/home/thales/dev/emqx/emqx/deps/influxdb/src/influxdb_line.erl"},{line,38}]},{influxdb,write,2,[{file,"/home/thales/dev/emqx/emqx/deps/influxdb/src/influxdb.erl"},{line,79}]},{emqx_ee_connector_influxdb,do_query,3,[{file,"/home/thales/dev/emqx/emqx/lib-ee/emqx_ee_connector/src/emqx_ee_connector_influxdb.erl"},{line,322}]},{emqx_resource_worker,apply_query_fun,6,[{file,"/home/thales/dev/emqx/emqx/apps/emqx_resource/src/emqx_resource_worker.erl"},{line,454}]},{emqx_resource_worker,query_or_acc,3,[{file,"/home/thales/dev/emqx/emqx/apps/emqx_resource/src/emqx_resource_worker.erl"},{line,306}]},{gen_statem,loop_state_callback,11,[{file,"gen_statem.erl"},{line,1203}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,226}]}]

  14:03:35.565 [error] [connector: "bridge:influxdb_api_v2:aaa", msg: 'influxdb write point failed', reason: :missing_field]
  2022-12-12T14:03:35.565345-03:00 [error] connector: <<"bridge:influxdb_api_v2:aaa">>, line: 335, mfa: emqx_ee_connector_influxdb:do_query/3, msg: influxdb write point failed, reason: missing_field
  []

  14:03:35.565 [error] [id: "bridge:influxdb_api_v2:aaa", msg: :send_error, reason: :missing_field]
  iex(emqx@127.0.0.1)2> 2022-12-12T14:03:35.565913-03:00 [error] id: <<"bridge:influxdb_api_v2:aaa">>, line: 396, mfa: emqx_resource_worker:handle_query_result/4, msg: send_error, reason: missing_field
```

Instead of raising, we check if the interpolation resulted in an empty
map due to lack of context and just fail the push more gracefully.

Related to this, the original issue _appears_ to be related to a
frontend issue (to be confirmed and fixed separately), where the
it is not encoding the field types:
https://emqx.atlassian.net/browse/EMQX-8461?focusedCommentId=24805
2022-12-16 09:52:34 -03:00
Andrew Mayorov
9be8c4e076
ci: pin emqx/erlang-rocksdb to 1.7.2-emqx-7
Which has binaries prebuilt under OTP-25.
2022-12-16 13:45:06 +03:00
Andrew Mayorov
ed2d5aa48a
fix: handle status in format_status/1 callback
Which is expected argument type for this callback. Also try to
make sure that random maps won't pass through this callback unnoticed.
2022-12-16 13:45:06 +03:00
Andrew Mayorov
aece9fb96f
ci: unset compile time vsn in dev profiles
Before this commit source had been compiling with inconsistent
`erl_opts` under test profile with `PROFILE` env set to `emqx`.

```
{compile_info,[{emqx_vsn,"5.0.0-beta.5-g948d4170"}]},
{d,'EMQX_RELEASE_EDITION',ce},
```

Instead stop passing `emqx_vsn` through compile options as is
expected by `emqx_release:version/0`.
2022-12-16 13:45:06 +03:00
Andrew Mayorov
41a4e41d0c
fix(ct): prevent testcase flapping
Testcase `t_log_file` was flapping when run happened to pass through
boundary of a second. Archive files' `ctime`s could differ between
consecutive archive downloads.
2022-12-16 13:45:06 +03:00
Andrew Mayorov
4f00f0968d
ci: update to emqx-plugin-template 5.0.0 2022-12-16 13:45:06 +03:00
Andrew Mayorov
fed7c80a9a
fix(ci): spec function with explicit exception 2022-12-16 13:45:05 +03:00
Andrew Mayorov
30aa7d7a7e
ci: bump elvis version to 1.1.0-emqx-2 2022-12-16 13:45:05 +03:00
Andrew Mayorov
8a0ca38a77
fix: drop no longer supported dialyzer option 2022-12-16 13:45:05 +03:00
Andrew Mayorov
86d3710f17
fix: use proper indentation in Makefile 2022-12-16 13:45:05 +03:00
Andrew Mayorov
51d849f267
fix(release): pass overlay vars with correct option
Even though relx 4.7.0 seems to support passing overlay vars through
`overlay_vars` option, it was designed to hold list of filenames where
vars are defined and works unreliable if used as a proplist.
2022-12-16 13:45:05 +03:00
Andrew Mayorov
9f49b8fd4a
fix: also pin redbug to 2.0.8 in mix.exs 2022-12-16 13:45:04 +03:00
Andrew Mayorov
c301c8e992
chore: drop few unused macros / includes 2022-12-16 13:45:04 +03:00
Andrew Mayorov
a614e3065a
chore(tls): drop OTP-22-related workaround 2022-12-16 13:45:04 +03:00
Andrew Mayorov
2e1cdd039e
ci: include OTP-25 in some workflows
* Use OTP-25 exclusively for Elixir builds
* Include OTP-25 in slim package builds
* Include OTP-25 in test workflow matrices
2022-12-16 13:45:04 +03:00
Andrew Mayorov
202d2b07ff
chore: switch to emqx/rebar3 3.19.0-emqx-1
Which should be safe to run on OTP-25.
2022-12-16 13:45:04 +03:00
Andrew Mayorov
cab063926c
chore: bump redbug to 2.0.8 2022-12-16 13:44:56 +03:00
JimMoen
73692191c8
feat: bump dashboard vsn 2022-12-16 18:14:08 +08:00
Zaiming (Stone) Shi
5b3ad54c1b
Merge pull request #9487 from JimMoen/fix-message-dropped-event-v50
Fix message dropped event v50
2022-12-16 09:04:23 +01:00
Ivan Dyachkov
41249bdfb4
Merge pull request #9559 from sstrigler/EMQX-7982-prep-jmeter-ci-with-tag
ci: use ref to tag rather than raw branch for emqx-fvt in jmeter suite
2022-12-15 17:21:16 +01:00
Stefan Strigler
13b4ee227c ci: use ref to tag rather than raw branch for emqx-fvt in jmeter suite 2022-12-15 10:57:19 +01:00
Zaiming (Stone) Shi
ebd49bec41
Merge pull request #9557 from zmstone/1215-final-sync-of-release-50
1215 final sync of release 50
2022-12-15 10:50:14 +01:00
Zaiming (Stone) Shi
6dc7e010be Merge remote-tracking branch 'origin/master' 2022-12-15 09:48:26 +01:00
Zaiming (Stone) Shi
e961831d86
Merge pull request #9488 from CrazyWisdom/master
docs: update README
2022-12-15 09:29:25 +01:00
JimMoen
a3196f007a
chore: add missed changes 2022-12-15 16:16:27 +08:00
JimMoen
23d5d5329e
test(session): ensure 'message.dropped' hook ran with named reason 2022-12-15 16:16:27 +08:00
JimMoen
b88398c3c6
fix: run message.dropped hook, inc messages.dropped metrics
- when awaiting_rel full
- packet identifier in use (QoS2 packet resend)
2022-12-15 16:16:26 +08:00
Zaiming (Stone) Shi
1dd12e6d3c Merge remote-tracking branch 'origin/release-50' 2022-12-15 09:11:50 +01:00
Zaiming (Stone) Shi
c93568063d
Merge pull request #9550 from emqx/1214-sync-master-upstreams
Merge release-50 back to master
2022-12-15 08:55:52 +01:00
Zaiming (Stone) Shi
b5b7d92aeb build: if uname -m prints arm64, we use arm64 (instead of just arm) 2022-12-14 23:17:41 +01:00
Zaiming (Stone) Shi
f704c4c96b ci: no need to set python2 for yum for el8 2022-12-14 22:50:07 +01:00
Zaiming (Stone) Shi
9e3da5b661 chore: bump app versions 2022-12-14 20:07:41 +01:00
Zaiming (Stone) Shi
56066a03b5 Merge remote-tracking branch 'origin/release-50' into 1214-sync-master-upstreams 2022-12-14 20:04:20 +01:00
Zaiming (Stone) Shi
82db73c3f7 chore: bump version to v5.0.12 2022-12-14 20:02:42 +01:00
Zaiming (Stone) Shi
586b06d8eb docs: update change log, record fix with the right PR 2022-12-14 20:01:17 +01:00
Zaiming (Stone) Shi
74ce4ec606 fix(bin/emqx): typo in bin/emqx usage info 2022-12-14 20:01:17 +01:00
Ivan Dyachkov
3f058d76b6
Merge pull request #9552 from id/chore-fix-distro-detection-for-amzn2
chore: fix distro detection for amazon linux 2
2022-12-14 19:59:27 +01:00
Zaiming (Stone) Shi
3705ff7a9e
Merge pull request #9547 from emqx/1214-upgrade-to-hocon-0.32.0
1214 upgrade to hocon 0.32.0
2022-12-14 19:10:52 +01:00
Ivan Dyachkov
d8b1809cfc chore: fix distro detection for amazon linux 2 2022-12-14 19:09:14 +01:00
Zaiming (Stone) Shi
90326f895e
Merge pull request #9551 from zmstone/1214-remove-unnecessary-test-matrix
ci: no need to run ct with static profile matrix
2022-12-14 18:19:22 +01:00
Zaiming (Stone) Shi
416990bd8f ci: no need to run ct with static profile matrix 2022-12-14 16:42:44 +01:00
Zaiming (Stone) Shi
7137a422df refactor(emqx_authn): make error messages more readable 2022-12-14 15:53:42 +01:00
Zaiming (Stone) Shi
abef881a73 refactor(config): no need to explicitly remove env metadata
after upgraded to honcon 0.32.0, the env meta is removed
by default.
2022-12-14 15:53:42 +01:00