Skip to content

Commit d704990

Browse files
author
Martin Cox
committed
OTP24 - move away from lager in favour of logger, update rebar3 and CI.
1 parent dd96f6d commit d704990

9 files changed

Lines changed: 62 additions & 46 deletions

File tree

.github/workflows/erlang.yml

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,26 @@
11
name: Erlang CI
22

3-
on: [push]
3+
on:
4+
push:
5+
branches: [ develop ]
6+
pull_request:
7+
branches: [ develop ]
8+
49

510
jobs:
11+
612
build:
13+
714
runs-on: ubuntu-latest
15+
816
container:
9-
image: erlang:20.3.8
17+
image: erlang:24.2.0.0
18+
1019
steps:
11-
- uses: actions/checkout@v1
12-
- name: Compile
13-
run: rebar3 compile
14-
- name: Run tests
15-
run: rebar3 do eunit, ct
20+
- uses: actions/checkout@v2
21+
- name: Compile
22+
run: ./rebar3 compile
23+
- name: Run xref and dialyzer
24+
run: ./rebar3 do xref, dialyzer
25+
- name: Run eunit
26+
run: ./rebar3 eunit

rebar.config

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,14 @@
3131
[
3232
{deps,
3333
[meck,
34-
{cuttlefish, {git, "https://github.com/basho/cuttlefish.git", {branch, "develop-3.0"}}}
34+
{cuttlefish, {git, "https://github.com/kyorai/cuttlefish.git", {tag, "v3.0.1"}}}
3535
]},
3636
{eunit_opts, [verbose]}
3737
]},
3838
{eqc,
3939
[
4040
{deps,
41-
[meck, {faulterl, ".*", {git, "https://github.com/basho/faulterl", {branch, "master"}}}]},
41+
[meck, {faulterl, {git, "https://github.com/basho/faulterl", {branch, "master"}}}]},
4242
{overrides,
4343
[{override, faulterl, [
4444
{plugins, [pc]},

rebar3

103 KB
Binary file not shown.

src/bitcask.erl

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
-export([has_pending_delete_bit/1]). % For EUnit tests
4646

4747
-include_lib("kernel/include/file.hrl").
48+
-include_lib("kernel/include/logger.hrl").
4849
-include("bitcask.hrl").
4950
-include("stacktrace.hrl").
5051

@@ -415,7 +416,7 @@ fold(State, Fun, Acc0, MaxAge, MaxPut, SeeTombstonesP) ->
415416
end,
416417
case {K, (TStamp < ExpiryTime)} of
417418
{{key_tx_error, TxErr}, _} ->
418-
error_logger:error_msg("Error converting key ~p: ~p", [K0, TxErr]),
419+
?LOG_ERROR("Error converting key ~p: ~p", [K0, TxErr]),
419420
Acc;
420421
{_, true} ->
421422
Acc;
@@ -479,7 +480,7 @@ open_fold_files(Dirname, Keydir, Count) ->
479480
maybe_log_missing_file(Dirname, Keydir, ErrFile, enoent) ->
480481
case is_current_file(Dirname, Keydir, ErrFile) of
481482
true ->
482-
error_logger:error_msg("Unexpectedly missing file ~s", [ErrFile]),
483+
?LOG_ERROR("Unexpectedly missing file ~s", [ErrFile]),
483484
FileId = bitcask_fileops:file_tstamp(ErrFile),
484485
%% Forget it to avoid retrying opening it
485486
_ = bitcask_nifs:keydir_trim_fstats(Keydir, [FileId]),
@@ -524,7 +525,7 @@ subfold(SubFun,[FD | Rest],Acc0) ->
524525
Acc1
525526
catch
526527
throw:{fold_error, Error, _PartialAcc} ->
527-
error_logger:error_msg("subfold: skipping file ~s: ~p\n",
528+
?LOG_ERROR("subfold: skipping file ~s: ~p\n",
528529
[FD#filestate.filename, Error]),
529530
Acc0
530531
after
@@ -784,10 +785,10 @@ needs_merge(Ref, Opts) ->
784785
{ok, 0} ->
785786
ok;
786787
{ok, Warn} ->
787-
error_logger:info_msg("Trimmed ~p non-existent fstat entries",
788+
?LOG_INFO("Trimmed ~p non-existent fstat entries",
788789
[Warn]);
789790
Err ->
790-
error_logger:error_msg("Error trimming fstats entries: ~p",
791+
?LOG_ERROR("Error trimming fstats entries: ~p",
791792
[Err])
792793
end,
793794

@@ -843,7 +844,7 @@ explicit_merge_files(Dirname) ->
843844
{error, ReadErr} ->
844845
case filelib:is_regular(MergeListFile) of
845846
true ->
846-
error_logger:error_msg("Invalid merge input file ~s,"
847+
?LOG_ERROR("Invalid merge input file ~s,"
847848
" deleting : ~p",
848849
[MergeListFile, ReadErr]),
849850
_ = file:delete(MergeListFile),
@@ -948,7 +949,7 @@ run_merge_triggers(State, Summary) ->
948949
%% recv this information and decide if they want it
949950
case get_opt(log_needs_merge, State#bc_state.opts) of
950951
true ->
951-
error_logger:info_msg("~p needs_merge: ~p\n",
952+
?LOG_INFO("~p needs_merge: ~p\n",
952953
[State#bc_state.dirname, MergableFiles]);
953954
_ ->
954955
ok
@@ -1195,7 +1196,7 @@ scan_key_files([Filename | Rest], KeyDir, Acc, CloseFile, KT) ->
11951196
K = try KT(K0) catch TxErr -> {key_tx_error, TxErr} end,
11961197
case K of
11971198
{key_tx_error, KeyTxErr} ->
1198-
error_logger:error_msg("Invalid key on load ~p: ~p",
1199+
?LOG_ERROR("Invalid key on load ~p: ~p",
11991200
[K0, KeyTxErr]),
12001201
ok;
12011202
_ ->
@@ -1206,7 +1207,7 @@ scan_key_files([Filename | Rest], KeyDir, Acc, CloseFile, KT) ->
12061207
K = try KT(K0) catch TxErr -> {key_tx_error, TxErr} end,
12071208
case K of
12081209
{key_tx_error, KeyTxErr} ->
1209-
error_logger:error_msg("Invalid key on load ~p: ~p",
1210+
?LOG_ERROR("Invalid key on load ~p: ~p",
12101211
[K0, KeyTxErr]);
12111212
_ ->
12121213
bitcask_nifs:keydir_put(KeyDir,
@@ -1388,7 +1389,7 @@ merge_files(#mstate { dirname = Dirname,
13881389
end,
13891390
case K of
13901391
{key_tx_error, TxErr} ->
1391-
error_logger:error_msg("Invalid key on merge ~p: ~p",
1392+
?LOG_ERROR("Invalid key on merge ~p: ~p",
13921393
[K0, TxErr]),
13931394
State0;
13941395
_ ->
@@ -1400,7 +1401,7 @@ merge_files(#mstate { dirname = Dirname,
14001401
State1#mstate{delete_files = [File|DelFiles]}
14011402
catch
14021403
throw:{fold_error, Error, _PartialAcc} ->
1403-
error_logger:error_msg(
1404+
?LOG_ERROR(
14041405
"merge_files: skipping file ~s in ~s: ~p\n",
14051406
[File#filestate.filename, Dirname, Error]),
14061407
State
@@ -1926,7 +1927,7 @@ purge_setuid_files(Dirname) ->
19261927
if StaleFs == [] ->
19271928
ok;
19281929
true ->
1929-
error_logger:info_msg("Deleted ~p stale merge input "
1930+
?LOG_INFO("Deleted ~p stale merge input "
19301931
"files from ~p\n",
19311932
[length(StaleFs), Dirname])
19321933
end
@@ -1939,7 +1940,7 @@ purge_setuid_files(Dirname) ->
19391940
bitcask_lockops:release(WriteLock)
19401941
end;
19411942
Else ->
1942-
error_logger:info_msg("Lock failed trying deleting stale merge "
1943+
?LOG_INFO("Lock failed trying deleting stale merge "
19431944
"input files from ~p: ~p\n", [Dirname, Else])
19441945
end.
19451946

@@ -1973,7 +1974,7 @@ expiry_merge([File | Files], LiveKeyDir, KT, Acc0) ->
19731974
K = try KT(K0) catch TxErr -> {key_tx_error, TxErr} end,
19741975
case K of
19751976
{key_tx_error, KeyTxErr} ->
1976-
error_logger:error_msg("Invalid key on merge ~p: ~p",
1977+
?LOG_ERROR("Invalid key on merge ~p: ~p",
19771978
[K0, KeyTxErr]);
19781979
_ ->
19791980
bitcask_nifs:keydir_remove(LiveKeyDir, K, Tstamp,
@@ -1983,11 +1984,11 @@ expiry_merge([File | Files], LiveKeyDir, KT, Acc0) ->
19831984
end,
19841985
case bitcask_fileops:fold_keys(File, Fun, ok, default) of
19851986
{error, Reason} ->
1986-
error_logger:error_msg("Error folding keys for ~p: ~p\n",
1987+
?LOG_ERROR("Error folding keys for ~p: ~p\n",
19871988
[File#filestate.filename,Reason]),
19881989
Acc = Acc0;
19891990
_ ->
1990-
error_logger:info_msg("All keys expired in: ~p scheduling "
1991+
?LOG_INFO("All keys expired in: ~p scheduling "
19911992
"file for deletion\n",
19921993
[File#filestate.filename]),
19931994
Acc = lists:append(Acc0, [File])
@@ -2005,7 +2006,7 @@ error_msg_perhaps(_Fmt, _Args) ->
20052006
ok.
20062007
-else. %TEST
20072008
error_msg_perhaps(Fmt, Args) ->
2008-
error_logger:error_msg(Fmt, Args).
2009+
?LOG_ERROR(Fmt, Args).
20092010
-endif. %TEST
20102011

20112012
%% ===================================================================
@@ -2043,7 +2044,7 @@ a0_test2() ->
20432044
code:add_pathz("../ebin"),
20442045
application:start(erlang),
20452046
Mode = bitcask_io:determine_file_module(),
2046-
error_logger:info_msg("Bitcask IO mode is: ~p\n", [Mode]).
2047+
?LOG_INFO("Bitcask IO mode is: ~p\n", [Mode]).
20472048

20482049
roundtrip_test_() ->
20492050
{timeout, 60, fun roundtrip_test2/0}.

src/bitcask_file.erl

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@
4444
-record(state, {fd :: file:fd() | undefined,
4545
owner :: pid() | undefined}).
4646

47+
-include_lib("kernel/include/logger.hrl").
48+
4749
%%%===================================================================
4850
%%% API
4951
%%%===================================================================
@@ -141,15 +143,15 @@ handle_call({file_open, Owner, Filename, Opts}, _From, State) ->
141143
{_, true} ->
142144
[read, write, exclusive, raw, binary]
143145
end,
144-
_ = [error_logger:warning_msg("Bitcask file option '~p' not supported~n", [Opt])
146+
_ = [?LOG_WARNING("Bitcask file option '~p' not supported~n", [Opt])
145147
|| Opt <- [o_sync],
146148
proplists:get_bool(Opt, Opts)],
147149
case file:open(Filename, Mode) of
148150
{ok, Fd} ->
149151
State2 = State#state{fd=Fd, owner=Owner},
150152
{reply, ok, State2};
151153
Error = {error, Reason} ->
152-
error_logger:warning_msg("Failed to open file ~p: ~p~n",
154+
?LOG_WARNING("Failed to open file ~p: ~p~n",
153155
[Filename, Reason]),
154156
{stop, {file_open_failed, Reason}, Error, State}
155157
end;

src/bitcask_fileops.erl

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
-export([read_file_info/1, write_file_info/2, is_file/1]).
4646

4747
-include_lib("kernel/include/file.hrl").
48+
-include_lib("kernel/include/logger.hrl").
4849

4950
-include("bitcask.hrl").
5051

@@ -426,15 +427,15 @@ fold_keys(State, Fun, Acc, recovery, _, true) ->
426427
Acc0;
427428
{error, Reason} ->
428429
HintFile = hintfile_name(State),
429-
error_logger:warning_msg("Hintfile '~s' failed fold: ~p\n",
430+
?LOG_WARNING("Hintfile '~s' failed fold: ~p\n",
430431
[HintFile, Reason]),
431432
fold_keys_loop(State, 0, Fun, Acc);
432433
Acc1 ->
433434
Acc1
434435
end;
435436
fold_keys(State, Fun, Acc, recovery, _, false) ->
436437
HintFile = hintfile_name(State),
437-
error_logger:warning_msg("Hintfile '~s' invalid\n",
438+
?LOG_WARNING("Hintfile '~s' invalid\n",
438439
[HintFile]),
439440
fold_keys_loop(State, 0, Fun, Acc).
440441

@@ -542,7 +543,7 @@ read_crc(Fd) ->
542543
%% ===================================================================
543544

544545
fold_int_loop(_Bytes, _Fun, Acc, _Consumed, {Filename, _, Offset, 20}) ->
545-
error_logger:error_msg("fold_loop: CRC error limit at file ~p offset ~p\n",
546+
?LOG_ERROR("fold_loop: CRC error limit at file ~p offset ~p\n",
546547
[Filename, Offset]),
547548
{done, Acc};
548549
fold_int_loop(<<Crc32:?CRCSIZEFIELD, Tstamp:?TSTAMPFIELD,
@@ -560,7 +561,7 @@ fold_int_loop(<<Crc32:?CRCSIZEFIELD, Tstamp:?TSTAMPFIELD,
560561
{Filename, FTStamp, Offset + TotalSz,
561562
CrcSkipCount});
562563
_ ->
563-
error_logger:error_msg("fold_loop: CRC error at file ~s offset ~p, "
564+
?LOG_ERROR("fold_loop: CRC error at file ~s offset ~p, "
564565
"skipping ~p bytes\n",
565566
[Filename, Offset, TotalSz]),
566567
fold_int_loop(Rest, Fun, Acc0, Consumed0 + TotalSz,
@@ -585,7 +586,7 @@ fold_keys_loop(#filestate{fd=Fd, filename=Filename, tstamp=FTStamp}, Offset,
585586
end.
586587

587588
fold_keys_int_loop(_Bytes, _Fun, Acc, _Consumed, {Filename, _, Offset, 20}) ->
588-
error_logger:error_msg("fold_loop: CRC error limit at file ~p offset ~p\n",
589+
?LOG_ERROR("fold_loop: CRC error limit at file ~p offset ~p\n",
589590
[Filename, Offset]),
590591
{done, Acc};
591592
fold_keys_int_loop(<<Crc32:?CRCSIZEFIELD, Tstamp:?TSTAMPFIELD,
@@ -607,7 +608,7 @@ fold_keys_int_loop(<<Crc32:?CRCSIZEFIELD, Tstamp:?TSTAMPFIELD,
607608
{Filename, FTStamp, Offset + TotalSz,
608609
CrcSkipCount});
609610
_ ->
610-
error_logger:error_msg("fold_loop: CRC error at file ~s offset ~p, "
611+
?LOG_ERROR("fold_loop: CRC error at file ~s offset ~p, "
611612
"skipping ~p bytes\n",
612613
[Filename, Offset, TotalSz]),
613614
fold_keys_int_loop(Rest, Fun, Acc0, Consumed0 + TotalSz,
@@ -664,7 +665,7 @@ fold_hintfile_loop(<<Tstamp:?TSTAMPFIELD, KeySz:?KEYSIZEFIELD,
664665
Consumed = KeySz + ?HINT_RECORD_SZ + Consumed0,
665666
fold_hintfile_loop(Rest, Fun, Acc, Consumed, Args);
666667
false ->
667-
error_logger:warning_msg("Hintfile '~s' contains pointer ~p ~p "
668+
?LOG_WARNING("Hintfile '~s' contains pointer ~p ~p "
668669
"that is greater than total data size ~p\n",
669670
[HintFile, Offset, TotalSz, DataSize]),
670671
{error, {trunc_hintfile, Acc0}}
@@ -865,7 +866,7 @@ get_efile_port() ->
865866
put(Key, Port),
866867
get_efile_port();
867868
Err ->
868-
error_logger:error_msg("get_efile_port: ~p\n", [Err]),
869+
?LOG_ERROR("get_efile_port: ~p\n", [Err]),
869870
timer:sleep(1000),
870871
get_efile_port()
871872
end;

src/bitcask_lockops.erl

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727
read_activefile/2,
2828
write_activefile/2]).
2929

30+
-include_lib("kernel/include/logger.hrl").
31+
3032
-ifdef(PULSE).
3133
-compile({parse_transform, pulse_instrument}).
3234
-include_lib("pulse_otp/include/pulse_otp.hrl").
@@ -147,7 +149,7 @@ delete_stale_lock(Filename) ->
147149
end;
148150

149151
{error, Reason} ->
150-
error_logger:error_msg("Failed to read lock data from ~s: ~p\n",
152+
?LOG_ERROR("Failed to read lock data from ~s: ~p\n",
151153
[Filename, Reason]),
152154
not_stale
153155
end
@@ -163,7 +165,7 @@ delete_stale_lock(Filename) ->
163165

164166
{error, Reason} ->
165167
%% Failed to open the lock for reading due to other errors.
166-
error_logger:error_msg("Failed to open lock file ~s: ~p\n",
168+
?LOG_ERROR("Failed to open lock file ~s: ~p\n",
167169
[Filename, Reason]),
168170
not_stale
169171
end.

src/bitcask_merge_worker.erl

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@
4848
-record(state, { queue :: list(),
4949
worker :: undefined | pid()}).
5050

51+
-include_lib("kernel/include/logger.hrl").
52+
5153
%% ====================================================================
5254
%% API
5355
%% ====================================================================
@@ -142,7 +144,7 @@ handle_info({'EXIT', _Pid, normal}, #state { queue = Q } = State) ->
142144
end;
143145

144146
handle_info({'EXIT', Pid, Reason}, #state { worker = Pid } = State) ->
145-
error_logger:error_msg("Merge worker PID exited: ~p\n", [Reason]),
147+
?LOG_ERROR("Merge worker PID exited: ~p\n", [Reason]),
146148
{stop, State}.
147149

148150
terminate(_Reason, State) ->
@@ -199,10 +201,10 @@ do_merge(Args) ->
199201
[_,_,Args3] = Args,
200202
case Result of
201203
ok ->
202-
error_logger:info_msg("Merged ~p in ~p seconds.\n",
204+
?LOG_INFO("Merged ~p in ~p seconds.\n",
203205
[Args3, ElapsedSecs]);
204206
{Error, Reason} when Error == error; Error == 'EXIT' ->
205-
error_logger:error_msg("Failed to merge ~p: ~p\n",
207+
?LOG_ERROR("Failed to merge ~p: ~p\n",
206208
[Args3, Reason])
207209
end;
208210
false ->
@@ -219,7 +221,7 @@ merge_window() ->
219221
EndHour >= 0, EndHour =< 23 ->
220222
{StartHour, EndHour};
221223
Other ->
222-
error_logger:error_msg("Invalid bitcask_merge window specified: ~p. "
224+
?LOG_ERROR("Invalid bitcask_merge window specified: ~p. "
223225
"Defaulting to 'always'.\n", [Other]),
224226
always
225227
end.

0 commit comments

Comments
 (0)