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

Implement clustered web-session handling #7529

Closed
rymsha opened this issue Oct 10, 2019 · 14 comments
Closed

Implement clustered web-session handling #7529

rymsha opened this issue Oct 10, 2019 · 14 comments
Assignees

Comments

@rymsha
Copy link
Contributor

rymsha commented Oct 10, 2019

a second attempt of #6229

rymsha added a commit that referenced this issue Oct 10, 2019
@rymsha rymsha self-assigned this Oct 11, 2019
rymsha added a commit that referenced this issue Oct 11, 2019
@rymsha
Copy link
Contributor Author

rymsha commented Oct 14, 2019

got hit by Ignite bug https://issues.apache.org/jira/browse/IGNITE-11662
Solved it somewhat like described in https://issues.apache.org/jira/browse/IGNITE-11351

rymsha added a commit that referenced this issue Oct 15, 2019
rymsha added a commit that referenced this issue Oct 15, 2019
rymsha added a commit that referenced this issue Oct 15, 2019
rymsha added a commit that referenced this issue Oct 16, 2019
rymsha added a commit that referenced this issue Oct 17, 2019
rymsha added a commit that referenced this issue Oct 17, 2019
rymsha added a commit that referenced this issue Oct 21, 2019
rymsha added a commit that referenced this issue Oct 21, 2019
rymsha added a commit that referenced this issue Oct 22, 2019
rymsha added a commit that referenced this issue Oct 22, 2019
rymsha added a commit that referenced this issue Oct 22, 2019
rymsha added a commit that referenced this issue Oct 22, 2019
rymsha added a commit that referenced this issue Oct 22, 2019
rymsha added a commit that referenced this issue Oct 22, 2019
rymsha added a commit that referenced this issue Oct 22, 2019
rymsha added a commit that referenced this issue Oct 22, 2019
rymsha added a commit that referenced this issue Oct 23, 2019
@rymsha
Copy link
Contributor Author

rymsha commented Oct 23, 2019

Jetty wants own classloader during deserialization. Fixed it by wrapping SessionData and controlling deerialisation.

@rymsha
Copy link
Contributor Author

rymsha commented Oct 23, 2019

OSGi bundle where jetty de-serialisation happens don't import classes needed (obviously). Workaround: Dynamic-Import

@rymsha
Copy link
Contributor Author

rymsha commented Oct 23, 2019

XP has distinct ports for different servlets. But only one SessionStore. This doesn't work as SessionStore instance must not be shared. Refactored to have SessionStoreFactory

@rymsha
Copy link
Contributor Author

rymsha commented Oct 23, 2019

Unavailable Elasticsearch cluster (In RED state) excludes node from Ignite cluster as well. This generally means RED state of Elasticsearch varnish all data stored Inn Ignite :)
Refactored that part, so Ignite cluster is not stopped if Elasticsearch is down.

@rymsha
Copy link
Contributor Author

rymsha commented Oct 23, 2019

Extracted Ignite to own activator. To be able to control it's lifecycle regardless of "cluster". For instance, don't start it on some nodes
Now can be use in clientMode

@rymsha
Copy link
Contributor Author

rymsha commented Oct 23, 2019

ClusterManager is written in a way that it tend to hang if first available Cluster is not Elasticsearch.
Happens very often when Ignite cluster is there
Slightly refactored ClusterManager so it doesn't wait for Elasticsearch, just starts a scheduler.

@rymsha
Copy link
Contributor Author

rymsha commented Oct 23, 2019

JettyActivator written in a way that it start without Dispatchers. And all dynamically added ones will fail.
Also WebsocketActivator assumes Jetty always has XP dispatcher, which is not true during reconfiguration
Refactored JettyActivator so it only activities when all DispatchServlets in-place. WebsocketActivator gets its XP ServletContext registered by JettyActivator.

@rymsha
Copy link
Contributor Author

rymsha commented Oct 23, 2019

Another issue deserves own bug report.in cluster application stopping/stopped events come to browsers even when only one node in a cluster stopped. This should ugly "connection lost" in ContentStudio, but actually everything is functional
Reported #7589

@rymsha
Copy link
Contributor Author

rymsha commented Oct 23, 2019

SessionWrapper was holding reference indefinitely to HttpSession leaving no room for proper handling of invalidated by timeout sessions. See how bad it is here jetty/jetty.project#3913 (comment)
Refactored to rely on Servlet Container

@rymsha
Copy link
Contributor Author

rymsha commented Oct 23, 2019

JCache now version 1.1.1 to simplify OSGi bundling

@rymsha
Copy link
Contributor Author

rymsha commented Oct 25, 2019

Need to understand how WebSockets are affected jetty/jetty.project#3981

Also, probably require to update Jetty again jetty/jetty.project#3913 (Updated Jetty now #7579)

rymsha added a commit that referenced this issue Oct 27, 2019
write missing tests for the only place where okhhtp was used in production
rymsha added a commit that referenced this issue Oct 27, 2019
write missing tests for the only place where okhhtp was used in production
rymsha added a commit that referenced this issue Oct 28, 2019
rymsha added a commit that referenced this issue Oct 28, 2019
rymsha added a commit that referenced this issue Oct 28, 2019
rymsha added a commit that referenced this issue Oct 28, 2019
rymsha added a commit that referenced this issue Oct 28, 2019
rymsha added a commit that referenced this issue Oct 28, 2019
rymsha added a commit that referenced this issue Oct 28, 2019
rymsha added a commit that referenced this issue Oct 28, 2019
rymsha added a commit that referenced this issue Oct 28, 2019
rymsha added a commit that referenced this issue Oct 28, 2019
rymsha added a commit that referenced this issue Oct 28, 2019
rymsha added a commit that referenced this issue Oct 28, 2019
rymsha added a commit that referenced this issue Oct 28, 2019
rymsha added a commit that referenced this issue Oct 28, 2019
rymsha added a commit that referenced this issue Oct 28, 2019
rymsha added a commit that referenced this issue Oct 28, 2019
rymsha added a commit that referenced this issue Oct 28, 2019
rymsha added a commit that referenced this issue Nov 5, 2019
rymsha added a commit that referenced this issue Jan 5, 2020
rymsha added a commit that referenced this issue Jan 5, 2020
@rymsha
Copy link
Contributor Author

rymsha commented Mar 11, 2020

incorporated into #7921

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

No branches or pull requests

1 participant