Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ERROR] name=cloudwalk, domain=cloudwalk#run_callbacks: Broken pipe (Errno::EPIPE) #343

Open
kumarsukhani opened this issue Sep 4, 2020 · 3 comments
Labels

Comments

@kumarsukhani
Copy link

Many times I am getting Broken pipe error because of which the msg sent by the server is not received in Slack channel. How can I fix this issue?

Stack Trace:

 /opt/ruby/lib/ruby/2.5.0/openssl/buffering.rb:388:in `syswrite_nonblock' 
 /opt/ruby/lib/ruby/2.5.0/openssl/buffering.rb:388:in `write_nonblock' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/async-io-1.30.0/lib/async/io/generic.rb:216:in `async_send' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/async-io-1.30.0/lib/async/io/generic.rb:62:in `block in wrap_blocking_method' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/async-io-1.30.0/lib/async/io/generic.rb:156:in `write' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/async-websocket-0.8.0/lib/async/websocket/connection.rb:93:in `write' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/websocket-driver-0.7.3/lib/websocket/driver/hybi.rb:223:in `send_frame' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/websocket-driver-0.7.3/lib/websocket/driver/hybi.rb:186:in `frame' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/websocket-driver-0.7.3/lib/websocket/driver.rb:122:in `text' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/slack-ruby-client-0.15.1/lib/slack/real_time/socket.rb:21:in `send_data' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/slack-ruby-client-0.15.1/lib/slack/real_time/client.rb:213:in `send_json' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/slack-ruby-client-0.15.1/lib/slack/real_time/api/message.rb:17:in `message' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/slack-ruby-bot-0.16.0/lib/slack-ruby-bot/client.rb:62:in `say' 
 /workspace/slack-staging/bot.rb:67:in `block in toggle_heroku' 
 /workspace/slack-staging/bot.rb:55:in `each' 
 /workspace/slack-staging/bot.rb:55:in `with_index' 
 /workspace/slack-staging/bot.rb:55:in `toggle_heroku' 
 /workspace/slack-staging/commands/paas.rb:22:in `perform' 
 /workspace/slack-staging/commands/paas.rb:12:in `block in <class:PaaS>' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/slack-ruby-bot-0.16.0/lib/slack-ruby-bot/commands/base.rb:102:in `call_command' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/slack-ruby-bot-0.16.0/lib/slack-ruby-bot/commands/base.rb:67:in `block in invoke' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/slack-ruby-bot-0.16.0/lib/slack-ruby-bot/commands/base.rb:42:in `each_pair' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/slack-ruby-bot-0.16.0/lib/slack-ruby-bot/commands/base.rb:42:in `invoke' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/slack-ruby-bot-0.16.0/lib/slack-ruby-bot/hooks/message.rb:12:in `block in call' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/slack-ruby-bot-0.16.0/lib/slack-ruby-bot/hooks/message.rb:12:in `each' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/slack-ruby-bot-0.16.0/lib/slack-ruby-bot/hooks/message.rb:12:in `detect' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/slack-ruby-bot-0.16.0/lib/slack-ruby-bot/hooks/message.rb:12:in `call' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/slack-ruby-bot-0.16.0/lib/slack-ruby-bot/hooks/set.rb:35:in `block (2 levels) in register_callback' 
 /opt/ruby/lib/ruby/2.5.0/set.rb:338:in `each_key' 
 /opt/ruby/lib/ruby/2.5.0/set.rb:338:in `each' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/slack-ruby-bot-0.16.0/lib/slack-ruby-bot/hooks/set.rb:34:in `block in register_callback' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/slack-ruby-client-0.15.1/lib/slack/real_time/client.rb:270:in `block in run_callbacks' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/slack-ruby-client-0.15.1/lib/slack/real_time/client.rb:269:in `each' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/slack-ruby-client-0.15.1/lib/slack/real_time/client.rb:269:in `run_callbacks' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/slack-ruby-client-0.15.1/lib/slack/real_time/client.rb:247:in `dispatch' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/slack-ruby-client-0.15.1/lib/slack/real_time/client.rb:93:in `block (2 levels) in run_loop' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/websocket-driver-0.7.3/lib/websocket/driver/event_emitter.rb:39:in `block in emit' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/websocket-driver-0.7.3/lib/websocket/driver/event_emitter.rb:38:in `each' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/websocket-driver-0.7.3/lib/websocket/driver/event_emitter.rb:38:in `emit' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/websocket-driver-0.7.3/lib/websocket/driver/hybi.rb:404:in `emit_message' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/websocket-driver-0.7.3/lib/websocket/driver/hybi.rb:387:in `emit_frame' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/websocket-driver-0.7.3/lib/websocket/driver/hybi.rb:118:in `parse' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/websocket-driver-0.7.3/lib/websocket/driver/client.rb:63:in `parse' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/async-websocket-0.8.0/lib/async/websocket/connection.rb:63:in `next_event' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/slack-ruby-client-0.15.1/lib/slack/real_time/concurrency/async.rb:102:in `run_loop' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/slack-ruby-client-0.15.1/lib/slack/real_time/concurrency/async.rb:78:in `connect!' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/slack-ruby-client-0.15.1/lib/slack/real_time/client.rb:84:in `run_loop' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/slack-ruby-client-0.15.1/lib/slack/real_time/concurrency/async.rb:50:in `block (2 levels) in start_reactor' 
 /layers/google.ruby.bundle/gems/.bundle/gems/ruby/2.5.0/gems/async-1.26.2/lib/async/task.rb:258:in `block in make_fiber' 
 E, [2020-09-04T09:58:11.045696 #15] ERROR -- #<Async::Task:0x14dceab1a400 connected to #<Addrinfo: 18.229.250.79:443 TCP (cerberus-xxxx.lb.slack-msgs.com)> [fd=21] (running)>: SSL_write: bad length 
 W, [2020-09-04T09:58:11.045821 #15]  WARN -- id=T02RAEMPK, name=cloudwalk, domain=cloudwalk: is offline 
 D, [2020-09-04T09:58:11.045852 #15] DEBUG -- : id=T02RAEMPK, name=cloudwalk, domain=cloudwalk#restart_async 
 D, [2020-09-04T09:58:11.045923 #15] DEBUG -- id=T02RAEMPK, name=cloudwalk, domain=cloudwalk#run_loop: NilClass 
 I, [2020-09-04T09:58:11.046312 #15]  INFO -- request: POST https://slack.com/api/rtm.start 
 I, [2020-09-04T09:58:11.046368 #15]  INFO -- request: Accept: "application/json; charset=utf-8" 
 User-Agent: "Slack Ruby Client/0.15.1" 
 Content-Type: "application/x-www-form-urlencoded" 
 I, [2020-09-04T09:58:11.752609 #15]  INFO -- response: Status 200 
 I, [2020-09-04T09:58:11.752747 #15]  INFO -- response: date: "Fri, 04 Sep 2020 09:58:11 GMT" 
 server: "Apache" 
 x-slack-req-id: "c415261f8e009a957c068e07b49161ab" 
 x-oauth-scopes: "identify,bot:basic" 
 x-accepted-oauth-scopes: "rtm:stream,client" 
 access-control-expose-headers: "x-slack-req-id, retry-after" 
 x-slack-backend: "r" 
 x-content-type-options: "nosniff" 
 expires: "Mon, 26 Jul 1997 05:00:00 GMT" 
 cache-control: "private, no-cache, no-store, must-revalidate" 
 x-xss-protection: "0" 
 vary: "Accept-Encoding" 
 pragma: "no-cache" 
 access-control-allow-headers: "slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, x-b3-sampled, x-b3-flags" 
 strict-transport-security: "max-age=31536000; includeSubDomains; preload" 
 referrer-policy: "no-referrer" 
 access-control-allow-origin: "*" 
 transfer-encoding: "chunked" 
 content-type: "application/json; charset=utf-8" 
 x-via: "haproxy-www-i59g,haproxy-edge-gru-4s5b" 

@dblock
Copy link
Collaborator

dblock commented Sep 4, 2020

That's generally a broken RTM connection. You could start by replacing say with a chat_postMessage to see if that helps?

@dblock dblock added the bug? label Sep 4, 2020
@kumarsukhani
Copy link
Author

@dblock : Thanks. It worked :)
Sorry I am using slack-ruby-bot project. Should I move this issue on that project?

@dblock
Copy link
Collaborator

dblock commented Sep 8, 2020

ove

Sure. I don't think it's a bug though or not sure what we should do with it. The RTM connection is not 100% reliable, and just like with any connection, it's on the client to retry in case of failure or for us to build retry into the client.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants