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

Something is preventing hibernate app redeploy

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: RESOLVED
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 10.2, 11.0
    • Fix Version/s: 11.0
    • Component/s: Kernel
    • Labels:
      None
    • Previous Issue Keys:
      KNL-1295

      Description

      So I'm still not sure the cause of this, but prior to 10.0 you could redeploy/reload webapps live without it causing a problem. Now since 10.0 if you try to do that with "some" apps, it takes down the hibnerate.L2Cache during the app shutdown, causing a system failure. I think I've tracked it down to KNL-1233 but can't see what's wrong. on the start() call it doesn't do anything, but what's different about the stop call is it does a close. It looks like when you redepoy it closes the SessionFactory and stops the cache. Then it starts it up again and creates another Cache. But this new cache doesn't work.

      Some example stack trace during this with gradebook. After reloading gradebook, all of the sites disappear and after logging out the system is no longer usable. I tested with Sakai 2.8 and 2.9 and they work fine.

      This probably isn't a huge deal for production, but really slows down development when you have to redeploy webapps to test changes.

      The short error is: The full stack is in here.
      org.springframework.orm.hibernate3.HibernateSystemException: java.lang.IllegalStateException: The org.sakaiproject.springframework.orm.hibernate.L2Cache Cache is not alive (STATUS_SHUTDOWN); nested exception is org.hibernate.cache.CacheException: java.lang.IllegalStateException: The org.sakaiproject.springframework.orm.hibernate.L2Cache Cache is not alive (STATUS_SHUTDOWN)

      Some ideas I have
      1) The old code didn't destroy the cache when this happened, because the new one is this is messing it up
      2) Something is trying to access the cache while it's reloading
      3) Something else ?

      In the stack it looks like profile2 is the first thing to hit the the hibernate cache, but everything after fails too. In the code in KNL-1233 in the start() it prints a message that it's starting, but is it really doing anything?

        Gliffy Diagrams

          Zeplin

            Attachments

              Issue Links

                Activity

                  People

                  Assignee:
                  jonespm Matthew Jones
                  Reporter:
                  jonespm Matthew Jones
                  Votes:
                  0 Vote for this issue
                  Watchers:
                  3 Start watching this issue

                    Dates

                    Created:
                    Updated:
                    Resolved:

                      Git Integration