conduitframework / conduit_sqs

MIT License
11 stars 8 forks source link

Missing handle_info for :ssl_closed? #3

Closed mattias-lundell closed 5 years ago

mattias-lundell commented 5 years ago

I'm experiencing a lot of the following entry in my log files. According to the log entries, there is a missing handle_info for :ssl_closed case.

Elixir.FunctionClauseError no function clause matches 
    lib/conduit_sqs/poller.ex:68 ConduitSQS.Poller.handle_info({:ssl_closed, {:sslsocket, {:gen_tcp, #Port<0.359>, :tls_connection, :undefined}, [#PID<0.2394.0>, #PID<0.2393.0>]}}, %ConduitSQS.Poller.State{adapter_opts: [adapter: ConduitSQS], broker: Cachalot.SQS.Broker, demand: 6, queue: "cachalot-staging-legacy-files", subscriber_opts: [from: "cachalot-staging-legacy-files", worker_pool_size: 4, max_demand: 1, min_demand: 0, base_backoff_in_ms: 100]})
    lib/gen_stage.ex:2188 GenStage.noreply_callback/3
    gen_server.erl:637 :gen_server.try_dispatch/4
    gen_server.erl:711 :gen_server.handle_msg/6
    proc_lib.erl:259 :proc_lib.wake_up/3

version 0.2.6 of conduit_sqs.

blatyo commented 5 years ago

Appears to be related to these:

https://github.com/ex-aws/ex_aws/issues/533 https://github.com/benoitc/hackney/issues/464

Can you update your versions of ex_aws and hackney and see if it persists.

mattias-lundell commented 5 years ago

For reference. I ended up giving up on hackney for the moment, did try a number of different dependency version combinations before I decided to use something else. I ended up with a homebrewed httpclient using ibrowse.

0xadada commented 5 years ago

I'm seeing a similar problem:

09:48:30.581 [info]  GenStage consumer #PID<0.332.0> is stopping after receiving cancel from producer #PID<0.325.0> with reason: {:function_clause, [{ConduitSQS.Poller, :handle_info, [{:ssl_closed, {:sslsocket, {:gen_tcp, #Port<0.51>, :tls_connection, :undefined}, [#PID<0.376.0>, #PID<0.375.0>]}}, %ConduitSQS.Poller.State{adapter_opts: [adapter: ConduitSQS, region: "us-east-1", access_key_id: [{:system, "ACCESS_KEY_ID"}, {:awscli, "default", 480}, :role_arn], secret_access_key: [{:system, "SECRET_ACCESS_KEY"}, {:awscli, "default", 480}, :role_arn], session_token: [{:system, "SESSION_TOKEN"}, {:awscli, "default", 480}, :role_arn]], broker: ASINChangeQueue.Broker, demand: 7000, queue: "580682394260/Ron", subscriber_opts: [from: "123/abc"]}], [file: 'lib/conduit_sqs/poller.ex', line: 68]}, {GenStage, :noreply_callback, 3, [file: 'lib/gen_stage.ex', line: 2188]}, {:gen_server, :try_dispatch, 4, [file: 'gen_server.erl', line: 637]}, {:gen_server, :handle_msg, 6, [file: 'gen_server.erl', line: 711]}, {:proc_lib, :wake_up, 3, [file: 'proc_lib.erl', line: 259]}]}

09:48:30.582 [error] GenServer {ASINChangeQueue.Broker.Adapter.Registry, {ASINChangeQueue.Broker.Adapter.Worker, :change, 4}} terminating
** (FunctionClauseError) no function clause matching in ConduitSQS.Poller.handle_info/2
    (conduit_sqs) lib/conduit_sqs/poller.ex:68: ConduitSQS.Poller.handle_info({:ssl_closed, {:sslsocket, {:gen_tcp, #Port<0.51>, :tls_connection, :undefined}, [#PID<0.376.0>, #PID<0.375.0>]}}, %ConduitSQS.Poller.State{adapter_opts: [adapter: ConduitSQS, region: "us-east-1", access_key_id: [{:system, "ACCESS_KEY_ID"}, {:awscli, "default", 480}, :role_arn], secret_access_key: [{:system, "SECRET_ACCESS_KEY"}, {:awscli, "default", 480}, :role_arn], session_token: [{:system, "SESSION_TOKEN"}, {:awscli, "default", 480}, :role_arn]], broker: ASINChangeQueue.Broker, demand: 7000, queue: "123/abc", subscriber_opts: [from: "580682394260/Ron"]})
    (gen_stage) lib/gen_stage.ex:2188: GenStage.noreply_callback/3
    (stdlib) gen_server.erl:637: :gen_server.try_dispatch/4
    (stdlib) gen_server.erl:711: :gen_server.handle_msg/6
    (stdlib) proc_lib.erl:259: :proc_lib.wake_up/3
Last message: {:DOWN, #Reference<0.475897680.179044353.56047>, :process, #PID<0.325.0>, {:function_clause, [{ConduitSQS.Poller, :handle_info, [{:ssl_closed, {:sslsocket, {:gen_tcp, #Port<0.51>, :tls_connection, :undefined}, [#PID<0.376.0>, #PID<0.375.0>]}}, %ConduitSQS.Poller.State{adapter_opts: [adapter: ConduitSQS, region: "us-east-1", access_key_id: [{:system, "ACCESS_KEY_ID"}, {:awscli, "default", 480}, :role_arn], secret_access_key: [{:system, "SECRET_ACCESS_KEY"}, {:awscli, "default", 480}, :role_arn], session_token: [{:system, "SESSION_TOKEN"}, {:awscli, "default", 480}, :role_arn]], broker: ASINChangeQueue.Broker, demand: 7000, queue: "580682394260/Ron", subscriber_opts: [from: "580682394260/Ron"]}], [file: 'lib/conduit_sqs/poller.ex', line: 68]}, {GenStage, :noreply_callback, 3, [file: 'lib/gen_stage.ex', line: 2188]}, {:gen_server, :try_dispatch, 4, [file: 'gen_server.erl', line: 637]}, {:gen_server, :handle_msg, 6, [file: 'gen_server.erl', line: 711]}, {:proc_lib, :wake_up, 3, [file: 'proc_lib.erl', line: 259]}]}}
State: %ConduitSQS.Worker.State{adapter_opts: [adapter: ConduitSQS, region: "us-east-1", access_key_id: [{:system, "ACCESS_KEY_ID"}, {:awscli, "default", 480}, :role_arn], secret_access_key: [{:system, "SECRET_ACCESS_KEY"}, {:awscli, "default", 480}, :role_arn], session_token: [{:system, "SESSION_TOKEN"}, {:awscli, "default", 480}, :role_arn], from: "580682394260/Ron"], broker: ASINChangeQueue.Broker, name: :change}

v0.2.6

blatyo commented 5 years ago

I'll see if I can find a work around until hackney resolves the issue.

blatyo commented 5 years ago

This is resolved with v0.2.7