Uploaded image for project: 'Undertow'
  1. Undertow
  2. UNDERTOW-2062

InMemorySessionManager sometimes stores the wrong sessionId

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • None
    • 2.2.2.Final
    • None
    • None
    • Hide

      This issue happens intermittently and is hard to reproduce. I have tried to reduce the session timeout locally to 1 minute in efforts to get the issue to happen more frequently, but with no success.

      If I am able to find a reproducible workflow, I will share it.

      Show
      This issue happens intermittently and is hard to reproduce. I have tried to reduce the session timeout locally to 1 minute in efforts to get the issue to happen more frequently, but with no success. If I am able to find a reproducible workflow, I will share it.

      My project is using undertow 2.2.2.Final with Spring Boot 2.2.7.RELEASE

      Sometimes, the session id key saved in the internal sessions map in InMemorySessionManager is different than the session id of the actual session. Thus, when the session is invalidated, it is not being properly removed from this internal map, causing "UT000010: Session is invalid" to occur forever, until the browser is completely closed or the JSESSIONID cookie is cleared.

      The handling of sessions is done by Spring Boot and the only thing we have configured for the application is a SessionCreationPolicy of ALWAYS.

      Since this isn't readily reproducible, I don't know if this is a concurrency/threading issue or something improperly configured on our end.

      I know this isn't much, but here is a snapshot of the internal map when the issue occurs (in normal operation, the two circled ids are always equal):

              rhn-cservice-bbaranow Bartosz Baranowski
              ryrich Ryan Richardson (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: