Просмотр исходного кода
refactor: add more trace points to pinpoint error
There's some race condition where data is pushed to a buffer, the second in the history of
the action, then immediately afterwards a 3rd, new buffer is allocated but the 2nd buffer
is never enqueued as a delivery, and later, after a long timeout, only the 3rd, empty
buffer delivery is started.
```
2024-10-16T16:42:22.279746+00:00 [$trace_begin] #{'~meta' => #{},begin_system_time => 1729096942279746}.
/emqx/apps/emqx_resource/src/emqx_resource_manager.erl:640 2024-10-16T16:42:22.288646+00:00 [resource_connected_enter] #{'~meta' => #{node => 'test@127.0.0.1',pid => <0.396873.0>,gl => <0.396499.0>}}.
/emqx/apps/emqx_connector/src/emqx_connector.erl:177 2024-10-16T16:42:22.386853+00:00 [connector_post_config_update_done] #{'~meta' => #{node => 'test@127.0.0.1',pid => <0.396218.0>,gl => <0.396206.0>}}.
/emqx/apps/emqx_connector_jwt/src/emqx_connector_jwt.erl:139 2024-10-16T16:42:22.407142+00:00 [emqx_connector_jwt_token_stored] #{'~meta' => #{node => 'test@127.0.0.1',pid => <0.396873.0>,gl => <0.396499.0>},resource_id => <<"action:snowflake:t_aggreg_upload-576460752303422495:connector:snowflake:t_aggreg_upload-576460752303422495">>}.
/emqx/apps/emqx_bridge/src/emqx_bridge_v2.erl:1172 2024-10-16T16:42:22.770083+00:00 [bridge_post_config_update_done] #{'~meta' => #{node => 'test@127.0.0.1',pid => <0.396218.0>,gl => <0.396206.0>}}.
/emqx/apps/emqx_connector_aggregator/src/emqx_connector_aggregator.erl:285 2024-10-16T16:42:22.901320+00:00 [connector_aggreg_buffer_allocated] #{filename => <<"/emqx/_build/test/logs/ct_run.test@127.0.0.1.2024-10-16_16.42.04/lib.emqx_bridge_snowflake.emqx_bridge_snowflake_SUITE.logs/run.2024-10-16_16.42.05/log_private/emqx_bridge_snowflake_SUITE_data/bridge/snowflake/t_aggreg_upload-576460752303422495/T1729096942_0000">>,'~meta' => #{node => 'test@127.0.0.1',pid => <0.396897.0>,gl => <0.396511.0>},action => {<<"snowflake">>,<<"t_aggreg_upload-576460752303422495">>}}.
/emqx/apps/emqx_connector_aggregator/src/emqx_connector_aggregator.erl:108 2024-10-16T16:42:22.901393+00:00 [connector_aggreg_records_written] #{filename => <<"/emqx/_build/test/logs/ct_run.test@127.0.0.1.2024-10-16_16.42.04/lib.emqx_bridge_snowflake.emqx_bridge_snowflake_SUITE.logs/run.2024-10-16_16.42.05/log_private/emqx_bridge_snowflake_SUITE_data/bridge/snowflake/t_aggreg_upload-576460752303422495/T1729096942_0000">>,seq => 0,'~meta' => #{node => 'test@127.0.0.1',pid => <0.396886.0>,gl => <0.396499.0>,rule_ids => #{},client_ids => #{},rule_trigger_ts => []},action => {<<"snowflake">>,<<"t_aggreg_upload-576460752303422495">>},records => [#{<<"clientid">> => <<"C1">>,<<"payload">> => <<"7B2268656C6C6F223A22776F726C64227D">>,<<"publish_received_at">> => <<"2024-10-16T16:42:22.800+00:00">>,<<"topic">> => <<"sf/a/b/c">>}]}.
/emqx/apps/emqx_rule_engine/src/emqx_rule_runtime.erl:62 2024-10-16T16:42:22.901449+00:00 [rule_engine_applied_all_rules] #{'~meta' => #{node => 'test@127.0.0.1',pid => <0.396857.0>,gl => <0.395897.0>}}.
/emqx/apps/emqx_connector_aggregator/src/emqx_connector_aggregator.erl:108 2024-10-16T16:42:23.003069+00:00 [connector_aggreg_records_written] #{filename => <<"/emqx/_build/test/logs/ct_run.test@127.0.0.1.2024-10-16_16.42.04/lib.emqx_bridge_snowflake.emqx_bridge_snowflake_SUITE.logs/run.2024-10-16_16.42.05/log_private/emqx_bridge_snowflake_SUITE_data/bridge/snowflake/t_aggreg_upload-576460752303422495/T1729096942_0000">>,seq => 0,'~meta' => #{node => 'test@127.0.0.1',pid => <0.396886.0>,gl => <0.396499.0>,rule_ids => #{},client_ids => #{},rule_trigger_ts => []},action => {<<"snowflake">>,<<"t_aggreg_upload-576460752303422495">>},records => [#{<<"clientid">> => <<"C2">>,<<"payload">> => <<"62617A">>,<<"publish_received_at">> => <<"2024-10-16T16:42:22.800+00:00">>,<<"topic">> => <<"sf/foo/bar">>}]}.
/emqx/apps/emqx_rule_engine/src/emqx_rule_runtime.erl:62 2024-10-16T16:42:23.003127+00:00 [rule_engine_applied_all_rules] #{'~meta' => #{node => 'test@127.0.0.1',pid => <0.396857.0>,gl => <0.395897.0>}}.
/emqx/apps/emqx_connector_aggregator/src/emqx_connector_aggregator.erl:108 2024-10-16T16:42:23.104087+00:00 [connector_aggreg_records_written] #{filename => <<"/emqx/_build/test/logs/ct_run.test@127.0.0.1.2024-10-16_16.42.04/lib.emqx_bridge_snowflake.emqx_bridge_snowflake_SUITE.logs/run.2024-10-16_16.42.05/log_private/emqx_bridge_snowflake_SUITE_data/bridge/snowflake/t_aggreg_upload-576460752303422495/T1729096942_0000">>,seq => 0,'~meta' => #{node => 'test@127.0.0.1',pid => <0.396886.0>,gl => <0.396499.0>,rule_ids => #{},client_ids => #{},rule_trigger_ts => []},action => {<<"snowflake">>,<<"t_aggreg_upload-576460752303422495">>},records => [#{<<"clientid">> => <<"C3">>,<<"payload">> => <<>>,<<"publish_received_at">> => <<"2024-10-16T16:42:22.800+00:00">>,<<"topic">> => <<"sf/t/42">>}]}.
/emqx/apps/emqx_rule_engine/src/emqx_rule_runtime.erl:62 2024-10-16T16:42:23.104173+00:00 [rule_engine_applied_all_rules] #{'~meta' => #{node => 'test@127.0.0.1',pid => <0.396857.0>,gl => <0.395897.0>}}.
/emqx/apps/emqx_bridge_snowflake/test/emqx_bridge_snowflake_SUITE.erl:576 2024-10-16T16:42:23.104479+00:00 [published first batch] #{'~meta' => #{node => 'test@127.0.0.1',pid => <0.396857.0>,gl => <0.395897.0>}}.
/emqx/apps/emqx_connector_aggregator/src/emqx_connector_aggregator.erl:285 2024-10-16T16:42:23.104658+00:00 [connector_aggreg_buffer_allocated] #{filename => <<"/emqx/_build/test/logs/ct_run.test@127.0.0.1.2024-10-16_16.42.04/lib.emqx_bridge_snowflake.emqx_bridge_snowflake_SUITE.logs/run.2024-10-16_16.42.05/log_private/emqx_bridge_snowflake_SUITE_data/bridge/snowflake/t_aggreg_upload-576460752303422495/T1729096942_0001">>,'~meta' => #{node => 'test@127.0.0.1',pid => <0.396897.0>,gl => <0.396511.0>},action => {<<"snowflake">>,<<"t_aggreg_upload-576460752303422495">>}}.
/emqx/apps/emqx_connector_aggregator/src/emqx_connector_aggreg_delivery.erl:73 2024-10-16T16:42:23.104866+00:00 [connector_aggreg_delivery_started] #{buffer => {buffer,1729096942,1729096947,0,<<"/emqx/_build/test/logs/ct_run.test@127.0.0.1.2024-10-16_16.42.04/lib.emqx_bridge_snowflake.emqx_bridge_snowflake_SUITE.logs/run.2024-10-16_16.42.05/log_private/emqx_bridge_snowflake_SUITE_data/bridge/snowflake/t_aggreg_upload-576460752303422495/T1729096942_0000">>,undefined,3,{#Ref<0.609744082.2445672450.135056>,{1729096942,0}}},'~meta' => #{node => 'test@127.0.0.1',pid => <0.396912.0>,gl => <0.396511.0>},action => {<<"snowflake">>,<<"t_aggreg_upload-576460752303422495">>}}.
/emqx/apps/emqx_bridge_snowflake/src/emqx_bridge_snowflake_connector.erl:607 2024-10-16T16:42:23.106088+00:00 [snowflake_flush_on_complete] #{'~meta' => #{node => 'test@127.0.0.1',pid => <0.396912.0>,gl => <0.396511.0>}}.
/emqx/apps/emqx_bridge_snowflake/src/emqx_bridge_snowflake_connector.erl:569 2024-10-16T16:42:23.106201+00:00 [snowflake_will_stage_file] #{'~meta' => #{node => 'test@127.0.0.1',pid => <0.396912.0>,gl => <0.396511.0>}}.
/emqx/apps/emqx_bridge_snowflake/src/emqx_bridge_snowflake_connector.erl:418 2024-10-16T16:42:23.106625+00:00 [snowflake_stage_file_succeeded] #{filename => <<"/emqx/_build/test/logs/ct_run.test@127.0.0.1.2024-10-16_16.42.04/lib.emqx_bridge_snowflake.emqx_bridge_snowflake_SUITE.logs/run.2024-10-16_16.42.05/log_private/emqx_bridge_snowflake_SUITE_data/bridge/snowflake/t_aggreg_upload-576460752303422495/tmp/1729096942_0_0.csv">>,pool => <<"connector:snowflake:t_aggreg_upload-576460752303422495">>,result => [#{<<"encryption">> => <<"ENCRYPTED">>,<<"message">> => <<>>,<<"source">> => <<"/emqx/_build/test/logs/ct_run.test@127.0.0.1.2024-10-16_16.42.04/lib.emqx_bridge_snowflake.emqx_bridge_snowflake_SUITE.logs/run.2024-10-16_16.42.05/log_private/emqx_bridge_snowflake_SUITE_data/bridge/snowflake/t_aggreg_upload-576460752303422495/tmp/1729096942_0_0.csv">>,<<"source_compression">> => <<"none">>,<<"source_size">> => <<"5">>,<<"status">> => <<"UPLOADED">>,<<"target">> => <<"/emqx/_build/test/logs/ct_run.test@127.0.0.1.2024-10-16_16.42.04/lib.emqx_bridge_snowflake.emqx_bridge_snowflake_SUITE.logs/run.2024-10-16_16.42.05/log_private/emqx_bridge_snowflake_SUITE_data/bridge/snowflake/t_aggreg_upload-576460752303422495/tmp/1729096942_0_0.csv.gz">>,<<"target_compression">> => <<"gzip">>,<<"target_size">> => <<"32">>}],schema => <<"public">>,'~meta' => #{node => 'test@127.0.0.1',pid => <0.396912.0>,gl => <0.396511.0>},stage => <<"teststage0">>,database => <<"testdatabase">>}.
/emqx/apps/emqx_bridge_snowflake/src/emqx_bridge_snowflake_connector.erl:896 2024-10-16T16:42:23.106746+00:00 [snowflake_stage_insert_files_request] #{'~meta' => #{node => 'test@127.0.0.1',pid => <0.396912.0>,gl => <0.396511.0>},action_res_id => <<"action:snowflake:t_aggreg_upload-576460752303422495:connector:snowflake:t_aggreg_upload-576460752303422495">>,staged_files => [#{size => 213,path => <<"/emqx/_build/test/logs/ct_run.test@127.0.0.1.2024-10-16_16.42.04/lib.emqx_bridge_snowflake.emqx_bridge_snowflake_SUITE.logs/run.2024-10-16_16.42.05/log_private/emqx_bridge_snowflake_SUITE_data/bridge/snowflake/t_aggreg_upload-576460752303422495/tmp/1729096942_0_0.csv.gz">>}]}.
/emqx/apps/emqx_bridge_snowflake/test/emqx_bridge_snowflake_SUITE.erl:225 2024-10-16T16:42:23.106777+00:00 [mock_snowflake_insert_file_request] #{'~meta' => #{node => 'test@127.0.0.1',pid => <0.396912.0>,gl => <0.396511.0>}}.
/emqx/apps/emqx_connector_aggregator/src/emqx_connector_aggreg_delivery.erl:174 2024-10-16T16:42:23.106789+00:00 [connector_aggreg_delivery_completed] #{transfer => #{},'~meta' => #{node => 'test@127.0.0.1',pid => <0.396912.0>,gl => <0.396511.0>},action => {<<"snowflake">>,<<"t_aggreg_upload-576460752303422495">>}}.
/emqx/apps/emqx_bridge_snowflake/test/emqx_bridge_snowflake_SUITE.erl:579 2024-10-16T16:42:23.106916+00:00 [first batch delivered] #{'~meta' => #{node => 'test@127.0.0.1',pid => <0.396857.0>,gl => <0.395897.0>}}.
/emqx/apps/emqx_connector_aggregator/src/emqx_connector_aggregator.erl:108 2024-10-16T16:42:23.208067+00:00 [connector_aggreg_records_written] #{filename => <<"/emqx/_build/test/logs/ct_run.test@127.0.0.1.2024-10-16_16.42.04/lib.emqx_bridge_snowflake.emqx_bridge_snowflake_SUITE.logs/run.2024-10-16_16.42.05/log_private/emqx_bridge_snowflake_SUITE_data/bridge/snowflake/t_aggreg_upload-576460752303422495/T1729096942_0001">>,seq => 1,'~meta' => #{node => 'test@127.0.0.1',pid => <0.396886.0>,gl => <0.396499.0>,rule_ids => #{},client_ids => #{},rule_trigger_ts => []},action => {<<"snowflake">>,<<"t_aggreg_upload-576460752303422495">>},records => [#{<<"clientid">> => <<"C4">>,<<"payload">> => <<"7B2268656C6C6F223A22776F726C64227D">>,<<"publish_received_at">> => <<"2024-10-16T16:42:23.106+00:00">>,<<"topic">> => <<"sf/a/b/c">>}]}.
/emqx/apps/emqx_rule_engine/src/emqx_rule_runtime.erl:62 2024-10-16T16:42:23.208136+00:00 [rule_engine_applied_all_rules] #{'~meta' => #{node => 'test@127.0.0.1',pid => <0.396857.0>,gl => <0.395897.0>}}.
/emqx/apps/emqx_connector_aggregator/src/emqx_connector_aggregator.erl:108 2024-10-16T16:42:23.309027+00:00 [connector_aggreg_records_written] #{filename => <<"/emqx/_build/test/logs/ct_run.test@127.0.0.1.2024-10-16_16.42.04/lib.emqx_bridge_snowflake.emqx_bridge_snowflake_SUITE.logs/run.2024-10-16_16.42.05/log_private/emqx_bridge_snowflake_SUITE_data/bridge/snowflake/t_aggreg_upload-576460752303422495/T1729096942_0001">>,seq => 1,'~meta' => #{node => 'test@127.0.0.1',pid => <0.396886.0>,gl => <0.396499.0>,rule_ids => #{},client_ids => #{},rule_trigger_ts => []},action => {<<"snowflake">>,<<"t_aggreg_upload-576460752303422495">>},records => [#{<<"clientid">> => <<"C5">>,<<"payload">> => <<"62617A">>,<<"publish_received_at">> => <<"2024-10-16T16:42:23.106+00:00">>,<<"topic">> => <<"sf/foo/bar">>}]}.
/emqx/apps/emqx_rule_engine/src/emqx_rule_runtime.erl:62 2024-10-16T16:42:23.309104+00:00 [rule_engine_applied_all_rules] #{'~meta' => #{node => 'test@127.0.0.1',pid => <0.396857.0>,gl => <0.395897.0>}}.
/emqx/apps/emqx_connector_aggregator/src/emqx_connector_aggregator.erl:108 2024-10-16T16:42:23.410090+00:00 [connector_aggreg_records_written] #{filename => <<"/emqx/_build/test/logs/ct_run.test@127.0.0.1.2024-10-16_16.42.04/lib.emqx_bridge_snowflake.emqx_bridge_snowflake_SUITE.logs/run.2024-10-16_16.42.05/log_private/emqx_bridge_snowflake_SUITE_data/bridge/snowflake/t_aggreg_upload-576460752303422495/T1729096942_0001">>,seq => 1,'~meta' => #{node => 'test@127.0.0.1',pid => <0.396886.0>,gl => <0.396499.0>,rule_ids => #{},client_ids => #{},rule_trigger_ts => []},action => {<<"snowflake">>,<<"t_aggreg_upload-576460752303422495">>},records => [#{<<"clientid">> => <<"C6">>,<<"payload">> => <<>>,<<"publish_received_at">> => <<"2024-10-16T16:42:23.106+00:00">>,<<"topic">> => <<"sf/t/42">>}]}.
/emqx/apps/emqx_rule_engine/src/emqx_rule_runtime.erl:62 2024-10-16T16:42:23.410172+00:00 [rule_engine_applied_all_rules] #{'~meta' => #{node => 'test@127.0.0.1',pid => <0.396857.0>,gl => <0.395897.0>}}.
/emqx/apps/emqx_bridge_snowflake/test/emqx_bridge_snowflake_SUITE.erl:590 2024-10-16T16:42:23.410361+00:00 [published second batch] #{'~meta' => #{node => 'test@127.0.0.1',pid => <0.396857.0>,gl => <0.395897.0>}}.
/emqx/apps/emqx_connector_aggregator/src/emqx_connector_aggregator.erl:285 2024-10-16T16:42:23.410727+00:00 [connector_aggreg_buffer_allocated] #{filename => <<"/emqx/_build/test/logs/ct_run.test@127.0.0.1.2024-10-16_16.42.04/lib.emqx_bridge_snowflake.emqx_bridge_snowflake_SUITE.logs/run.2024-10-16_16.42.05/log_private/emqx_bridge_snowflake_SUITE_data/bridge/snowflake/t_aggreg_upload-576460752303422495/T1729096942_0002">>,'~meta' => #{node => 'test@127.0.0.1',pid => <0.396897.0>,gl => <0.396511.0>},action => {<<"snowflake">>,<<"t_aggreg_upload-576460752303422495">>}}.
/emqx/apps/emqx_connector_aggregator/src/emqx_connector_aggreg_delivery.erl:73 2024-10-16T16:42:27.414506+00:00 [connector_aggreg_delivery_started] #{buffer => {buffer,1729096942,1729096947,2,<<"/emqx/_build/test/logs/ct_run.test@127.0.0.1.2024-10-16_16.42.04/lib.emqx_bridge_snowflake.emqx_bridge_snowflake_SUITE.logs/run.2024-10-16_16.42.05/log_private/emqx_bridge_snowflake_SUITE_data/bridge/snowflake/t_aggreg_upload-576460752303422495/T1729096942_0002">>,undefined,3,{#Ref<0.609744082.2445672450.135056>,{1729096942,2}}},'~meta' => #{node => 'test@127.0.0.1',pid => <0.396959.0>,gl => <0.396511.0>},action => {<<"snowflake">>,<<"t_aggreg_upload-576460752303422495">>}}.
/emqx/apps/emqx_connector_aggregator/src/emqx_connector_aggreg_delivery.erl:165 2024-10-16T16:42:27.414741+00:00 [connector_aggreg_delivery_completed] #{transfer => empty,'~meta' => #{node => 'test@127.0.0.1',pid => <0.396959.0>,gl => <0.396511.0>},action => {<<"snowflake">>,<<"t_aggreg_upload-576460752303422495">>}}.
/emqx/apps/emqx_bridge_snowflake/test/emqx_bridge_snowflake_SUITE.erl:594 2024-10-16T16:42:27.414909+00:00 [second batch delivered] #{'~meta' => #{node => 'test@127.0.0.1',pid => <0.396857.0>,gl => <0.395897.0>}}.
/emqx/apps/emqx_dashboard/src/emqx_dashboard_monitor.erl:189 2024-10-16T16:42:30.001933+00:00 [dashboard_monitor_flushed] #{'~meta' => #{node => 'test@127.0.0.1',pid => <0.396645.0>,gl => <0.396616.0>}}.
/emqx/apps/emqx_dashboard/src/emqx_dashboard_monitor.erl:189 2024-10-16T16:42:40.001905+00:00 [dashboard_monitor_flushed] #{'~meta' => #{node => 'test@127.0.0.1',pid => <0.396645.0>,gl => <0.396616.0>}}.
2024-10-16T16:42:41.115005+00:00 [$trace_end] #{'~meta' => #{}}.
```