Uploaded image for project: 'Sakai'
  1. Sakai
  2. SAK-42181

Stacktrace in Signup caused by possible race condition

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Awaiting Review
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: 19.1
    • Fix Version/s: None
    • Component/s: Signup
    • Labels:
      None
    • Test Plan:
      Hide

      Please add a Test Plan here.

      Show
      Please add a Test Plan here.

      Description

      We ran into a problem with Signup where it would only display the stacktrace below in one specific site.  The cause turned out to be an out-of-sequence "list_index" field in the "signup_ts_waitinglist" table for an event in the site.  The index sequence somehow had gone 0, 1, 2, 3, 5, skipping 4.  Fixing the index order by changing the last index to 4 in the database fixed the problem for us.  (Presumably this could also affect the "signup_ts_attendees" table as well, if the triggering cause could be reproduced.)

      I'm guessing this is a rare race condition because the Signup events in the affected site were very competitive, slots were limited, and there were over 150 students competing to get them.  I suspect that either a student joined the waitlist as another cancelled or two try to join simultaneously which somehow led to the numbering skipping 4.  I don't have exact steps to reproduce this, however.

       

      org.sakaiproject.portal.api.PortalHandlerException: org.sakaiproject.tool.api.ToolException: javax.servlet.ServletException: /signup/signupMeetings.jsp(366,7) '#{wrapper.availableStatus}' Error reading [availableStatus] on type [org.sakaiproject.signup.tool.jsf.SignupMeetingWrapper]

      at org.sakaiproject.portal.charon.SkinnableCharonPortal.doGet(SkinnableCharonPortal.java:856)

      caused by: org.sakaiproject.tool.api.ToolException: javax.servlet.ServletException: /signup/signupMeetings.jsp(366,7) '#{wrapper.availableStatus}' Error reading [availableStatus] on type [org.sakaiproject.signup.tool.jsf.SignupMeetingWrapper]

      at org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1489)

      caused by: javax.servlet.ServletException: /signup/signupMeetings.jsp(366,7) '#{wrapper.availableStatus}' Error reading [availableStatus] on type [org.sakaiproject.signup.tool.jsf.SignupMeetingWrapper]

      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

      caused by: org.apache.jasper.el.JspELException: /signup/signupMeetings.jsp(366,7) '#{wrapper.availableStatus}' Error reading [availableStatus] on type [org.sakaiproject.signup.tool.jsf.SignupMeetingWrapper]

      at javax.faces.component.UIOutput.getValue(UIOutput.java:184)

      caused by: java.lang.NullPointerException

      user: 42678313-7a73-4a16-80c5-d8dd1693be19

      usage-session: 89379219-9ca6-49a3-958a-630361090f22

      time: Jul 19, 2019 12:06:18

        Gliffy Diagrams

          Zeplin

            Attachments

              Activity

                People

                Assignee:
                Unassigned Unassigned
                Reporter:
                ansorgej John Ansorge
                Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                  Dates

                  Created:
                  Updated:

                    Git Integration