Uploaded image for project: 'Tapestry'
  1. Tapestry
  2. TAPESTRY-2530

Possible performance bottleneck in PageSource.makeObject()

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 4.1.2, 4.1.5
    • Fix Version/s: 4.1.6
    • Component/s: None
    • Labels:
      None
    • Environment:
      JDK 1.5.0_14 64 bit, Tomcat 5.5.26

      Description

      We recently migrated from Tapestry 3 to Tapestry 4.1.2 and are experiencing severe performance problems with mediocre load.

      At some point our servers start creating new threads until the Tomcat reaches the maximum of 500 live threads. When examining the thread dump, we find one thread holding a lock at the GenericKeyedObjectPool, while hundreds of other threads are waiting to aquire just this lock.

      It seems the locking thread is constructig a page from a synchronized context and needs some time to do so, and this leads to the complete application locking up in no time. See the threaddump attached.

      We already tried an upgrade to commons-pool 1.4 with no real effect.

        Attachments

        1. threaddumps_with_poolfix.zip
          266 kB
          Stefan Koelmann
        2. threaddump.zip
          29 kB
          Stefan Koelmann
        3. page-pool-patch-1.0-SNAPSHOT-sources.jar
          17 kB
          Marcus Schulte
        4. page-pool-patch-1.0-SNAPSHOT.jar
          17 kB
          Marcus Schulte
        5. dump_415.zip
          21 kB
          Stefan Koelmann

          Issue Links

            Activity

              People

              • Assignee:
                mschu Marcus Schulte
                Reporter:
                skoelmann Stefan Koelmann
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: