Kuali Rice Development
  1. Kuali Rice Development
  2. KULRICE-14069

Questions about thread safety of KRAD UserSessionUtils

    Details

    • Type: Task Task
    • Status: Closed Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Development
    • Security Level: Public (Public: Anyone can view)
    • Labels:
      None
    • Similar issues:
      KULRICE-10183Questions about thread safety of KRAD UserSessionUtils
      KULRICE-9158Null safety issues in DataDictionaryTypeServiceBase.getDataDictionaryAttributeDefinition
      KULRICE-4807Question about action list notification emails
      KULRICE-10546Establish unit tests for implementing multi-threading
      KULRICE-10919RichMessageTest IT failures IllegalStateException: No view lifecycle is active on this thread
      KULRICE-12463IT Failure UifServletRequestDataBinderIntegrationTest No thread-bound request found
      KULRICE-10550Multi-threading Post-analysis, cleanup and integration
      KULRICE-10978KRAD Labs Lookups and Demo - Lookup Fields screens missing red about Kuali footer
      KULRICE-13465JMeter introduce THREAD_LOOPS as user defined variable
      KULRICE-6585Look into possible memory and thread local leaks reported by tomcat on a shutdown
    • Epic Link:
    • Rice Module:
      KNS, KRAD
    • KRAD Feature Area:
      Utility
    • Application Requirement:
      KFS, KC
    • Sprint:
      2.3.1 Sprint 1, Middleware 2.5.2 Sprint 3
    • KAI Review Status:
      Not Required
    • KTI Review Status:
      Not Required
    • Code Review Status:
      Not Required
    • Include in Release Notes?:
      Yes
    • Story Points:
      5

      Description

      Original Issue:

      The IU KFS team saw an issue recently (KFSCNTRB-1679) where one document overwrote the contents of another. We haven't fully explained this issue yet but we found out yesterday in conversations at our F2F that several institutions have seen these issues and generally, they recommended to their users at they not use multiple tabs/windows in the same window at the same time. This seems to have diminished the problems which leads us to believe that sessions are involved.

      Casually looking yesterday, a couple of us noticed UserSessionUtils#addWorkflowDocument, and we question the thread safety of that method; it seems like there's a chance - however small - that a HashMap could be changed by two threads simultaneously and so that HashMap should be synchronized.

      Check if the fix is in Rice 2.3 and back port it to 2.1 (look at KULRICE-10183)

      1. KULRICE-14069_2.2.patch
        9 kB
        Steve Edgar
      2. KULRICE-14069_2.3.patch
        7 kB
        Steve Edgar

        Issue Links

          Activity

          Hide
          James Smith added a comment -

          Got it - thank you Claus!

          Show
          James Smith added a comment - Got it - thank you Claus!
          Hide
          Steve Edgar (Inactive) added a comment -

          The changes for 2.1 have been committed. Just want to confirm on next steps, as various options have been mentioned. Is it desired the patches for 2.2 and 2.3 be placed in this Jira case, placed in a new Jira case, or should those be committed to their respective Rice versions are part of this case?

          Show
          Steve Edgar (Inactive) added a comment - The changes for 2.1 have been committed. Just want to confirm on next steps, as various options have been mentioned. Is it desired the patches for 2.2 and 2.3 be placed in this Jira case, placed in a new Jira case, or should those be committed to their respective Rice versions are part of this case?
          Hide
          Steve Edgar (Inactive) added a comment -

          As requested, will upload the patches for 2.2 and 2.3 to this case, and then resolve this case.

          Show
          Steve Edgar (Inactive) added a comment - As requested, will upload the patches for 2.2 and 2.3 to this case, and then resolve this case.
          Hide
          Steve Edgar (Inactive) added a comment -

          Patches for versions 2.2 and 2.3.

          Show
          Steve Edgar (Inactive) added a comment - Patches for versions 2.2 and 2.3.
          Hide
          Claus Niesen added a comment -

          This change was rolled back. See KULRICE-14252 for instructions to reapply.

          Show
          Claus Niesen added a comment - This change was rolled back. See KULRICE-14252 for instructions to reapply.

            People

            • Assignee:
              Steve Edgar (Inactive)
              Reporter:
              James Smith
            • Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - 1 day, 4 hours
                1d 4h
                Remaining:
                Remaining Estimate - 1 day, 4 hours
                1d 4h
                Logged:
                Time Spent - Not Specified
                Not Specified

                  Agile

                    Structure Helper Panel