Apache Roller
  1. Apache Roller
  2. ROL-1761

tasks will not run more often than leaseTime minutes

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 4.0
    • Fix Version/s: 5.0
    • Labels:
      None
    • Environment:
      solaris 10, oracle 10g, glassfishv2
    • Database:
      oracle 10g
    • JDK Version:
      1.6
    • O/S Version:
      solaris 10

      Description

      We're finding that our tasks won't run more often than every leaseTime minutes.

      After a bit more digging, we found our JPAThreadManagerImpl.unregisterLease() method is not updating the database,
      so any lease that is successfully taken out are kept , blocking that task from running, until they expire.

      In this case , the JPA-generated SQL looks ok, but the roller logs show what looks like a transaction rolling back:

      DEBUG 2008-11-21 11:47:00,097 CommonsLogFactory$LogAdapter:trace - Executing query: [UPDATE TaskLock t SET t.timeLeased=?1 WHERE t.
      name=?2 AND t.clientId=?3] with parameters:

      {3=ScheduledEntriesTask, 2=0, 1=devel-roller01}

      DEBUG 2008-11-21 11:47:00,097 CommonsLogFactory$LogAdapter:trace - <t 6810846, conn 4959010> executing prepstmnt 20488940 UPDATE ro
      ller_tasklock t0 SET timeleased = ? WHERE (t0.name = ? AND t0.client = ?) [params=(int) 0, (String) ScheduledEntriesTask, (String)
      devel-roller01]
      DEBUG 2008-11-21 11:47:00,098 CommonsLogFactory$LogAdapter:trace - <t 6810846, conn 4959010> [0 ms] spent
      DEBUG 2008-11-21 11:47:00,098 RollerTaskWithLeasing:run - ScheduledEntriesTask: Lease released, task finished
      DEBUG 2008-11-21 11:47:00,109 CommonsLogFactory$LogAdapter:trace - <t 6810846, conn 4959010> [10 ms] rollback *******
      DEBUG 2008-11-21 11:47:00,109 CommonsLogFactory$LogAdapter:trace - <t 6810846, conn 4959010> [0 ms] close

      Is the line flagged '******' a transaction rolling back?
      If so, does anyone have any clue where I start looking to find out why JPA did that?
      I suppose I could work around this by setting interval == leaseTime, but this is a multi-server cluster
      and I've got enough headaches without adding race conditions into the mix

      1. ROL-1761.patch
        3 kB
        Anil Gangolli

        Activity

        No work has yet been logged on this issue.

          People

          • Assignee:
            Anil Gangolli
            Reporter:
            Dick Davies
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development