emqtt crash per day

Environment

OS: ubuntu 14.04
Erlang/OTP:
EMQ: 2.3

Description
A description of the issue
crash.log

root@iZ11dbuxeb8Z:/usr/emqttd/log# cat crash.log
2017-10-19 08:30:55 =ERROR REPORT====
** Generic server <0.17382.0> terminating
** Last message in was {inet_async,#Port<0.7932>,47291,{ok,<<58,252,3,0,33,84,69,76,76,72,79,87,47,84,72,45,83,49,48,48,76,47,70,48,70,69,54,66,51,50,48,48,57,66,47,67,79,86,0,3,123,34,118,101,114,34,58,34,49,46,48,34,44,34,116,112,34,58,50,44,34,105,100,34,58,34,70,48,70,69,54,66,51,50,48,48,57,66,34,44,34,115,110,34,58,51,44,34,115,116,34,58,53,57,54,44,34,100,97,116,97,34,58,91,123,34,107,34,58,53,49,44,34,109,34,58,34,80,77,50,53,34,44,34,112,34,58,51,44,34,118,34,58,34,55,50,34,125,44,123,34,107,34,58,53,50,44,34,109,34,58,34,80,77,49,48,34,44,34,112,34,58,51,44,34,118,34,58,34,55,50,34,125,44,123,34,107,34,58,53,51,44,34,109,34,58,34,84,72,34,44,34,112,34,58,50,44,34,118,34,58,34,50,55,34,125,44,123,34,107,34,58,53,52,44,34,109,34,58,34,82,72,34,44,34,112,34,58,51,44,34,118,34,58,34,51,53,34,125,44,123,34,107,34,58,53,53,44,34,109,34,58,34,67,79,50,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,53,54,44,34,109,34,58,34,84,86,79,67,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,53,55,44,34,109,34,58,34,72,67,72,79,34,44,34,112,34,58,50,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,53,56,44,34,109,34,58,34,110,111,105,115,101,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,53,57,44,34,109,34,58,34,76,105,103,104,116,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,54,48,44,34,109,34,58,34,69,108,101,99,116,114,105,99,105,116,121,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,54,49,44,34,109,34,58,34,67,79,77,77,83,84,65,84,85,83,34,44,34,112,34,58,49,44,34,118,34,58,34,48,34,125,93,125>>}}
** When Server state == {client_state,{esockd_connection,[#Port<0.7932>,#Fun<esockd_transport.2.110630692>,[]]},{{111,203,16,82},45616},running,true,undefined,65536,#Fun<emqttd_parser.3.27949395>,{proto_state,{{111,203,16,82},45616},#Fun<emqttd_client.0.11103166>,true,<<"TELLHOW/TH-S100L/F0FE6B32009B">>,<0.17382.0>,true,4,<<"MQTT">>,<<"wifi">>,false,undefined,120,2.0,1024,<0.17383.0>,{proto_stats,false,0,0,0,0},undefined,undefined,{1508,372991,41507}},{keepalive,#Fun<emqttd_client.17.11103166>,59,240,{keepalive,check},#Ref<0.2401029848.850132994.170419>,0},false,30000,176}
** Reason for termination ==
** {function_clause,[{emqttd_topic,validate3,[<<252,3,0,33,84,69,76,76,72,79,87>>],[{file,"src/emqttd_topic.erl"},{line,110}]},{emqttd_topic,validate2,1,[{file,"src/emqttd_topic.erl"},{line,108}]},{emqttd_topic,validate,1,[{file,"src/emqttd_topic.erl"},{line,95}]},{emqttd_protocol,validate_packet,1,[{file,"src/emqttd_protocol.erl"},{line,466}]},{emqttd_protocol,received,2,[{file,"src/emqttd_protocol.erl"},{line,142}]},{emqttd_client,received,2,[{file,"src/emqttd_client.erl"},{line,315}]},{gen_server2,handle_msg,2,[{file,"src/gen_server2.erl"},{line,1046}]},{proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,257}]}]}
2017-10-19 08:30:55 =CRASH REPORT====
crasher:
initial call: emqttd_client:init/1
pid: <0.17382.0>
registered_name: []
exception exit: {{function_clause,[{emqttd_topic,validate3,[<<252,3,0,33,84,69,76,76,72,79,87>>],[{file,"src/emqttd_topic.erl"},{line,110}]},{emqttd_topic,validate2,1,[{file,"src/emqttd_topic.erl"},{line,108}]},{emqttd_topic,validate,1,[{file,"src/emqttd_topic.erl"},{line,95}]},{emqttd_protocol,validate_packet,1,[{file,"src/emqttd_protocol.erl"},{line,466}]},{emqttd_protocol,received,2,[{file,"src/emqttd_protocol.erl"},{line,142}]},{emqttd_client,received,2,[{file,"src/emqttd_client.erl"},{line,315}]},{gen_server2,handle_msg,2,[{file,"src/gen_server2.erl"},{line,1046}]},{proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,257}]}]},[{gen_server2,terminate,3,[{file,"src/gen_server2.erl"},{line,1157}]},{proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,257}]}]}
ancestors: [<0.1447.0>,<0.1446.0>,esockd_sup,<0.1214.0>]
message_queue_len: 1
messages: [{inet_async,#Port<0.7932>,47337,{error,closed}}]
links: [<0.1447.0>,<0.17383.0>]
dictionary: [{rand_seed,{#{jump => #Fun<rand.16.15449617>,max =><PHONE_NUMBER>51711743,next => #Fun<rand.15.15449617>,type => exsplus},[192050041984534352|282725202228432969]}},{{acl,publish,<<"TELLHOW/TH-S100L/F0FE6B32009B/COV">>},allow},{guid,{1508373055754026,121487444952038,6}}]
trap_exit: false
status: running
heap_size: 1598
stack_size: 27
reductions: 6338
neighbours:
2017-10-19 08:30:55 =SUPERVISOR REPORT====
Supervisor: 'esockd_connection_sup - <0.1447.0>'
Context:    connection_crashed
Reason:     {function_clause,[{emqttd_topic,validate3,[<<252,3,0,33,84,69,76,76,72,79,87>>],[{file,"src/emqttd_topic.erl"},{line,110}]},{emqttd_topic,validate2,1,[{file,"src/emqttd_topic.erl"},{line,108}]},{emqttd_topic,validate,1,[{file,"src/emqttd_topic.erl"},{line,95}]},{emqttd_protocol,validate_packet,1,[{file,"src/emqttd_protocol.erl"},{line,466}]},{emqttd_protocol,received,2,[{file,"src/emqttd_protocol.erl"},{line,142}]},{emqttd_client,received,2,[{file,"src/emqttd_client.erl"},{line,315}]},{gen_server2,handle_msg,2,[{file,"src/gen_server2.erl"},{line,1046}]},{proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,257}]}]}
Offender:   [{pid,<0.17382.0>},{name,connection},{mfargs,{emqttd_client,start_link,[[{max_publish_rate,0},{client_idle_timeout,30000},{client_enable_stats,false},{max_clientid_len,1024},{max_packet_size,65536},{keepalive_backoff,2.0}]]}}]

2017-10-19 09:37:44 =ERROR REPORT====
** Generic server <0.18152.0> terminating
** Last message in was {inet_async,#Port<0.8198>,48244,{ok,<<101,99,116,114,105,99,105,116,121,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,54,49,44,34,109,34,58,34,67,79,77,77,83,84,65,84,85,83,34,44,34,112,34,58,49,44,34,118,34,58,34,48,34,125,93,125,58,251,3,0,33,84,69,76,50,252,3,0,33,84,69,76,76,72,79,87,47,84,72,45,83,49,48,48,76,47,70,48,70,69,54,66,51,50,48,48,57,66,47,67,79,86,0,3,123,34,118,101,114,34,58,34,49,46,48,34,44,34,116,112,34,58,50,44,34,105,100,34,58,34,70,48,70,69,54,66,51,50,48,48,57,66,34,44,34,115,110,34,58,51,44,34,115,116,34,58,49,51,53,44,34,100,97,116,97,34,58,91,123,34,107,34,58,53,49,44,34,109,34,58,34,80,77,50,53,34,44,34,112,34,58,51,44,34,118,34,58,34,55,52,34,125,44,123,34,107,34,58,53,50,44,34,109,34,58,34,80,77,49,48,34,44,34,112,34,58,51,44,34,118,34,58,34,55,53,34,125,44,123,34,107,34,58,53,51,44,34,109,34,58,34,84,72,34,44,34,112,34,58,50,44,34,118,34,58,34,50,56,34,125,44,123,34,107,34,58,53,52,44,34,109,34,58,34,82,72,34,44,34,112,34,58,51,44,34,118,34,58,34,51,51,34,125,44,123,34,107,34,58,53,53,44,34,109,34,58,34,67,79,50,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,53,54,44,34,109,34,58,34,84,86,79,67,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,53,55,44,34,109,34,58,34,72,67,72,79,34,44,34,112,34,58,50,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,53,56,44,34,109,34,58,34,110,111,105,115,101,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,53,57,44,34,109,34,58,34,76,105,103,104,116,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,54,48,44,34,109,34,58,34,69,108,101,99,116,114,105,99,105,116,121,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,54,49,44,34,109,34,58,34,67,79,77,77,83,84,65,84,85,83,34,44,34,112,34,58,49,44,34,118,34,58,34,48,34,125,93>>}}
** When Server state == {client_state,{esockd_connection,[#Port<0.8198>,#Fun<esockd_transport.2.110630692>,[]]},{{111,203,16,82},48814},running,true,undefined,65536,#Fun<emqttd_parser.3.27949395>,{proto_state,{{111,203,16,82},48814},#Fun<emqttd_client.0.11103166>,true,<<"TELLHOW/TH-S100L/F0FE6B32009B">>,<0.18152.0>,true,4,<<"MQTT">>,<<"wifi">>,false,undefined,120,2.0,1024,<0.18155.0>,{proto_stats,false,0,0,0,0},undefined,undefined,{1508,377000,732069}},{keepalive,#Fun<emqttd_client.17.11103166>,59,240,{keepalive,check},#Ref<0.2401029848.872677377.113775>,0},false,30000,137}
** Reason for termination ==
** {function_clause,[{emqttd_topic,validate3,[<<252,3,0,33,84,69,76,76,72,79,87>>],[{file,"src/emqttd_topic.erl"},{line,110}]},{emqttd_topic,validate2,1,[{file,"src/emqttd_topic.erl"},{line,108}]},{emqttd_topic,validate,1,[{file,"src/emqttd_topic.erl"},{line,95}]},{emqttd_protocol,validate_packet,1,[{file,"src/emqttd_protocol.erl"},{line,466}]},{emqttd_protocol,received,2,[{file,"src/emqttd_protocol.erl"},{line,142}]},{emqttd_client,received,2,[{file,"src/emqttd_client.erl"},{line,315}]},{gen_server2,handle_msg,2,[{file,"src/gen_server2.erl"},{line,1046}]},{proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,257}]}]}
2017-10-19 09:37:44 =CRASH REPORT====
crasher:
initial call: emqttd_client:init/1
pid: <0.18152.0>
registered_name: []
exception exit: {{function_clause,[{emqttd_topic,validate3,[<<252,3,0,33,84,69,76,76,72,79,87>>],[{file,"src/emqttd_topic.erl"},{line,110}]},{emqttd_topic,validate2,1,[{file,"src/emqttd_topic.erl"},{line,108}]},{emqttd_topic,validate,1,[{file,"src/emqttd_topic.erl"},{line,95}]},{emqttd_protocol,validate_packet,1,[{file,"src/emqttd_protocol.erl"},{line,466}]},{emqttd_protocol,received,2,[{file,"src/emqttd_protocol.erl"},{line,142}]},{emqttd_client,received,2,[{file,"src/emqttd_client.erl"},{line,315}]},{gen_server2,handle_msg,2,[{file,"src/gen_server2.erl"},{line,1046}]},{proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,257}]}]},[{gen_server2,terminate,3,[{file,"src/gen_server2.erl"},{line,1157}]},{proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,257}]}]}
ancestors: [<0.1447.0>,<0.1446.0>,esockd_sup,<0.1214.0>]
message_queue_len: 2
messages: [{inet_reply,#Port<0.8198>,ok},{inet_async,#Port<0.8198>,51736,{error,closed}}]
links: [<0.1447.0>,<0.18155.0>]
dictionary: [{rand_seed,{#{jump => #Fun<rand.16.15449617>,max =><PHONE_NUMBER>51711743,next => #Fun<rand.15.15449617>,type => exsplus},[79119468735751722|270939225314614458]}},{{acl,publish,<<"TELLHOW/TH-S100L/F0FE6B32009B/COV">>},allow},{guid,{1508377064988774,121487444952808,5}}]
trap_exit: false
status: running
heap_size: 1598
stack_size: 27
reductions: 5656
neighbours:
2017-10-19 09:37:44 =SUPERVISOR REPORT====
Supervisor: 'esockd_connection_sup - <0.1447.0>'
Context:    connection_crashed
Reason:     {function_clause,[{emqttd_topic,validate3,[<<252,3,0,33,84,69,76,76,72,79,87>>],[{file,"src/emqttd_topic.erl"},{line,110}]},{emqttd_topic,validate2,1,[{file,"src/emqttd_topic.erl"},{line,108}]},{emqttd_topic,validate,1,[{file,"src/emqttd_topic.erl"},{line,95}]},{emqttd_protocol,validate_packet,1,[{file,"src/emqttd_protocol.erl"},{line,466}]},{emqttd_protocol,received,2,[{file,"src/emqttd_protocol.erl"},{line,142}]},{emqttd_client,received,2,[{file,"src/emqttd_client.erl"},{line,315}]},{gen_server2,handle_msg,2,[{file,"src/gen_server2.erl"},{line,1046}]},{proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,257}]}]}
Offender:   [{pid,<0.18152.0>},{name,connection},{mfargs,{emqttd_client,start_link,[[{max_publish_rate,0},{client_idle_timeout,30000},{client_enable_stats,false},{max_clientid_len,1024},{max_packet_size,65536},{keepalive_backoff,2.0}]]}}]
2017-10-19 10:18:12 =ERROR REPORT====
** Generic server <0.18503.0> terminating
** Last message in was {inet_async,#Port<0.8332>,36606,{ok,<<50,252,3,0,33,84,69,76,76,72,79,87,47,84,72,45,83,49,48,48,76,47,70,48,70,69,54,66,51,50,48,48,57,66,47,67,79,86,0,3,123,34,118,101,114,34,58,34,49,46,48,34,44,34,116,112,34,58,50,44,34,105,100,34,58,34,70,48,70,69,54,66,51,50,48,48,57,66,34,44,34,115,110,34,58,51,44,34,115,116,34,58,55,55,53,44,34,100,97,116,97,34,58,91,123,34,107,34,58,53,49,44,34,109,34,58,34,80,77,50,53,34,44,34,112,34,58,51,44,34,118,34,58,34,54,49,34,125,44,123,34,107,34,58,53,50,44,34,109,34,58,34,80,77,49,48,34,44,34,112,34,58,51,44,34,118,34,58,34,54,52,34,125,44,123,34,107,34,58,53,51,44,34,109,34,58,34,84,72,34,44,34,112,34,58,50,44,34,118,34,58,34,50,55,34,125,44,123,34,107,34,58,53,52,44,34,109,34,58,34,82,72,34,44,34,112,34,58,51,44,34,118,34,58,34,51,53,34,125,44,123,34,107,34,58,53,53,44,34,109,34,58,34,67,79,50,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,53,54,44,34,109,34,58,34,84,86,79,67,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,53,55,44,34,109,34,58,34,72,67,72,79,34,44,34,112,34,58,50,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,53,56,44,34,109,34,58,34,110,111,105,115,101,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,53,57,44,34,109,34,58,34,76,105,103,104,116,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,54,48,44,34,109,34,58,34,69,108,101,99,116,114,105,99,105,116,121,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,54,49,44,34,109,34,58,34,67,79,77,77,83,84,65,84,85,83,34,44,34,112,34,58,49,44,34,118,34,58,34,48,34,125,93,125>>}}
** When Server state == {client_state,{esockd_connection,[#Port<0.8332>,#Fun<esockd_transport.2.110630692>,[]]},{{111,203,16,82},59291},running,true,undefined,65536,#Fun<emqttd_parser.3.27949395>,{proto_state,{{111,203,16,82},59291},#Fun<emqttd_client.0.11103166>,true,<<"TELLHOW/TH-S100L/F0FE6B32009B">>,<0.18503.0>,true,4,<<"MQTT">>,<<"wifi">>,false,undefined,120,2.0,1024,<0.18504.0>,{proto_stats,false,0,0,0,0},undefined,undefined,{1508,379418,47122}},{keepalive,#Fun<emqttd_client.17.11103166>,59,240,{keepalive,check},#Ref<0.2401029848.853803010.217702>,0},false,30000,102}
** Reason for termination ==
** {function_clause,[{emqttd_topic,validate3,[<<252,3,0,33,84,69,76,76,72,79,87>>],[{file,"src/emqttd_topic.erl"},{line,110}]},{emqttd_topic,validate2,1,[{file,"src/emqttd_topic.erl"},{line,108}]},{emqttd_topic,validate,1,[{file,"src/emqttd_topic.erl"},{line,95}]},{emqttd_protocol,validate_packet,1,[{file,"src/emqttd_protocol.erl"},{line,466}]},{emqttd_protocol,received,2,[{file,"src/emqttd_protocol.erl"},{line,142}]},{emqttd_client,received,2,[{file,"src/emqttd_client.erl"},{line,315}]},{gen_server2,handle_msg,2,[{file,"src/gen_server2.erl"},{line,1046}]},{proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,257}]}]}
2017-10-19 10:18:12 =CRASH REPORT====
crasher:
initial call: emqttd_client:init/1
pid: <0.18503.0>
registered_name: []
exception exit: {{function_clause,[{emqttd_topic,validate3,[<<252,3,0,33,84,69,76,76,72,79,87>>],[{file,"src/emqttd_topic.erl"},{line,110}]},{emqttd_topic,validate2,1,[{file,"src/emqttd_topic.erl"},{line,108}]},{emqttd_topic,validate,1,[{file,"src/emqttd_topic.erl"},{line,95}]},{emqttd_protocol,validate_packet,1,[{file,"src/emqttd_protocol.erl"},{line,466}]},{emqttd_protocol,received,2,[{file,"src/emqttd_protocol.erl"},{line,142}]},{emqttd_client,received,2,[{file,"src/emqttd_client.erl"},{line,315}]},{gen_server2,handle_msg,2,[{file,"src/gen_server2.erl"},{line,1046}]},{proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,257}]}]},[{gen_server2,terminate,3,[{file,"src/gen_server2.erl"},{line,1157}]},{proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,257}]}]}
ancestors: [<0.1447.0>,<0.1446.0>,esockd_sup,<0.1214.0>]
message_queue_len: 1
messages: [{inet_async,#Port<0.8332>,40393,{error,closed}}]
links: [<0.1447.0>,<0.18504.0>]
dictionary: [{rand_seed,{#{jump => #Fun<rand.16.15449617>,max =><PHONE_NUMBER>51711743,next => #Fun<rand.15.15449617>,type => exsplus},[3875733138483684|269568229710509817]}},{{acl,publish,<<"TELLHOW/TH-S100L/F0FE6B32009B/COV">>},allow},{guid,{1508379492532916,121487444953159,5}}]
trap_exit: false
status: running
heap_size: 1598
stack_size: 27
reductions: 5875
neighbours:
2017-10-19 10:18:12 =SUPERVISOR REPORT====
Supervisor: 'esockd_connection_sup - <0.1447.0>'
Context:    connection_crashed
Reason:     {function_clause,[{emqttd_topic,validate3,[<<252,3,0,33,84,69,76,76,72,79,87>>],[{file,"src/emqttd_topic.erl"},{line,110}]},{emqttd_topic,validate2,1,[{file,"src/emqttd_topic.erl"},{line,108}]},{emqttd_topic,validate,1,[{file,"src/emqttd_topic.erl"},{line,95}]},{emqttd_protocol,validate_packet,1,[{file,"src/emqttd_protocol.erl"},{line,466}]},{emqttd_protocol,received,2,[{file,"src/emqttd_protocol.erl"},{line,142}]},{emqttd_client,received,2,[{file,"src/emqttd_client.erl"},{line,315}]},{gen_server2,handle_msg,2,[{file,"src/gen_server2.erl"},{line,1046}]},{proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,257}]}]}
Offender:   [{pid,<0.18503.0>},{name,connection},{mfargs,{emqttd_client,start_link,[[{max_publish_rate,0},{client_idle_timeout,30000},{client_enable_stats,false},{max_clientid_len,1024},{max_packet_size,65536},{keepalive_backoff,2.0}]]}}]
2017-10-19 14:43:58 =ERROR REPORT====
** Generic server <0.1819.0> terminating
** Last message in was {inet_async,#Port<0.2528>,32877,{ok,<<50,252,3,0,33,84,69,76,76,72,79,87,47,84,72,45,83,49,48,48,76,47,70,48,70,69,54,66,51,50,48,48,57,66,47,67,79,86,0,7,123,34,118,101,114,34,58,34,49,46,48,34,44,34,116,112,34,58,50,44,34,105,100,34,58,34,70,48,70,69,54,66,51,50,48,48,57,66,34,44,34,115,110,34,58,55,44,34,115,116,34,58,50,56,56,44,34,100,97,116,97,34,58,91,123,34,107,34,58,53,49,44,34,109,34,58,34,80,77,50,53,34,44,34,112,34,58,51,44,34,118,34,58,34,54,55,34,125,44,123,34,107,34,58,53,50,44,34,109,34,58,34,80,77,49,48,34,44,34,112,34,58,51,44,34,118,34,58,34,54,55,34,125,44,123,34,107,34,58,53,51,44,34,109,34,58,34,84,72,34,44,34,112,34,58,50,44,34,118,34,58,34,50,56,34,125,44,123,34,107,34,58,53,52,44,34,109,34,58,34,82,72,34,44,34,112,34,58,51,44,34,118,34,58,34,51,48,34,125,44,123,34,107,34,58,53,53,44,34,109,34,58,34,67,79,50,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,53,54,44,34,109,34,58,34,84,86,79,67,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,53,55,44,34,109,34,58,34,72,67,72,79,34,44,34,112,34,58,50,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,53,56,44,34,109,34,58,34,110,111,105,115,101,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,53,57,44,34,109,34,58,34,76,105,103,104,116,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,54,48,44,34,109,34,58,34,69,108,101,99,116,114,105,99,105,116,121,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,54,49,44,34,109,34,58,34,67,79,77,77,83,84,65,84,85,83,34,44,34,112,34,58,49,44,34,118,34,58,34,48,34,125,93,125>>}}
** When Server state == {client_state,{esockd_connection,[#Port<0.2528>,#Fun<esockd_transport.2.110630692>,[]]},{{111,203,16,82},59298},running,true,undefined,65536,#Fun<emqttd_parser.3.27949395>,{proto_state,{{111,203,16,82},59298},#Fun<emqttd_client.0.11103166>,true,<<"TELLHOW/TH-S100L/F0FE6B32009B">>,<0.1819.0>,true,4,<<"MQTT">>,<<"wifi">>,false,undefined,120,2.0,1024,<0.1820.0>,{proto_stats,false,0,0,0,0},undefined,undefined,{1508,395322,348594}},{keepalive,#Fun<emqttd_client.17.11103166>,59,240,{keepalive,check},#Ref<0.1625624059.2797076482.9366>,0},false,30000,109}
** Reason for termination ==
** {function_clause,[{emqttd_topic,validate3,[<<252,3,0,33,84,69,76,76,72,79,87>>],[{file,"src/emqttd_topic.erl"},{line,110}]},{emqttd_topic,validate2,1,[{file,"src/emqttd_topic.erl"},{line,108}]},{emqttd_topic,validate,1,[{file,"src/emqttd_topic.erl"},{line,95}]},{emqttd_protocol,validate_packet,1,[{file,"src/emqttd_protocol.erl"},{line,466}]},{emqttd_protocol,received,2,[{file,"src/emqttd_protocol.erl"},{line,142}]},{emqttd_client,received,2,[{file,"src/emqttd_client.erl"},{line,315}]},{gen_server2,handle_msg,2,[{file,"src/gen_server2.erl"},{line,1046}]},{proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,257}]}]}
2017-10-19 14:43:58 =CRASH REPORT====
crasher:
initial call: emqttd_client:init/1
pid: <0.1819.0>
registered_name: []
exception exit: {{function_clause,[{emqttd_topic,validate3,[<<252,3,0,33,84,69,76,76,72,79,87>>],[{file,"src/emqttd_topic.erl"},{line,110}]},{emqttd_topic,validate2,1,[{file,"src/emqttd_topic.erl"},{line,108}]},{emqttd_topic,validate,1,[{file,"src/emqttd_topic.erl"},{line,95}]},{emqttd_protocol,validate_packet,1,[{file,"src/emqttd_protocol.erl"},{line,466}]},{emqttd_protocol,received,2,[{file,"src/emqttd_protocol.erl"},{line,142}]},{emqttd_client,received,2,[{file,"src/emqttd_client.erl"},{line,315}]},{gen_server2,handle_msg,2,[{file,"src/gen_server2.erl"},{line,1046}]},{proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,257}]}]},[{gen_server2,terminate,3,[{file,"src/gen_server2.erl"},{line,1157}]},{proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,257}]}]}
ancestors: [<0.1447.0>,<0.1446.0>,esockd_sup,<0.1215.0>]
message_queue_len: 1
messages: [{inet_async,#Port<0.2528>,37256,{error,closed}}]
links: [<0.1447.0>,<0.1820.0>]
dictionary: [{rand_seed,{#{jump => #Fun<rand.16.15449617>,max =><PHONE_NUMBER>51711743,next => #Fun<rand.15.15449617>,type => exsplus},[170454617788970934|21181166942453274]}},{guid,{1508395438542313,121487444936475,10}},{{acl,publish,<<"TELLHOW/TH-S100L/F0FE6B32009B/COV">>},allow}]
trap_exit: false
status: running
heap_size: 1598
stack_size: 27
reductions: 9182
neighbours:
2017-10-19 14:43:58 =SUPERVISOR REPORT====
Supervisor: 'esockd_connection_sup - <0.1447.0>'
Context:    connection_crashed
Reason:     {function_clause,[{emqttd_topic,validate3,[<<252,3,0,33,84,69,76,76,72,79,87>>],[{file,"src/emqttd_topic.erl"},{line,110}]},{emqttd_topic,validate2,1,[{file,"src/emqttd_topic.erl"},{line,108}]},{emqttd_topic,validate,1,[{file,"src/emqttd_topic.erl"},{line,95}]},{emqttd_protocol,validate_packet,1,[{file,"src/emqttd_protocol.erl"},{line,466}]},{emqttd_protocol,received,2,[{file,"src/emqttd_protocol.erl"},{line,142}]},{emqttd_client,received,2,[{file,"src/emqttd_client.erl"},{line,315}]},{gen_server2,handle_msg,2,[{file,"src/gen_server2.erl"},{line,1046}]},{proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,257}]}]}
Offender:   [{pid,<0.1819.0>},{name,connection},{mfargs,{emqttd_client,start_link,[[{max_publish_rate,0},{client_idle_timeout,30000},{client_enable_stats,false},{max_clientid_len,1024},{max_packet_size,65536},{keepalive_backoff,2.0}]]}}]
2017-10-19 16:35:45 =ERROR REPORT====
** Generic server <0.2300.0> terminating
** Last message in was {inet_async,#Port<0.2749>,27453,{ok,<<50,252,3,0,33,84,69,76,76,72,79,87,47,84,72,45,83,49,48,48,76,47,70,48,70,69,54,66,51,50,48,48,57,66,47,67,79,86,0,9,123,34,118,101,114,34,58,34,49,46,48,34,44,34,116,112,34,58,50,44,34,105,100,34,58,34,70,48,70,69,54,66,51,50,48,48,57,66,34,44,34,115,110,34,58,57,44,34,115,116,34,58,50,55,49,44,34,100,97,116,97,34,58,91,123,34,107,34,58,53,49,44,34,109,34,58,34,80,77,50,53,34,44,34,112,34,58,51,44,34,118,34,58,34,54,51,34,125,44,123,34,107,34,58,53,50,44,34,109,34,58,34,80,77,49,48,34,44,34,112,34,58,51,44,34,118,34,58,34,54,51,34,125,44,123,34,107,34,58,53,51,44,34,109,34,58,34,84,72,34,44,34,112,34,58,50,44,34,118,34,58,34,50,55,34,125,44,123,34,107,34,58,53,52,44,34,109,34,58,34,82,72,34,44,34,112,34,58,51,44,34,118,34,58,34,51,49,34,125,44,123,34,107,34,58,53,53,44,34,109,34,58,34,67,79,50,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,53,54,44,34,109,34,58,34,84,86,79,67,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,53,55,44,34,109,34,58,34,72,67,72,79,34,44,34,112,34,58,50,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,53,56,44,34,109,34,58,34,110,111,105,115,101,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,53,57,44,34,109,34,58,34,76,105,103,104,116,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,54,48,44,34,109,34,58,34,69,108,101,99,116,114,105,99,105,116,121,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,54,49,44,34,109,34,58,34,67,79,77,77,83,84,65,84,85,83,34,44,34,112,34,58,49,44,34,118,34,58,34,48,34,125,93,125>>}}
** When Server state == {client_state,{esockd_connection,[#Port<0.2749>,#Fun<esockd_transport.2.110630692>,[]]},{{111,203,16,82},16970},running,true,undefined,65536,#Fun<emqttd_parser.3.27949395>,{proto_state,{{111,203,16,82},16970},#Fun<emqttd_client.0.11103166>,true,<<"TELLHOW/TH-S100L/F0FE6B32009B">>,<0.2300.0>,true,4,<<"MQTT">>,<<"wifi">>,false,undefined,120,2.0,1024,<0.2301.0>,{proto_stats,false,0,0,0,0},undefined,undefined,{1508,402045,522440}},{keepalive,#Fun<emqttd_client.17.11103166>,59,240,{keepalive,check},#Ref<0.1625624059.2800484355.195942>,0},false,30000,126}
** Reason for termination ==
** {function_clause,[{emqttd_topic,validate3,[<<252,3,0,33,84,69,76,76,72,79,87>>],[{file,"src/emqttd_topic.erl"},{line,110}]},{emqttd_topic,validate2,1,[{file,"src/emqttd_topic.erl"},{line,108}]},{emqttd_topic,validate,1,[{file,"src/emqttd_topic.erl"},{line,95}]},{emqttd_protocol,validate_packet,1,[{file,"src/emqttd_protocol.erl"},{line,466}]},{emqttd_protocol,received,2,[{file,"src/emqttd_protocol.erl"},{line,142}]},{emqttd_client,received,2,[{file,"src/emqttd_client.erl"},{line,315}]},{gen_server2,handle_msg,2,[{file,"src/gen_server2.erl"},{line,1046}]},{proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,257}]}]}
2017-10-19 16:35:45 =CRASH REPORT====
crasher:
initial call: emqttd_client:init/1
pid: <0.2300.0>
registered_name: []
exception exit: {{function_clause,[{emqttd_topic,validate3,[<<252,3,0,33,84,69,76,76,72,79,87>>],[{file,"src/emqttd_topic.erl"},{line,110}]},{emqttd_topic,validate2,1,[{file,"src/emqttd_topic.erl"},{line,108}]},{emqttd_topic,validate,1,[{file,"src/emqttd_topic.erl"},{line,95}]},{emqttd_protocol,validate_packet,1,[{file,"src/emqttd_protocol.erl"},{line,466}]},{emqttd_protocol,received,2,[{file,"src/emqttd_protocol.erl"},{line,142}]},{emqttd_client,received,2,[{file,"src/emqttd_client.erl"},{line,315}]},{gen_server2,handle_msg,2,[{file,"src/gen_server2.erl"},{line,1046}]},{proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,257}]}]},[{gen_server2,terminate,3,[{file,"src/gen_server2.erl"},{line,1157}]},{proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,257}]}]}
ancestors: [<0.1447.0>,<0.1446.0>,esockd_sup,<0.1215.0>]
message_queue_len: 1
messages: [{inet_async,#Port<0.2749>,30497,{error,closed}}]
links: [<0.1447.0>,<0.2301.0>]
dictionary: [{rand_seed,{#{jump => #Fun<rand.16.15449617>,max =><PHONE_NUMBER>51711743,next => #Fun<rand.15.15449617>,type => exsplus},[95983505611929833|197752501137238940]}},{guid,{1508402145808547,121487444936956,11}},{{acl,publish,<<"TELLHOW/TH-S100L/F0FE6B32009B/COV">>},allow}]
trap_exit: false
status: running
heap_size: 2586
stack_size: 27
reductions: 9651
neighbours:
2017-10-19 16:35:45 =SUPERVISOR REPORT====
Supervisor: 'esockd_connection_sup - <0.1447.0>'
Context:    connection_crashed
Reason:     {function_clause,[{emqttd_topic,validate3,[<<252,3,0,33,84,69,76,76,72,79,87>>],[{file,"src/emqttd_topic.erl"},{line,110}]},{emqttd_topic,validate2,1,[{file,"src/emqttd_topic.erl"},{line,108}]},{emqttd_topic,validate,1,[{file,"src/emqttd_topic.erl"},{line,95}]},{emqttd_protocol,validate_packet,1,[{file,"src/emqttd_protocol.erl"},{line,466}]},{emqttd_protocol,received,2,[{file,"src/emqttd_protocol.erl"},{line,142}]},{emqttd_client,received,2,[{file,"src/emqttd_client.erl"},{line,315}]},{gen_server2,handle_msg,2,[{file,"src/gen_server2.erl"},{line,1046}]},{proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,257}]}]}
Offender:   [{pid,<0.2300.0>},{name,connection},{mfargs,{emqttd_client,start_link,[[{max_publish_rate,0},{client_idle_timeout,30000},{client_enable_stats,false},{max_clientid_len,1024},{max_packet_size,65536},{keepalive_backoff,2.0}]]}}]
2017-10-19 17:01:16 =ERROR REPORT====
** Generic server <0.2412.0> terminating
** Last message in was {inet_async,#Port<0.2802>,57895,{ok,<<50,252,3,0,33,84,69,76,76,72,79,87,47,84,72,45,83,49,48,48,76,47,70,48,70,69,54,66,51,50,48,48,68,67,47,67,79,86,0,4,123,34,118,101,114,34,58,34,49,46,48,34,44,34,116,112,34,58,50,44,34,105,100,34,58,34,70,48,70,69,54,66,51,50,48,48,68,67,34,44,34,115,110,34,58,52,44,34,115,116,34,58,53,54,55,44,34,100,97,116,97,34,58,91,123,34,107,34,58,53,49,44,34,109,34,58,34,80,77,50,53,34,44,34,112,34,58,51,44,34,118,34,58,34,55,48,34,125,44,123,34,107,34,58,53,50,44,34,109,34,58,34,80,77,49,48,34,44,34,112,34,58,51,44,34,118,34,58,34,55,49,34,125,44,123,34,107,34,58,53,51,44,34,109,34,58,34,84,72,34,44,34,112,34,58,50,44,34,118,34,58,34,50,54,34,125,44,123,34,107,34,58,53,52,44,34,109,34,58,34,82,72,34,44,34,112,34,58,51,44,34,118,34,58,34,51,52,34,125,44,123,34,107,34,58,53,53,44,34,109,34,58,34,67,79,50,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,53,54,44,34,109,34,58,34,84,86,79,67,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,53,55,44,34,109,34,58,34,72,67,72,79,34,44,34,112,34,58,50,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,53,56,44,34,109,34,58,34,110,111,105,115,101,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,53,57,44,34,109,34,58,34,76,105,103,104,116,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,54,48,44,34,109,34,58,34,69,108,101,99,116,114,105,99,105,116,121,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,54,49,44,34,109,34,58,34,67,79,77,77,83,84,65,84,85,83,34,44,34,112,34,58,49,44,34,118,34,58,34,48,34,125,93,125>>}}
** When Server state == {client_state,{esockd_connection,[#Port<0.2802>,#Fun<esockd_transport.2.110630692>,[]]},{{111,203,16,82},35030},running,true,undefined,65536,#Fun<emqttd_parser.3.27949395>,{proto_state,{{111,203,16,82},35030},#Fun<emqttd_client.0.11103166>,true,<<"TELLHOW/TH-S100L/F0FE6B3200DC">>,<0.2412.0>,true,4,<<"MQTT">>,<<"wifi">>,false,undefined,120,2.0,1024,<0.2413.0>,{proto_stats,false,0,0,0,0},undefined,undefined,{1508,403594,620024}},{keepalive,#Fun<emqttd_client.17.11103166>,59,240,{keepalive,check},#Ref<0.1625624059.2801270788.27553>,0},false,30000,144}
** Reason for termination ==
** {function_clause,[{emqttd_topic,validate3,[<<252,3,0,33,84,69,76,76,72,79,87>>],[{file,"src/emqttd_topic.erl"},{line,110}]},{emqttd_topic,validate2,1,[{file,"src/emqttd_topic.erl"},{line,108}]},{emqttd_topic,validate,1,[{file,"src/emqttd_topic.erl"},{line,95}]},{emqttd_protocol,validate_packet,1,[{file,"src/emqttd_protocol.erl"},{line,466}]},{emqttd_protocol,received,2,[{file,"src/emqttd_protocol.erl"},{line,142}]},{emqttd_client,received,2,[{file,"src/emqttd_client.erl"},{line,315}]},{gen_server2,handle_msg,2,[{file,"src/gen_server2.erl"},{line,1046}]},{proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,257}]}]}
2017-10-19 17:01:16 =CRASH REPORT====
crasher:
initial call: emqttd_client:init/1
pid: <0.2412.0>
registered_name: []
exception exit: {{function_clause,[{emqttd_topic,validate3,[<<252,3,0,33,84,69,76,76,72,79,87>>],[{file,"src/emqttd_topic.erl"},{line,110}]},{emqttd_topic,validate2,1,[{file,"src/emqttd_topic.erl"},{line,108}]},{emqttd_topic,validate,1,[{file,"src/emqttd_topic.erl"},{line,95}]},{emqttd_protocol,validate_packet,1,[{file,"src/emqttd_protocol.erl"},{line,466}]},{emqttd_protocol,received,2,[{file,"src/emqttd_protocol.erl"},{line,142}]},{emqttd_client,received,2,[{file,"src/emqttd_client.erl"},{line,315}]},{gen_server2,handle_msg,2,[{file,"src/gen_server2.erl"},{line,1046}]},{proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,257}]}]},[{gen_server2,terminate,3,[{file,"src/gen_server2.erl"},{line,1157}]},{proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,257}]}]}
ancestors: [<0.1447.0>,<0.1446.0>,esockd_sup,<0.1215.0>]
message_queue_len: 1
messages: [{inet_async,#Port<0.2802>,528,{error,closed}}]
links: [<0.1447.0>,<0.2413.0>]
dictionary: [{rand_seed,{#{jump => #Fun<rand.16.15449617>,max =><PHONE_NUMBER>51711743,next => #Fun<rand.15.15449617>,type => exsplus},[176891077976593411|104012000616473232]}},{{acl,publish,<<"TELLHOW/TH-S100L/F0FE6B3200DC/COV">>},allow},{guid,{1508403676435491,121487444937068,6}}]
trap_exit: false
status: running
heap_size: 1598
stack_size: 27
reductions: 6412
neighbours:
2017-10-19 17:01:16 =SUPERVISOR REPORT====
Supervisor: 'esockd_connection_sup - <0.1447.0>'
Context:    connection_crashed
Reason:     {function_clause,[{emqttd_topic,validate3,[<<252,3,0,33,84,69,76,76,72,79,87>>],[{file,"src/emqttd_topic.erl"},{line,110}]},{emqttd_topic,validate2,1,[{file,"src/emqttd_topic.erl"},{line,108}]},{emqttd_topic,validate,1,[{file,"src/emqttd_topic.erl"},{line,95}]},{emqttd_protocol,validate_packet,1,[{file,"src/emqttd_protocol.erl"},{line,466}]},{emqttd_protocol,received,2,[{file,"src/emqttd_protocol.erl"},{line,142}]},{emqttd_client,received,2,[{file,"src/emqttd_client.erl"},{line,315}]},{gen_server2,handle_msg,2,[{file,"src/gen_server2.erl"},{line,1046}]},{proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,257}]}]}
Offender:   [{pid,<0.2412.0>},{name,connection},{mfargs,{emqttd_client,start_link,[[{max_publish_rate,0},{client_idle_timeout,30000},{client_enable_stats,false},{max_clientid_len,1024},{max_packet_size,65536},{keepalive_backoff,2.0}]]}}]
2017-10-19 21:18:54 =ERROR REPORT====
** Generic server <0.1751.0> terminating
** Last message in was {inet_async,#Port<0.2494>,5448,{ok,<<34,69,108,101,99,116,114,105,99,105,116,121,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,54,49,44,34,109,34,58,34,67,79,77,77,83,84,65,84,85,83,34,44,34,112,34,58,49,44,34,118,34,58,34,48,34,125,93,125,58,252,3,0,50,252,3,0,33,84,69,76,76,72,79,87,47,84,72,45,83,49,48,48,76,47,70,48,70,69,54,66,52,53,69,65,70,65,47,67,79,86,0,3,123,34,118,101,114,34,58,34,49,46,48,34,44,34,116,112,34,58,50,44,34,105,100,34,58,34,70,48,70,69,54,66,52,53,69,65,70,65,34,44,34,115,110,34,58,51,44,34,115,116,34,58,49,52,56,44,34,100,97,116,97,34,58,91,123,34,107,34,58,53,49,44,34,109,34,58,34,80,77,50,53,34,44,34,112,34,58,51,44,34,118,34,58,34,56,53,34,125,44,123,34,107,34,58,53,50,44,34,109,34,58,34,80,77,49,48,34,44,34,112,34,58,51,44,34,118,34,58,34,56,56,34,125,44,123,34,107,34,58,53,51,44,34,109,34,58,34,84,72,34,44,34,112,34,58,50,44,34,118,34,58,34,50,54,34,125,44,123,34,107,34,58,53,52,44,34,109,34,58,34,82,72,34,44,34,112,34,58,51,44,34,118,34,58,34,51,55,34,125,44,123,34,107,34,58,53,53,44,34,109,34,58,34,67,79,50,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,53,54,44,34,109,34,58,34,84,86,79,67,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,53,55,44,34,109,34,58,34,72,67,72,79,34,44,34,112,34,58,50,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,53,56,44,34,109,34,58,34,110,111,105,115,101,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,53,57,44,34,109,34,58,34,76,105,103,104,116,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,54,48,44,34,109,34,58,34,69,108,101,99,116,114,105,99,105,116,121,34,44,34,112,34,58,51,44,34,118,34,58,34,45,50,53,53,34,125,44,123,34,107,34,58,54,49,44,34,109,34,58,34,67,79,77,77,83,84,65,84,85,83,34,44,34,112,34,58,49,44,34,118,34,58,34,48,34,125,93,125>>}}
** When Server state == {client_state,{esockd_connection,[#Port<0.2494>,#Fun<esockd_transport.2.110630692>,[]]},{{111,203,16,82},42001},running,true,undefined,65536,#Fun<emqttd_parser.3.27949395>,{proto_state,{{111,203,16,82},42001},#Fun<emqttd_client.0.11103166>,true,<<"TELLHOW/TH-S100L/F0FE6B45EAFA">>,<0.1751.0>,true,4,<<"MQTT">>,<<"wifi">>,false,undefined,120,2.0,1024,<0.1754.0>,{proto_stats,false,0,0,0,0},undefined,undefined,{1508,419051,781588}},{keepalive,#Fun<emqttd_client.17.11103166>,59,240,{keepalive,check},#Ref<0.530993364.2858942467.88718>,0},false,30000,144}
** Reason for termination ==
** {function_clause,[{emqttd_topic,validate3,[<<252,3,0,33,84,69,76,76,72,79,87>>],[{file,"src/emqttd_topic.erl"},{line,110}]},{emqttd_topic,validate2,1,[{file,"src/emqttd_topic.erl"},{line,108}]},{emqttd_topic,validate,1,[{file,"src/emqttd_topic.erl"},{line,95}]},{emqttd_protocol,validate_packet,1,[{file,"src/emqttd_protocol.erl"},{line,466}]},{emqttd_protocol,received,2,[{file,"src/emqttd_protocol.erl"},{line,142}]},{emqttd_client,received,2,[{file,"src/emqttd_client.erl"},{line,315}]},{gen_server2,handle_msg,2,[{file,"src/gen_server2.erl"},{line,1046}]},{proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,257}]}]}
2017-10-19 21:18:54 =CRASH REPORT====
crasher:
initial call: emqttd_client:init/1
pid: <0.1751.0>
registered_name: []
exception exit: {{function_clause,[{emqttd_topic,validate3,[<<252,3,0,33,84,69,76,76,72,79,87>>],[{file,"src/emqttd_topic.erl"},{line,110}]},{emqttd_topic,validate2,1,[{file,"src/emqttd_topic.erl"},{line,108}]},{emqttd_topic,validate,1,[{file,"src/emqttd_topic.erl"},{line,95}]},{emqttd_protocol,validate_packet,1,[{file,"src/emqttd_protocol.erl"},{line,466}]},{emqttd_protocol,received,2,[{file,"src/emqttd_protocol.erl"},{line,142}]},{emqttd_client,received,2,[{file,"src/emqttd_client.erl"},{line,315}]},{gen_server2,handle_msg,2,[{file,"src/gen_server2.erl"},{line,1046}]},{proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,257}]}]},[{gen_server2,terminate,3,[{file,"src/gen_server2.erl"},{line,1157}]},{proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,257}]}]}
ancestors: [<0.1447.0>,<0.1446.0>,esockd_sup,<0.1215.0>]
message_queue_len: 2
messages: [{inet_reply,#Port<0.2494>,ok},{inet_async,#Port<0.2494>,11311,{error,closed}}]
links: [<0.1447.0>,<0.1754.0>]
dictionary: [{{acl,publish,<<"TELLHOW/TH-S100L/F0FE6B45EAFA/COV">>},allow},{rand_seed,{#{jump => #Fun<rand.16.15449617>,max =><PHONE_NUMBER>51711743,next => #Fun<rand.15.15449617>,type => exsplus},[278329812206779817|274483086965656870]}},{guid,{1508419134174753,121483149969111,5}}]
trap_exit: false
status: running
heap_size: 1598
stack_size: 27
reductions: 5687
neighbours:
2017-10-19 21:18:54 =SUPERVISOR REPORT====
Supervisor: 'esockd_connection_sup - <0.1447.0>'
Context:    connection_crashed
Reason:     {function_clause,[{emqttd_topic,validate3,[<<252,3,0,33,84,69,76,76,72,79,87>>],[{file,"src/emqttd_topic.erl"},{line,110}]},{emqttd_topic,validate2,1,[{file,"src/emqttd_topic.erl"},{line,108}]},{emqttd_topic,validate,1,[{file,"src/emqttd_topic.erl"},{line,95}]},{emqttd_protocol,validate_packet,1,[{file,"src/emqttd_protocol.erl"},{line,466}]},{emqttd_protocol,received,2,[{file,"src/emqttd_protocol.erl"},{line,142}]},{emqttd_client,received,2,[{file,"src/emqttd_client.erl"},{line,315}]},{gen_server2,handle_msg,2,[{file,"src/gen_server2.erl"},{line,1046}]},{proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,257}]}]}
Offender:   [{pid,<0.1751.0>},{name,connection},{mfargs,{emqttd_client,start_link,[[{max_publish_rate,0},{client_idle_timeout,30000},{client_enable_stats,false},{max_clientid_len,1024},{max_packet_size,65536},{keepalive_backoff,2.0}]]}}]
root@iZ11dbuxeb8Z:/usr/emqttd/log#
it's always happen, anybody help me?

Invalid issue, closed


Fix #26: added missing returns for read(int pin, ...) and read2(int pin, ...)

Fix for bug #26:
added missing returns for read(int pin, ...) and read2(int pin, ...)

👍


1.18.2 Forge Fails to Launch

Log: https://mclo.gs/FvfsiaD

It seems like Mixin is attempting to apply the same mixin three times. I'll try to figure out how to fix this or work around it, but this may not be fixed for a while.

This appears to be fixed now.


Suggestion: rename "Share" button on the web to "Copy link"

Is your feature request related to a problem? Please describe.
Since in the web version the "Share" button simply copies the link to a post/profile to the clipboard (unlike in the mobile app, where it displays the native share sheet), I think it would be a bit clearer if it said something like "Copy link" or "Copy link to post/profile" instead.
(It could also use a more link-like icon like Twitter does)
(On mobile it should stay "Share" since it does something else)
Here's how it looks on Twitter:

Bluesky version:

That seems legit, @estrattonbailey can you hit this?


Add support for IN::PTR records.

Building on the work done by @chadh in #21 I believe this should cover this feature. I also tried to clean it up a bit. So as to not add another gem dependency I used ipaddr. Its not as pretty but it gets the job done. I added two conditions to the redirect logic which seems to work. I added a test for the ptr record. Test pass.

Thanks @metcalfc - this looks good!


Mapper for left joins deduplication

Hi, I often find myself doing left joins, lets say for querying posts and their comments.
Obviously the rows look like
P1 columns, C1 columns
P1 columns, C2 columns
P1 columns, C3 columns
P2 columns, C4 columns
P3 columns, C5 columns

what Id like to map this to is P(p vals, List<C>)
what now I have to do is pass in mapper to execute that maps the (columns -> PostWithComment(post: Post, comment: Comment)
and then after query loop it again into a set and append comments to list, hence wasting the PostWithComment instantiation.
Yes, I know I can do this manually with fun execute(): SqlCursor, but then I lose the generated column mapping indices, etc

What do we do when there are two left joins? The case in which this would work seems very narrow and the amount of redundant data that starts to pile up grows exponentially as the number of joins increase compared to issuing individual granular queries.

yea i would just use existing kotlin stdlib apis for this:
myQuery.executeAsList()
  .groupBy { it.some_id }

I've also been using:
myQuery.executeAsList()
  .groupBy { it.some_id }

@JakeWharton "compared to issuing individial granular queries" would you rather do separate queries then 1 join? (query for parent and then query for its children where parent id = x)?
@AlecStrong do you mean overriding mapper to create PostWithComment(post, comment) and then groupBy { post }?

I would do two queries, yes, as they can thus update independently without forcing the other to re-query and allocate a bunch of duplicate data.

Hm, so you say 2 queries will be faster than join? Does it need to be in a transaction?
That force requery, you mean rx?
queryAllParent
   .asObservable
   .mapToList
   .flatmap { parent -> queryChildrenByParent(parent)
                                                       .map { children -> ParentWithChildren(parent, children) }
    }

If so, doesnt this risk being out of sync, since it cannot be in a transaction? maybe use operator?

Again, I don't think you can make blanket statements here because it's not clear what your intent with the data is. I would propagate both queries separately to the consumer instead of as a single object.

I see, lets say use case is recycler view of posts and each post has a list of comments

I'm going to close this out, we're unlikely to make a change of this caliber.

haha @ursusursus you closed it milliseconds before i hit the button, and then the button turned into a reopen.


Include short mode mappings for small windows

This is simple way of only using mode letters once the buffer window is below a certain width. (Possibly when shrinking the terminal window itself, but more commonly when using something like Tmux, which allows for arbitrarily-sized shell panes to be open in the same window.)
It allows for a cleaner responsive design in my opinion. I use it as a component function that looks something like this:
      \ 'component_function': {
      \   'mode': 'LightLineMode',
      \   ...
      \ }

function! LightLineMode()
  return winwidth(0) > 30 ? lightline#mode() : lightline#shortmode()
endfunction

Here is an example of how it would play out as the window shrinks to a small size:

Not a terribly complex feature obviously, but it's been a nice add-on for me to keep the lightline from looking too squished at any size.
Let me know what you think! Love the plugin, thanks for making it 💛

The following configuration will be enough isn't it?
function! LightLineMode()
  return winwidth(0) > 30 ? lightline#mode() : lightline#mode()[0]
endfunction

@itchyny, ha, yep, that works fine 😅


cache: Not sending info request for cached chunk

Improve cache backend performance.

I'm not sure this is worth doing at most it will save a few cycles and stop contention on the refreshMutex.  Have you measured an improvement with this patch?

rclone always sends an info request to the source remote, regardless of whether the chunk is already cached.
Therefore, access to the cached chunk is delayed by latency between source remote.
This patch prevents this. The difference is noticable when you access already cached chunks.

I wrote a test program for random read performance benchmarks.
Mount cache remote and run
randtest [file to cache mount]
package main

import (
	"log"
	"math/rand"
	"os"
	"time"
)

func check(e error) {
	if e != nil {
		panic(e)
	}
}

func main() {
	var err error
	b := make([]byte, 16384)
	fn := os.Args[1]
	f, err := os.Open(fn)
	check(err)
	fi, err := f.Stat()
	check(err)
	log.Printf(fn)

	start := time.Now()
	fs := fi.Size()
	for i := 0; i < 30; i++ {
		cstart := time.Now()
		of := rand.Int63n(fs)
		_, err = f.Seek(of, 0)
		check(err)
		_, err = f.Read(b)
		check(err)
		celapsed := time.Since(cstart)
		log.Printf("offset %d took %s", of, celapsed)
	}
	f.Close()
	elapsed := time.Since(start)
	log.Printf("took %s", elapsed)
}

Here is my results from 140M file on gdrivecache mount.
Original
1m 8s non cached
42s cached
With #2493
42s non cached
12s cached
With #2493 #2495
32s non cached
0.6s cached

Thanks for doing the test :-)
I was looking at the source of refreshFromSource - I can see I mis-read it now and your change does make a difference.
So it looks like your change is equivalent to calling o.refreshFromSource(false) rather than o.refreshFromSource(true) - would you agree?
// refreshFromSource requests the original FS for the object in case it comes from a cached entry
func (o *Object) refreshFromSource(force bool) error {
	o.refreshMutex.Lock()
	defer o.refreshMutex.Unlock()
	var err error
	var liveObject fs.Object

	if o.Object != nil && !force {
		return nil
	}

@remusb - can you help with this?  Is this sensible or will we miss updates from the source?

Yes. They are equivalent.

@B4dM4n could you take a look at this change?

This looks good to me.
Using o.refresh() is the right way to check for expiration when o.Object != nil.
What I didn't figure out yet is why this change impacts seek performance. Object.Open should only be called once, but it looks like it is called on every seek.
I will investigate this further.

Got it, cache.Object.Open returns a readers.NewLimitedReadCloser not a cache.Object.Handle as I assumed.
This change definitely improves the cache performance.

Thanks for your review @B4dM4n
I'll merge this now then - thank you very much @dcpu for the contribution.


Create separate announcement and discussion mailing lists?

As part of #6, we should consider creating separate announcement and discussion mailing lists. This would allow the community to have email-based discussion about GUAC issues but still preserve a low-traffic announcement list for those who don't want the discussion emails.
I am generally in favor of such a split, but it's not clear to me that we need it at this point. I see three directions we could go:

Keep a single list and make it explicitly announcement-only
Keep a single list for discussion and announcements. If we reach a point where this becomes a problem, we can create a separate announcement list.
Create an announcement and a discussion list now.

My recommendation is option 2. I'll leave this open for community input and ask the maintainers to make a decision at their 3 June meeting.

I agree with 2.

In favor for 2 as well. I don't think we have too much traffic in the past that warrants a separate list.

2 gets my vote also.

The consensus seems to be option 2, so I'm proceeding with that.


Checking if an element exists resolves immediately without waiting for timeout

What is your Scenario?
I have a user flow where, depending on the input, a new element might appear, and if so I need to click on the element in order to continue. So I tried awaiting $element.exists in an if, but it just returns/resolves immediately without waiting for the page to render.
I'd like a way to wait for an element that might appear.
What is the Current behavior?
if (await $element.exists) // resolves immediately
What is the Expected behavior?
if (await $element.exists) // resolves with built-in wait mechanism https://testcafe.io/documentation/402827/guides/advanced-guides/built-in-wait-mechanisms
What is the public URL of the test page? (attach your complete example)
https://google.com
What is your TestCafe test code?
await t.click($buttonThatLoadsPageWithNewConditionalContent)

let textThatMaybeExists = ''
if (await $element.exists) {
    textThatMaybeExists = await $element.textContent
    // ...
}

Your complete configuration file
No response
Your complete test report
No response
Screenshots
No response
Steps to Reproduce

TestCafe version
3.6.0
Node.js version
21.7.1
Command-line arguments
testcafe chrome
Browser name(s) and version(s)
No response
Platform(s) and version(s)
No response
Other
No response

Thanks @PavelMor25
Replacing await $element.exists with await $element.visible worked as expected.
But how come .visible isn't in your documentation?
https://testcafe.io/documentation/402666/reference/test-api/selector

Hello,
This property belongs to element-based DOMNodeState objects, not to the Selector object itself.
Thank you for your report.


Missing export tasks from @trigger.dev/sdk/v3

This is happening because of our new browser export condition that doesn't export some things that aren't compatible with browsers, but apparently this is effecting edge runtimes (I'm guessing that bundle with the "browser" custom condition but have not confirmed this.
We should export more from the browser export, especially the tasks export, but currently it's not so simple because it will pull in stuff that isn't compatible (opentelemetry).

A list of runtime keys: https://runtime-keys.proposal.wintercg.org/#workerd

Yup, looks like Cloudflare workers will bundle with the "browser" condition:
https://github.com/cloudflare/workers-sdk/blob/3ee1353d317c0e137a14f3091b32eecd575cc7a4/packages/wrangler/src/deployment-bundle/bundle.ts#L56
If we added a "workerd" or "worker" condition that exports the same as the "default" export then this would probably fix the issue for CF workers. I'm guessing we could do a similar thing for Vercel Edge functions


Some of Code Climate badges are not working

Hi, guys! It seems to be an issue again/still.
Badges with percentage are not working.
Any info on that?

Hello @voplex95!
I hopefully fixed all the badges in  #1387. Even though the pull request has been merged, it has not yet been pushed to production. 😉

@PyvesB thanks for the fix! Is it in production now? It could be me, but I can't make my coverage badge working.
repo: https://codeclimate.com/github/gicentre/prettier-plugin-elm
badge:
Example badges on shields.io are also grey.

@kachkaev unfortunately not. You can check out the fixed version on our staging environment, but we'll still have to wait a bit before getting it pushed to production. ^^

Thanks for this info @PyvesB! When about are you planning to push the fix into production? Just curious 🙂
Meanwhile, will it be OK if use a staging badge at https://shields-staging.herokuapp.com/codeclimate/coverage/gicentre/prettier-plugin-elm.svg?style=flat-square?

I simply help maintaining the project, I'm afraid I'm not going to able to provide a more helpful answer. Let's ping @paulmelnikow and @espadrine , they may be able to shed some light on the next deployment plans. 😉

See #1538!
I'd request that the staging server be restricted to testing. Since we're on the free plan, Heroku limits the number of hours per month the server can be used. If we exceed those with production usage, the staging server becomes unusable for testing, which is why it's there. That said, you're welcome to host your own server on Heroku!

As far as I can tell, the Code Climate badges should be working as expected. This is what I see when I visit the Shields homepage:

I did submit a yet undeployed pull request to make our Code Climate code more reliable (#1613) and we are facing more general issues due to lack of capacity (see #1568), but I don't believe much else can be done right now.

This is what I see (at the time of this comment):

As we've got three production servers, we might be hitting different ones when requesting the badges (or possibly different versions of cached badges).

And now I get "not found" for all CodeClimate badges at "http://shields.io/". A moment ago they all were OK.

And now I get "not found" for all CodeClimate badges at "http://shields.io/". A moment ago they all were OK.

... and the plot thickens ...

All currently showing ok for me, perhaps we are hitting CodeClimates rate limit?

@RedSparr0w yes, I was thinking that as well. We go back to the "more aggressive caching" mentioned in #1568. 😃

Did some tests overnight and im 99% certain we are hitting the API limit:
#4bb2c5 Found
#eaa228 Not Found

On average after ~28 Minutes we start getting the not found badges.
And immediately after the hour rolls over, the badges start working again.

The API documentation states:

The API enforces a limit of 5,000 requests per token per hour.

As we're not actually using tokens in our queries, I'm wondering whether we might be getting rate limited sooner. Also, these Code Climate badges systematically require two API calls to get the required information, which isn't helping us either.

Given that your project is so popular and important to people, WDYT of writing to Code Climate and asking them for a King Token that would not have the rate limits? They might be happy with providing you such token for free as it is also in their interests.
I would not know about Code Climate without stumbling across your badges and so would not create an account there. At the moment I only have one open-source project in Code Climate, which does not add any profits to them, but I'm already a half way through in becoming a paying customer. Guess this situation is not unique.

I have just recently started to use Code Climate for my open source project and ran into this rate limiting issue. Although I'm not associated with shields, I have sent an email to Code Climate pointing them to this issue asking that they provide some information here on whether or not they'll be able to grant an access token with higher rate limits.

This is still not working to this day. Any way I can help?

I heard back from Code Climate support:

Hey Samuel-
Thanks for reaching out and sorry for the trouble with those badges. Happy to help with this.
I'd like to run this by one of my dev colleagues here to help provide some guidance.
Once I have an update on my end, I'll be back in touch. 👌 If you have any questions in the meantime, please feel free to shoot me an email.
Thanks again,
-Emily

I haven't got a single failure today, maybe Code Climate support really fixed something?

Think you may be right @epistrephein.
Today 100% have had the correct badge for me.
http://shields.redsparr0w.com/1518/

Maybe they whitelisted our IPs, or generally increased the rate limit for everyone. Their API was in beta for a while, they might have loosened things up since then.

Will leave this open for a few days and close if results stay steady.

Looks like it was fine over the weekend (maybe due to reduced traffic), Heres a graph of the last 3 days:

this is what I see on shields.io, but they seem to be working on the staging environment

I Assume they still work on the staging environment because we are not using an API key so should be based on IP, So the staging environment shouldn't be reaching that limit.

I think the hypothesis that there is reduced traffic over the weekend is most likely. I followed up with Code Climate support asking if there had been any changes and they said:

HI Samuel -

I haven't seen any activity on this internally, but I'll double-check and let you know.

Thanks!

Haven't heard back since but I guess that means no changes were made.

@citricsquid did you get any updates from CodeClimate people?

I haven’t heard back. I’ll follow up again and share their response here.
On Wed, 23 May 2018 at 22:19, Alexander Kachkaev<EMAIL_ADDRESS>wrote:

@citricsquid https://github.com/citricsquid did you get any updates
from CodeClimate people?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/badges/shields/issues/1518#issuecomment-391499982,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAVV-bqoiNPLcxKdcA_N_cz6Db44PZ_Xks5t1dJbgaJpZM4SN2WE
.

Hi Samuel -
Thanks for checking back in! I do see that the investigation is still in progress, but I don't see any additional comments yet.
I'll check in with the team today and will let you know what I find. 👍
Thanks again and I'll be in touch soon,
Emily

That was sent 26 hours ago and I have not heard back since. I'll update here again if I do hear back.

@citricsquid Any new info from codeclimate?
Doesn't look like this is contained to only a weekday problem anymore, seems to be all the time (after ~30 past the hour)

Still nothing, last I heard was the May 24th response. I just sent a follow up email again, I'll report back with any response I receive.

I have received a response:
“Hey Samuel,
Dave here, stepping in for Emily. Unfortunately, I don't yet have an update
on this rate limiting situation. I can tell you that we're a little backed
up on escalations at the moment, so it might be a few more weeks before we
can tackle this situation. I'm really sorry about the long wait here.
I've passed along your email to our dev team, and hopefully we can expedite
the resolution here. Please let me know if you have any questions about
this, or if there's anything else I can do for you in the meantime. I'll be
in touch as soon as I have more info.
Cheers,
Dave”
On Sun, 24 Jun 2018 at 23:43, Danial<EMAIL_ADDRESS>wrote:

@citricsquid https://github.com/citricsquid Any new info from
codeclimate?
Doesn't look like this is contained to only a weekday problem anymore,
seems to be all the time (after ~30 past the hour)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/badges/shields/issues/1518#issuecomment-399794122,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAVV-YnTNGd348FulHxgQhJT21ualsgNks5uABX1gaJpZM4SN2WE
.

Would it be worth pinging them again? They seem open to solving the problem. Persistence may pay off!

a few more weeks have passed since the previous email, so I've followed up again -- will report back with any response.

Hey Samuel,
Unfortunately I don't yet have an update here. For context, we're a little backed up on escalations as we prepare for Code Climate Summit, and it will likely be a couple more weeks before we're able to address this. I'm really sorry about the limitation here.
Please let me know if there's anything else I can do for you, and I'll be in touch as soon as I have more information.
Thanks,

Thanks for keeping on the case!

Hi @paulmelnikow @citricsquid -
Have you heard of any recent trouble with this? We've made some changes, so wondering if this is quiet now.

Thanks @RedSparr0w

@RedSparr0w I've got a feeling that it's timing out later in the hour because we have implemented better caching on our side and we are no longer systematically rendering on the homepage.

@PyvesB Good point 👍 , forgot about that 😅

Hi everyone -- Emily here from Code Climate Support.

Although we haven't officially deprecated our shields.io badges, our new badges are no longer hosted on shields.io, and have no rate limits.

To update your badges,

select the Badges option on your repo's Code Climate settings page.

Let me know if you have any questions! www.codeclimate.com/help

Although we haven't officially deprecated our shields.io badges, our new badges are no longer hosted on shields.io, and have no rate limits.

And have no style options, like flat-square, right?

@efueger please do not deprecate shields.io badges – this is how you may aquire additional new customers. I personally knew about your service by just searching ‘coverage’ there.
The point of shields.io is to provide developers with a nice choice of styles, eg flat badges with rect corners. Even if your official badges mimic these styles (which will cost you money to develop), they won’t be 100% alike. Users won’t like the mismatch between the styles and will less likely add your badge to readme (which reduces audience reach for you).
Simply turning off rate limiting for shields.io agents looks like a solution that suits everyone.

@efueger please do not deprecate shields.io badges – this is how you may aquire additional new customers. I personally knew about your service by just searching ‘coverage’ there.

I think I'll have to abandon this service for my projects if they deprecate shields.io, because I like consistency:

I do not understand why somebody want to drop shields.io support.

I've done a bit of work in #2201 to make the examples on our homepage static, therefore sparing some requests and hopefully helping us stay within the extremely tight boundaries of the public Code Climate API.
@efueger any news on the @codeclimate side of things? I'm hoping the above responses from our users will shed some light on the issue at hand.

@PyvesB, thank you. I hope that Code Climate will give us the ability to use their service with beautiful and customizable badges from shields.

Could we solve this by scraping their SVG badges (as in #2229)?

@paulmelnikow I'll briefly sum up some of the history around these badges so that we're all on the same page. Initially we had a coverage percentage badge that retrieved the content disposition header from a PNG image returned by Code Climate. Two score badges (i.e. with letters) which did do SVG scraping were later implemented in #1236. However, Code Climate changed the format of one of their SVG badges only a few weeks later, and replaced the score with a percentage. Therefore we ended up with broken badges on our side, and no means of retrieving the letter score by scraping anymore. To solve this, I submitted #1368 and switched to using the API which still returned the now missing information. Shortly afterwards, we had to carry out other fixes as Code Climate changed things again on their side (pertaining to the old content disposition header badge) and I overhauled the whole implementation in #1387. Unfortunately ever since we have been hitting rate limits.
Unless things have changed recently, the native Code Climate SVG badges are very limited and only provide two pieces of information:

maintainability score.
coverage percentage.

Our badges are much more diverse:

number of issues.
maintainability score.
maintainability percentage.
coverage score.
coverage percentage.
technical debt.

Only the full API allows to build all of them properly. Our many additional badges, alongside nicer and more consistent visuals, as well as amazing customisation options provided by Shields.io are some of the reasons why our users have been so passionate about getting this issue resolved. Unfortunately, after 6 months of following up, @codeclimate's only official message on this issue showcases a lack of understanding of the situation.
@RedSparr0w how often does your uptime robot refresh its data, I can only see until October 24th? I would be interested in knowing how much the recently deployed pull request #2201 has improved our performance.

Would using a pool of tokens be possible, or would the token need to correspond to the account that owns the project?

@paulmelnikow well we've mentioned solutions using tokens in some way or the other since the early days of this issue, and I believe @citricsquid contacted @codeclimate's support precisely on this matter back in April, with several follow ups in the meantime. This is where we have been hitting a wall.

It sounds like what we asked is for them to drop the rate limit, or give us a king token with a higher rate limit.
GitHub basically made the same call a while back, which is what led us to use the elaborate token rotation scheme we're using now. I'm wondering if either part of that solution could be used here.
For example:

If I signed up for my own code climate account, could I use my token to make queries against other users' public repos?
Would using a single token get us more requests than we're getting with no token?
Would a rotation of several tokens solve both problems?

Just trying to poke in the corners of our assumptions and see if there's anything we might have missed!

Hi @PyvesB ,
Thanks for the summary.
I really appreciate the effort you've put into this already. I've spoken to our Product and Engineering teams and it does sound like we need to provide you a different rate limit. Unfortunately, I don't think we can prioritize this work in the near future.
I know this was not the answer you were looking for, and I'm really sorry about that.
-> To confirm for our devs notes: your users do not provide a Code Climate API key, correct?

@efueger thank you for your response. No, our users do not provide a Code Climate API key, we are currently relying on the unauthenticated API limits.

I found a personal solution for this rather long standing and irritating problem. Not sure if CodeClimate people will like it though, because it involves dropping their service as well as Travis/AppVeyor in favour of Azure DevOps! 😅 Check out the result here:
https://github.com/gicentre/prettier-plugin-elm
No more coverage: unknown in a badge on NPM and no more clumsy integrations between a bunch of services, which are hard to make work together. Such a relief! ✨
Sorry for a slight off-topic, but hope it will help someone like me here and also give @efueger an important message to communicate to the CodeClimate management and devs.

Did the rewrite address the usage limit issue discussed here?

I still see invalid badge most of the time
Only see it working yesterday...
Today = fail again

Did the rewrite address the usage limit issue discussed here?

No, the rewrite was unrelated.

No issues with our Code Climate badges were reported recently. Over the years, we've improved caching on our side and we happen to be hitting the Code Climate API with five distinct IP addresses nowadays instead of three previously, which means that we'll hit the rate-limiting more slowly. I consider this as a workaround rather than a proper fix, if usage of our Code Climate badges increases significantly, the rate-limiting will likely kick in again.
Given that the fix mostly depends on Code Climate themselves and we haven't heard from them since early 2019, I don't think there's value in keeping this issue open forever, so I'm gonna go ahead and close it.


fix(register): Fix started date

Response now is 400 because of the date missing "Z" at the end.
Screenshots 📸:

Before
After

Can you add a test to make sure it will not get broken again in the future?


Broken URL for edinburgh

Broken URL: #https://city-of-edinburgh-council-open-spatial-data-cityofedinburgh.hub.arcgis.com/api/feed/dcat-ap/2.0.1.json

Automatically closed due to URL now working.


MatNavItem styling

When I applied height style to MatNavItem, the style got overriden by some other MatBlazor styles. Expected behavior: style should be applied last.
Code:
<Styled @bind-Classname="@NavItemStyle">
    height: auto;
</Styled>

<MatNavSubMenuList>
        @foreach (var station in mStations)
        {
            <MatNavItem @key="station.Id" class="@NavItemStyle">
                <MatIcon Icon="details"></MatIcon>
                <p class="<EMAIL_ADDRESS>            </MatNavItem>
        }
</MatNavSubMenuList>

@code
{
    private string NavItemStyle;
}

@esso23  Where are you getting the "Styled" component.  Please create a functioning BlazorFiddle for me to recreate your issue.

It's a library: https://github.com/chanan/BlazorStyled
Anyway, its seems to be an issue with the library itself and not MatBlazor. I made some research into it recently but forgot about this issue. So i'm closing this one.


Release v3.0.0

Overview/Summary
Replace this with a brief description of what this Pull Request fixes, changes, etc.
This PR fixes/adds/changes/removes

Terraform 1.3 support
Unit testing framework with Terratest

Breaking Changes

Raises minimum supported Terraform version to 1.3

Testing Evidence
Please provide any testing evidence to show that your Pull Request works/fixes as described and planned (include screenshots, if appropriate).
As part of this Pull Request I have

[ ] Checked for duplicate Pull Requests
[ ] Associated it with relevant issues, for tracking and closure.
[ ] Ensured my code/branch is up-to-date with the latest changes in the main branch
[ ] Performed testing and provided evidence.
[ ] Updated relevant and associated documentation.
[ ] Updated the "What's New?" wiki page (located in the Enterprise-Scale repo in the directory: /docs/wiki/whats-new.md)

/azp run update

/azp run update

/azp run update

/azp run update

/azp run unit

/azp run unit

/azp run unit

/azp run unit

/azp run unit

/azp run unit

/azp run update

/azp run unit

/azp run unit


VisDial v0.9 evaluations

Dear Gi-Cheon Kang,
I have a quick question about the results on the visdial v0.9 version. I took a look at the code and found out that you always started training from the 'basemodel' checkpoint of VisDial-Bert which was trained on VisDial v1.0.
As you know, the validation split of VisDial v0.9 is part of the training split of VisDial v1.0. Therefore, one cannot simply use the 'basemodel' checkpoint to train a model that will later be evaluated on VisDial v0.9.
Could you please clarify how you proceeded in training your model that was later evaluated on VisDial v0.9? As far as I know, VisDial-Bert was not trained on VisDial v0.9 and no appropriate checkpoints for this version of the dataset exist.
Thank you very much in advance

Hello, thank you for your interests!
Yes, VisDial-Bert was not trained on VisDial v0.9. So, we trained our model on VisDial v0.9 dataset on top of the VQA pretrained checkpoint in the VisDial-Bert.
Consequently, you should use -start_path vqa_pretrained_weights when training on VisDial v0.9.
I forgot to mention it since we introduced all details based on VisDial v1.0.
Hope this helps. Thank you!

Hey,
I just uploaded the checkpoints of the student model trained on v0.9. Here is the link!

What do you mean by training and validation split used for training? We used the entire VisDial v0.9 training dataset for training and evaluated the model on the VisDial v0.9 val data for testing. All hyperparameters are the same with v1.0 model which is tuned on VisDial v1.0 val data. VisDial v0.9 val data is just used for testing!

Feel free to ask if you have further questions.
Thanks


when to send challenge with SignalR?

Can you help me knowing how to use this Ntlm authentication with Owin-hosted SignalR? I need to know when to send the challenge. I also need to know if it should use cookies or authenticate every time. Also, I'm using the SignalR .NET client (not a web browser).

Actually, I think I got it working. Apparently cookies are required. In my own middleware (that runs after the Ntlm middleware)  I do this:
if (Request.User == null)
{
	Request.Context.Authentication.Challenge(new AuthenticationProperties{RedirectUri = Request.Uri.ToString()}, CookieAuthenticationDefaults.AuthenticationType, NtlmAuthenticationDefaults.AuthenticationType);
	return null;
}

Yeah, this NTLM authentication middleware hooks into the normal ASP.NET identity 2.0 call chain. It basically boils down to the same as some OAuth provider. Once your client has the cookie, authenticating over SignalR should work flawlessly.


Is it possible to customize edges as starts out thick and gets thinner until reaching target?

Is it possible to do THIS  to edges ?

Yes, could achieve this by implementing a custom edge. In this example you can find an implementation: https://reactflow.dev/examples/edges/

Yes, could achieve this by implementing a custom edge. In this example you can find an implementation: https://reactflow.dev/examples/edges/

Yes, could achieve this by implementing a custom edge. In this example you can find an implementation: https://reactflow.dev/examples/edges/

Thanks for your reply, actually i only need bezierpath with variable thickness (like this) and could not figure out how to do that with custom edge.

Yes, could achieve this by implementing a custom edge. In this example you can find an implementation: https://reactflow.dev/examples/edges/

Thanks for your reply, actually i only need bezierpath with variable thickness (like this) and could not figure out how to do that with custom edge.


Card type counts in deck listing incorrect

Describe the bug
In the listing of a deck of mine, the listing shows 20 creature cards and 16 non-creature cards.  The listing for lands is correct, at 24.  Both numbers are off by 3.
To Reproduce
Go to my deck listing:
https://mtgarena.pro/decks/sultai-aggro-132/
Expected behavior
The deck listing should read 23 creatures and 13 non-creatures
Screenshots

Additional context
Since the difference is 3 cards, and the only combination of creatures which I have that matches that number is Hydroid Krasis, I deduce that that is where the issue is.  (Also, as I have reported before, the X part of the spell cost doesn't appear in the thumbnail listing for the card at the left.)

Thank you for your report! Yes, Hydroid Krasis does not display in deck like a Creature. But in Smart Search we can find this card as a Creature. We will investigate this problem.


Invitee: don't wait for bootstrap node

closes #108
closes #109
closes #110

zerotier api is broken for me right now, the wait script is stuck at:
{"type":"internal","message":"Error updating member: json: cannot unmarshal string into Go struct field APIMember.hidden of type bool"}

If I remove hidden: false from the api call in the script it seems to work. Do you see the same?


Log out and "view as other user" z-index not in scope

Bug description
When clicking the username, log out and "view as" are not visible anymore.
Steps to reproduce

Go to eliot 1

Click the username top right

Expected behaviour
Dropdown visible on top

Technical info

OS: MacOS Monterey 12.5.1
Browser:

Safari version 15.6.1 (176<IP_ADDRESS>.16)
Firefox version 104.0 (64-bit)
Chrome version 104.0.5112.101

Seems to be fixed again.


Cannot find type 'Kingfisher' in scope

use xcode 13.4 get error "Cannot find type 'Kingfisher' in scope" why

I guess there is no public type Kingisher in this package. What do you want to do? Any code snippet would be also helpful.


Note addition

As suggested by the user, I have added a note for the user to route to a relevant information page.
Problem: https://github.com/MicrosoftDocs/windows-itpro-docs/issues/8264

@JohanFreelancer9 - kindly do the copy editor review for this PR. Thanks.

Thanks @JohanFreelancer9 - @e0i - Ready to go live.


[liblzma] Add 'd' to debug postfix

This PR adds a 'd' postfix to the lzma debug library to make it easier to distinguish between the release and debug versions

The problem with introducing a d suffix here is that the built-in cmake find scripts will not handle it:
https://github.com/Kitware/CMake/blob/7a06f9973a349ad07d19c8794966a11047790b84/Modules/FindLibLZMA.cmake#L26

Yes good point. I will address this locally instead


Remove groups totally

Issues
CI is currently failing because https://github.com/OpsLevel/terraform-provider-opslevel/pull/146 was merged. That commit updates to the latest opslevel-go, which has group references ripped out.
Kind of related to the deprecate groups in tf ticket, but this PR rips out the code completely.
Changelog

[x] Remove groups references in code
[x] Remove groups references in docs
[x] Make a changie entry

Tophatting

see https://github.com/OpsLevel/terraform-provider-opslevel/pull/149 instead.


Multiple providers alerts

Using puppetserver 4.6.x and puppetagent 1.6.2 on Debian Jessie I always get a warning message
Warning: Found multiple default providers for openldap_database: augeas, olc; using augeas

event with
  class { 'openldap::server':
    ldaps_ifs => ['/'],
    ssl_cert  =>
    ssl_key   =>
    ssl_ca    =>
    provider  => 'olc',
  }

class call.
In fact, after looking inside /etc/ldap it seem the puppet agent use olc not augeas.
By the way...why you still keep the augeas methods ? It's not recommended by openldap

Same issue here with Debian 9 as you can see below:
/var/cache/puppet/lib/puppet/provider/openldap_database/olc.rb:10: warning: key :osfamily is duplicated and overwritten on line 10
Warning: Found multiple default providers for openldap_database: olc, augeas; using olc

Is this puppet module still maintained? This issue is from 2016...

I get those too. Would be very neat if those could be fixed.

These are just warnings though. @jas01 iirc the augeas providers are for older versions which did not support the olc method. @mcanevet are they still needed?

Le 07/09/2018 à 01:12:39-0700, Raphaël Pinson a écrit

These are just warnings though. @jas01 iirc the augeas providers are for older
versions which did not support the olc method. @mcanevet are they still needed?

Well....I don't know if it's needed but openldap 2.4 support OLC and it's
highly recommanded to use OLC and openldap 2.4 was release in....2007...
So after 11 years I would say it's more than enough to just support olc ;-)
Ok I know they always someone who want file configuration...
It's just my opinion...
Regards

@jas01 Agreed. I'll just wait for @mcanevet to make sure we don't need this (hopefully not).

Probably it should be possible to switch default to olc instead of augeas.

@raphink I honestly don't know

Please do not close issue and please update module.

The augeas provider is now gone (#291), this issue should not appear anymore.


[FEATURE] display help message only for relevent command when invalid args

Also, something you could add to this is to display help only for commands that the player has permission for.


Early out for unequal NFC counts in String ==

@swift-ci please benchmark

@swift-ci please test

Performance (x86_64): -O

Improvement
OLD
NEW
DELTA
RATIO

StringSwitch
340
277
-18.5%
1.23x

Code size: -O
Performance (x86_64): -Osize

Regression
OLD
NEW
DELTA
RATIO

FlattenListFlatMap
4053
4494
+10.9%
0.90x (?)

Improvement
OLD
NEW
DELTA
RATIO

StringSwitch
335
276
-17.6%
1.21x

Code size: -Osize
Performance (x86_64): -Onone

Regression
OLD
NEW
DELTA
RATIO

NSError
450
501
+11.3%
0.90x (?)

Code size: -swiftlibs

How to read the data
The tables contain differences in performance which are larger than 8% and
differences in code size which are larger than 1%.
If you see any unexpected regressions, you should consider fixing the
regressions before you merge the PR.
Noise: Sometimes the performance results (not code size!) contain false
alarms. Unexpected regressions which are marked with '(?)' are probably noise.
If you see regressions which you cannot explain you can try to run the
benchmarks again. If regressions still show up, please consult with the
performance team (@eeckstein).

Hardware Overview
  Model Name: Mac mini
  Model Identifier: Macmini8,1
  Processor Name: 6-Core Intel Core i7
  Processor Speed: 3.2 GHz
  Number of Processors: 1
  Total Number of Cores: 6
  L2 Cache (per Core): 256 KB
  L3 Cache: 12 MB
  Memory: 64 GB

@swift-ci please test and merge

Transient failure

@swift-ci please smoke test and merge

@swift-ci please test Windows platform


Navigate to test case code

Hi, I‘m developing a test adapter for z80 assembler.
So far its working fine but I was wondering if ther eis an interface to navigate directly to the source code of the test case.
E.g. double clicking the test case in the test explorer could take you directly to the sources of the test case.
Is something similar available or could I do a feature request.

Yes, this is already possible. All you have to do is set the file and line properties in TestInfo/TestSuiteInfo (see https://github.com/hbenl/vscode-test-adapter-api/blob/5014a25bd0a6f5b383ca7f4da26559f6f9ecd34d/src/index.ts#L223). The Test Explorer will show an icon next to the test or suite for opening its source:

Thanks.


Bump dart version to 2.18.6

Should solve https://github.com/fluttertools/fvm/issues/474

@leoafarias could you please set me as a maintainer?
If you ain't got no free minute to hit the "merge" button, I can do it for you.

@leoafarias could you please set me as a maintainer? If you ain't got no free minute to hit the "merge" button, I can do it for you.

Sorry for the delay, the action never completed, I am running again, and will merge

@subzero911 We will have to see why this window CI is not finishing before merging

there's something wrong with Windows platform

Don't think this is a proper fix, to what we are seeing on #474, will close this for now.


fix: no colon (:) in dir-name for push

was broken by: https://github.com/axonivy/github-repo-manager/pull/162

:+1:


allow no-restricted-disable to display customize message

It would be helpful if we can customize the error message of no-restricted-disable
Right now the error message is:
Disabling '{{ruleId}}' is not allowed.
Instead we can have something such as
Disabling '{{ruleId}}' is not allowed. (https://typescript-eslint.io/rules/no-explicit-any)

Any progress on this? I feel this is indeed needed

Hi @vicai!
Since this repo is unmaintained, you might want to re-open this issue in the @eslint-community fork https://github.com/eslint-community/eslint-plugin-eslint-comments
For more info about why we created this organization, you can read https://eslint.org/blog/2023/03/announcing-eslint-community-org


Adams changes

@coolprobn I think this should be correct but if I've accidentally removed and re added any of your work please let me know!

@adam


singleSelect doesn't work as it should

Hi,
this is my setup:
pickerController.assetType = .AllPhotos
pickerController.singleSelect = true
pickerController.didSelectAssets = { (assets: [DKAsset]) in
    print(assets)
}

now when picker shows up, i select image, and it automatically hides picker, then when i open same picker, is shows me that selected image, and when i click on another image, is doesn't deselect first one, it just behave like multiple selection, and prints me 2 assets:
<DKImagePickerController.DKAsset: 0x7ffde373aa40>, <DKImagePickerController.DKAsset: 0x7ffde378cb90>]

Same is happening when i do this again, picker shows up, and i see 2 images selected, and i select on another image, it prints me 3 assets.
is this bug or?

Sorry for the late reply...
Fixed in the latest version 3.3.4.


Change existing polygons

Possibility to edit polygon based on id
<ImageAnnotationCanvas
  ...
  editPolygonWithId={"some-uuid"}
/>

The id passed should open the ui for editing the polygon with the same id.

This is now possible through canvasActions api


allow 'run' command to pass --host/-h and --port/-p to invenio

May be of use in respect of #97 - only accepts host and port, but these are probably the most common things to tweak?

Coverage increased (+0.08%) to 86.576% when pulling 6ba7ee7ab89ddbdca47cb76f253b276c8b7df4ed on data-futures:master into b62b21ab9182eed2439ae743b92a054224521eae on inveniosoftware:master.

Coverage increased (+0.08%) to 86.576% when pulling 6ba7ee7ab89ddbdca47cb76f253b276c8b7df4ed on data-futures:master into b62b21ab9182eed2439ae743b92a054224521eae on inveniosoftware:master.

Coverage increased (+0.08%) to 86.576% when pulling 6ba7ee7ab89ddbdca47cb76f253b276c8b7df4ed on data-futures:master into b62b21ab9182eed2439ae743b92a054224521eae on inveniosoftware:master.


Crowdstrike API URL Changes

Hi Zach,
I was setting up a new instance of Crowdstrike and noticed there is now more than one base URL in use.
In addition to https://api.crowdstrike.com/..." there is now also "https://api.us-2.crowdstrike.com/...", would it be possible to add this as an input to the download recipe?

Opened a PR with a functional solve: https://github.com/autopkg/MLBZ521-recipes/pull/22

Opened a PR with a functional solve: https://github.com/autopkg/MLBZ521-recipes/pull/22

#22 has been merged with 8bd29e9.
I greatly apologize for the delay getting this merged.
Thanks for the PR!.


doc: net: Minor fixes to BSD socket documentation

Some clarifications to BSD socket descriptions. Also added
rendering hints for some strings.
Signed-off-by: Jukka Rissanen<EMAIL_ADDRESS>

Codecov Report

Merging #14165 into master will increase coverage by 0.03%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master   #14165      +/-   ##
==========================================
+ Coverage   52.68%   52.71%   +0.03%
==========================================
  Files         307      307
  Lines       45473    45473
  Branches    10530    10530
==========================================
+ Hits        23956    23971      +15
+ Misses      16640    16628      -12
+ Partials     4877     4874       -3

Impacted Files
Coverage Δ

arch/posix/core/posix_core.c
90.9% <0%> (-1.02%)
:arrow_down:

subsys/testsuite/ztest/src/ztest.c
72.72% <0%> (+7.43%)
:arrow_up:

subsys/testsuite/ztest/include/ztest_assert.h
77.77% <0%> (+38.88%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 32caf24...d59332f. Read the comment docs.

Could this be merged, I see no issues in the text?

Could we merge this?


Create opgs.txt

Oakwood Park Grammar School offers a 2-year course in computer science for higher education which can be found at https://www.opgs.org/page/?title=Computing&pid=72

@wifitecture First stage of verification passed, official domain is opgs.org as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@wifitecture Thank you for your patience while waiting for a review and processing your request. Pull request merged.


AttributeError: 'NoneType' object has no attribute 'run'

Hello wassname:
I got a problem with your code, when i run your code of tensorforce-PPO-IEET.ipynb, it got a mistake: AttributeError: 'NoneType' object has no attribute 'run'.  The detail shows below:
episodes=1 steps=environment_test.gym.env.env.src.steps*episodes runner_test.run(     episodes=episodes,     timesteps=steps,     deterministic=True,     episode_finished=episode_finished, )
--------------------------------error message------------------------------
AttributeError                            Traceback (most recent call last)
 in
5     timesteps=steps,
6     deterministic=True,
----> 7     episode_finished=episode_finished,
8 )
~\Anaconda3\envs\ppo\lib\site-packages\tensorforce\execution\runner.py in run(self, timesteps, episodes, max_episode_timesteps, deterministic, episode_finished)
89         self.start_time = time.time()
90
---> 91         self.agent.reset()
92
93         self.episode = self.agent.episode
~\Anaconda3\envs\ppo\lib\site-packages\tensorforce\agents\agent.py in reset(self)
113         timestep counter, internal states, and resets preprocessors.
114         """
--> 115         self.episode, self.timestep, self.next_internals = self.model.reset()
116         self.current_internals = self.next_internals
117
~\Anaconda3\envs\ppo\lib\site-packages\tensorforce\models\model.py in reset(self)
1232         """
1233         # TODO preprocessing reset call moved from agent
-> 1234         episode, timestep = self.monitored_session.run(fetches=(self.episode, self.timestep))
1235         return episode, timestep, list(self.internals_init)
1236
~\Anaconda3\envs\ppo\lib\site-packages\tensorflow\python\training\monitored_session.py in run(self, fetches, feed_dict, options, run_metadata)
516       Same as tf.Session.run().
517     """
--> 518     return self._sess.run(fetches,
519                           feed_dict=feed_dict,
520                           options=options,
AttributeError: 'NoneType' object has no attribute 'run'
I don't know what's wrong with it, the packages that i installed are entirely consistent with the requirements.txt。Would you please help me?

I found the requirements.txt has a mistake. If you use tensorflow-cpu, the version of tensorflow should be above 1.3.0, otherwise you would get a mistake at the trainging part of tensorforce-PPO-IEET.ipynb. And I found tensorflow version1.5.0 or higher could work through the Training part of this code(tensorforce-PPO-IEET.ipynb), however, no matter how many times i try, i will get a AtrributeError  at the Testing part just shows above.
I don't know what's wrong with it, it almost confused me. Nonetheless, thank wassname to offer this  intelligent code, i learn a lot from it.

@watermeloncq Have you managed to find a solution? I have encountered the same error whilst trying to use this repo for a masters dissertation.

@watermeloncq Have you managed to find a solution? I have encountered the same error whilst trying to use this repo for a masters dissertation.

I haven't find a solution about this.


upload formData instead of fileUri

am requesting if there is a way take advantage of the background upload, instead of upload passing fileUri, we can just pass in formData which we have append all data we want to send to the backend.
am currently using axios, but there is no way i can leverage the backrgound upload
const result = await axios({ url: "/api/user/post", method: "POST", data: formData, headers: { 'Content-Type': 'multipart/form-data' } }, onUploadProgress);
const uploadResult = await backgroundUpload(
url,
fileUrl,
{ uploadType: UploadType.MULTIPART, httpMethod: 'POST', headers },
(written, total) => {
console.log(written, total);
}
);

You can submit form data something like this :
export const uploadBackground = async (url: string, file: string, data: any) => {
return backgroundUpload(CONFIG.API_URL + url, file, {
uploadType: UploadType.MULTIPART,
httpMethod: UploaderHttpMethod.POST,
fieldName: 'myFile',
mimeType: getMimeType(file),
parameters: data, // This is nothing but your other data apart from image
headers: {
Authorization: 'Bearer ' + Storage.get('TOKEN')
}
});
};

Is there any way to upload multiple files (videos and images)?
Along with data as parameters