Tapestry
  1. Tapestry
  2. TAPESTRY-2530

Possible performance bottleneck in PageSource.makeObject()

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Critical 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.

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

        Issue Links

          Activity

          Stefan Koelmann created issue -
          Stefan Koelmann made changes -
          Field Original Value New Value
          Attachment threaddump.zip [ 12386520 ]
          Stefan Koelmann made changes -
          Summary Possible Performance Bottleneck in PageSource.makeObject() Possible performance bottleneck in PageSource.makeObject()
          Stefan Koelmann made changes -
          Attachment dump_415.zip [ 12386796 ]
          Stefan Koelmann made changes -
          Affects Version/s 4.1.5 [ 12312935 ]
          Marcus Schulte made changes -
          Attachment page-pool-patch-1.0-SNAPSHOT.jar [ 12387427 ]
          Marcus Schulte made changes -
          Assignee Marcus Schulte [ mschu ]
          Marcus Schulte made changes -
          Link This issue is related to TAPESTRY-2382 [ TAPESTRY-2382 ]
          Stefan Koelmann made changes -
          Attachment threaddumps_with_poolfix.zip [ 12387456 ]
          Marcus Schulte made changes -
          Stefan Koelmann made changes -
          Link This issue relates to TAPESTRY-2604 [ TAPESTRY-2604 ]
          Marcus Schulte made changes -
          Fix Version/s 4.1.6 [ 12312957 ]
          Status Open [ 1 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          Mark Thomas made changes -
          Workflow jira [ 12435690 ] Default workflow, editable Closed status [ 12567260 ]
          Mark Thomas made changes -
          Workflow Default workflow, editable Closed status [ 12567260 ] jira [ 12589989 ]

            People

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

              Dates

              • Created:
                Updated:
                Resolved:

                Development