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

ActionCable should not raise when a connection is already open #27416

Merged
merged 1 commit into from
Jan 9, 2017

Conversation

itsmeduncan
Copy link
Contributor

ActionCable was throwing a "Existing connection must be closed before
opening" exception which was being picked up as a production issue in
our error monitoring software. Since this happens pretty often on any
device that allows the browser to sleep (mobile) this error was getting
triggered often.

This change removes the exception, but keeps logging the occurrence. We
now return false to let the caller now that open failed.

@rails-bot
Copy link

Thanks for the pull request, and welcome! The Rails team is excited to review your changes, and you should hear from @schneems (or someone else) soon.

If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.

This repository is being automatically checked for code quality issues using Code Climate. You can see results for this analysis in the PR status below. Newly introduced issues should be fixed before a Pull Request is considered ready to review.

Please see the contribution instructions for more information.

@itsmeduncan
Copy link
Contributor Author

itsmeduncan commented Dec 20, 2016

The discussion related to this change is #26503. Happy for some guidance on how to unit test this change.

@maclover7
Copy link
Contributor

r? @javan

@rails-bot rails-bot assigned javan and unassigned schneems Dec 20, 2016
@itsmeduncan itsmeduncan force-pushed the remove-throw-from-action-cable branch 2 times, most recently from ae3f597 to eb468fb Compare December 27, 2016 20:38
@itsmeduncan
Copy link
Contributor Author

@javan Anything else needed here?

@javan
Copy link
Contributor

javan commented Jan 6, 2017

Mind adding a test? This change should fail without your change and pass with it:

--- a/actioncable/test/javascript/src/unit/consumer_test.coffee
+++ b/actioncable/test/javascript/src/unit/consumer_test.coffee
@@ -2,9 +2,12 @@
 {consumerTest} = ActionCable.TestHelpers
 
 module "ActionCable.Consumer", ->
-  consumerTest "#connect", connect: false, ({consumer, server, done}) ->
-    server.on("connection", done)
-    consumer.connect()
+  consumerTest "#connect", connect: false, ({consumer, server, assert, done}) ->
+    server.on "connection", ->
+      assert.equal consumer.connect(), false
+      done()
+
+    assert.equal consumer.connect(), true

@itsmeduncan itsmeduncan force-pushed the remove-throw-from-action-cable branch from eb468fb to 9baadfc Compare January 6, 2017 17:49
ActionCable was throwing a "Existing connection must be closed before
opening" exception which was being picked up as a production issue in
our error monitoring software. Since this happens pretty often on any
device that allows the browser to sleep (mobile) this error was getting
triggered often.

This change removes the exception, but keeps logging the occurrence. We
now return `false` to let the caller now that `open` failed.
@itsmeduncan itsmeduncan force-pushed the remove-throw-from-action-cable branch from 9baadfc to 23e3e2b Compare January 6, 2017 17:50
@matthewd matthewd merged commit 2b555ee into rails:master Jan 9, 2017
@itsmeduncan
Copy link
Contributor Author

@javan What release of Rails was/will this be in?

@javan
Copy link
Contributor

javan commented Mar 29, 2017

You can view the commit to see: 23e3e2b

screen shot 2017-03-29 at 12 08 10 pm

@itsmeduncan
Copy link
Contributor Author

Thanks! Looking forward to these errors being a little quieter.

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

Successfully merging this pull request may close these issues.

None yet

6 participants