Merge pull request #11352 from lafirest/fix/ds_crash

fix(ds): avoid crashes when starting on Windows
This commit is contained in:
zhongwencool 2023-07-27 10:05:20 +08:00 committed by GitHub
commit a3a1a0468a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 2 deletions

View File

@ -4,6 +4,8 @@
-module(emqx_ds_app).
-dialyzer({nowarn_function, storage/0}).
-export([start/2]).
-include("emqx_ds_int.hrl").
@ -13,13 +15,22 @@ start(_Type, _Args) ->
emqx_ds_sup:start_link().
init_mnesia() ->
%% FIXME: This is a temporary workaround to avoid crashes when starting on Windows
ok = mria:create_table(
?SESSION_TAB,
[
{rlog_shard, ?DS_SHARD},
{type, set},
{storage, rocksdb_copies},
{storage, storage()},
{record_name, session},
{attributes, record_info(fields, session)}
]
).
storage() ->
case mria:rocksdb_backend_available() of
true ->
rocksdb_copies;
_ ->
disc_copies
end.

View File

@ -2,7 +2,7 @@
{application, emqx_durable_storage, [
{description, "Message persistence and subscription replays for EMQX"},
% strict semver, bump manually!
{vsn, "0.1.1"},
{vsn, "0.1.2"},
{modules, []},
{registered, []},
{applications, [kernel, stdlib, rocksdb, gproc, mria]},

View File

@ -0,0 +1 @@
Fixed this [#11345](https://github.com/emqx/emqx/issues/11345) crash issue when starting on Windows or any other platform without RocksDB support.