Project

General

Profile

Task #3632

Have to hit refresh on the identity manager before it renders anything

Added by Roger Dahl over 11 years ago. Updated over 9 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Ben Leinfelder
Category:
d1_portal_servlet
Target version:
-
Start date:
2013-02-27
Due date:
% Done:

100%

Estimated time:
0.00 h
Milestone:
None
Product Version:
1.2
Story Points:
Sprint:

Description

When I go to the identity manager at

https://cn.dataone.org/portal/

I first get a blank page. When I then do a refresh (F5), the page renders.

Happens in both Firefox and Chrome.

History

#1 Updated by Ben Leinfelder over 11 years ago

This happens to me, too, and I haven't figured out why. It's very odd and I hope it doesn't have something to do with the hazelcast session sharing we have running there.

#2 Updated by Ben Leinfelder over 11 years ago

Mar 1, 2013 5:03:00 PM com.hazelcast.web.WebFilter
INFO: Created new session with id: HZBA2CDDB352DC4983BD87A05457735E10
Mar 1, 2013 5:03:00 PM com.hazelcast.web.WebFilter
INFO: 1 is sessions.size and originalSessions.size: 1
Mar 1, 2013 5:03:00 PM org.apache.jasper.runtime.JspFactoryImpl internalGetPageContext
SEVERE: Exception initializing page context
java.lang.NoSuchMethodError: javax.servlet.http.Cookie.setHttpOnly(Z)V
at com.hazelcast.web.WebFilter.addSessionCookie(WebFilter.java:558)
at com.hazelcast.web.WebFilter.createNewSession(WebFilter.java:216)
at com.hazelcast.web.WebFilter.access$800(WebFilter.java:38)
at com.hazelcast.web.WebFilter$RequestWrapper.getSession(WebFilter.java:352)
at com.hazelcast.web.WebFilter$RequestWrapper.getSession(WebFilter.java:311)
at org.apache.jasper.runtime.PageContextImpl._initialize(PageContextImpl.java:146)
at org.apache.jasper.runtime.PageContextImpl.initialize(PageContextImpl.java:124)
at org.apache.jasper.runtime.JspFactoryImpl.internalGetPageContext(JspFactoryImpl.java:107)
at org.apache.jasper.runtime.JspFactoryImpl.getPageContext(JspFactoryImpl.java:63)
at org.apache.jsp.index_jsp._jspService(index_jsp.java:44)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.hazelcast.web.WebFilter.doFilter(WebFilter.java:598)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:558)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:769)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:698)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:891)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
at java.lang.Thread.run(Thread.java:662)

#3 Updated by Ben Leinfelder over 11 years ago

This is a version mismatch between servlet-api 2.3 and 3.0.1 Hazelcast-wm 2.4.1 depends on the newer servlet-api, whereas libclient includes JCS which depends on servlet-api-2.3. Perhaps JCS will still function with the newer servlet-api and we can just force the use of that version to get around this mismatch.

#4 Updated by Ben Leinfelder over 11 years ago

I could try excluding the 2.3 jar in the d1-portal-servlet project and see how that works out, but running on Tomcat 6 does not include servlet 3.0 support (that is Tomcat 7). We might be hosed here...

#5 Updated by Ben Leinfelder over 11 years ago

I am going to down-grade Hazelcast to v2.3.1 until we run on tomcat 7 that supports the servlet-api-3.0 spec.

Here was the 2.4 change that forced the spec upgrade:
https://github.com/hazelcast/hazelcast/commit/47f800d73017204b12455dac87d2accfa55fd6a2

#6 Updated by Ben Leinfelder over 11 years ago

  • Status changed from New to Closed
  • translation missing: en.field_remaining_hours set to 0.0

That worked - I think this use of hazelcast will not interfere with the CN's other uses of it and the version difference will not cause issues.

#7 Updated by Ben Leinfelder over 11 years ago

  • Estimated time set to 0.00
  • Status changed from Closed to In Progress

after a weekend has passed, I now see this when attempting the portal:

com.hazelcast.core.OperationTimeoutException: [ATOMIC_NUMBER_GET_AND_SET] Redo threshold[90] exceeded! Last redo cause: REDO_MEMBER_UNKNOWN, Name: c:__hz_AtomicLongMap
com.hazelcast.impl.BaseManager$ResponseQueueCall.getRedoAwareResult(BaseManager.java:649)
com.hazelcast.impl.BaseManager$ResponseQueueCall.getResult(BaseManager.java:636)
com.hazelcast.impl.BaseManager$RequestBasedCall.getResultAsIs(BaseManager.java:486)
com.hazelcast.impl.BaseManager$ResponseQueueCall.getResultAsIs(BaseManager.java:555)
com.hazelcast.impl.ConcurrentMapManager$MAtomicNumber.doAtomicOp(ConcurrentMapManager.java:1439)
com.hazelcast.impl.ConcurrentMapManager$MAtomicNumber.getAndSet(ConcurrentMapManager.java:1423)
com.hazelcast.impl.AtomicNumberProxyImpl$AtomicNumberProxyReal.getAndSet(AtomicNumberProxyImpl.java:200)
com.hazelcast.impl.AtomicNumberProxyImpl$AtomicNumberProxyReal.set(AtomicNumberProxyImpl.java:208)
com.hazelcast.impl.AtomicNumberProxyImpl.set(AtomicNumberProxyImpl.java:138)
com.hazelcast.web.WebFilter$HazelcastHttpSession.setAccessed(WebFilter.java:508)
com.hazelcast.web.WebFilter.doFilter(WebFilter.java:583)

After restarting Tomcat the portal runs as normal. Will check back in a day or two to see if the problem persists (though who knows if Tomcat will have been restarted by someone else). This may be a bug in Hazelcast 2.3.1 that was addressed in 2.4.1...

#8 Updated by Ben Leinfelder over 11 years ago

I've submitted a bug to hazelcast about this: https://github.com/hazelcast/hazelcast/issues/432

#9 Updated by Ben Leinfelder about 11 years ago

  • Product Version set to 1.2

There is a fix/pull request now available for this if we want to try updating hazelcast-wm. https://github.com/hazelcast/hazelcast/pull/428

#10 Updated by Ben Leinfelder over 9 years ago

  • % Done changed from 0 to 100
  • Status changed from In Progress to Closed

We are running tomcat 7 now, no longer an issue.

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 14.8 MB)