Derby
  1. Derby
  2. DERBY-5599

readlocks.sql fails with extra locks.

    Details

    • Urgency:
      Normal
    • Issue & fix info:
      High Value Fix
    • Bug behavior facts:
      Regression Test Failure

      Description

      I saw this failure for the Feb 1 run at:
      http://people.apache.org/~myrnavl/derby_test_results/v10_8/linux/testlog/ibm15/1239442-derbyall_diff.txt

      I think it is likely the index statistics update kicking in during the test. I am thinking should not be disabled for the derbyall store tests as having it kick in can cause upredictable reporting of locks pages used, etc.

          • Start: readlocks jdk1.5.0 storeall:storemore 2012-02-01 21:11:01 ***
            11113a11114
            > APP |UserTran|ROW |1 |S |A |(2,6) |GRANT|ACTIVE
            11122a11124
            > APP |UserTran|ROW |1 |S |A |(2,6) |GRANT|ACTIVE
            11131a11134
            > APP |UserTran|ROW |1 |S |A |(2,6) |GRANT|ACTIVE
            11138a11142
            > APP |UserTran|ROW |1 |S |A |(2,6) |GRANT|ACTIVE
            Test Failed.
          • End: readlocks jdk1.5.0 storeall:storemore 2012-02-01 21:13:31 ***

        Issue Links

          Activity

          Hide
          Mike Matrigali added a comment -

          Added wait for post commit at appropriate spots after a commit following transaction with deletes. This should
          limit the interaction of post commit background work with locks being looked for by the test.
          checked into trunk, 10.8, 10.7, 10.6, and 10.5 branch. It can be backported more if anyone is interested.

          Show
          Mike Matrigali added a comment - Added wait for post commit at appropriate spots after a commit following transaction with deletes. This should limit the interaction of post commit background work with locks being looked for by the test. checked into trunk, 10.8, 10.7, 10.6, and 10.5 branch. It can be backported more if anyone is interested.
          Hide
          Kathey Marsden added a comment -

          Changing component to test and adjusting title to remove statistics. Not likely the cause after all.

          Show
          Kathey Marsden added a comment - Changing component to test and adjusting title to remove statistics. Not likely the cause after all.
          Hide
          Knut Anders Hatlen added a comment -

          Similar failures were also reported before istat was introduced: DERBY-2947

          Show
          Knut Anders Hatlen added a comment - Similar failures were also reported before istat was introduced: DERBY-2947
          Hide
          Kristian Waagan added a comment -

          I verified that the istat feature isn't triggered on my system. Can you ckeck that it is running on the system where the test fails?
          The easiest way to do do that is to add -DtestSpecialProps=derby.storage.indexStats.log=true^derby.storage.indexStats.debug.trace=true and run the test.
          Note especially the line logged on shutdown:
          Mon Feb 06 09:44:31 GMT+01:00 2012 Thread[main,5,main]

          {istat} stopping daemon, active=false, work/age=0/52180 [q/p/s=0/0/0,err:k/u/c=0/0/0,rej:f/d/o=0/0/0]

          I did tail -f readlocks/derby.log | grep "{istat}

          " since the log is deleted when the run is successful.

          Further, the istat deamon will only run if the following default requirements are fulfilled:
          o statistics are created only when the table exceeds the minimum row threshold (250 rows)
          o statistics are updated only when the row difference between the two estimates exceeds 1000 rows
          o statistics are updated only when the ln difference between the two estimates exceeds 1.0.

          Since the statistics are index statistics there must be an index on the table, and finally a statement involving an index must be prepared (i.e select * from t where indexed_col = ?).

          Show
          Kristian Waagan added a comment - I verified that the istat feature isn't triggered on my system. Can you ckeck that it is running on the system where the test fails? The easiest way to do do that is to add -DtestSpecialProps=derby.storage.indexStats.log=true^derby.storage.indexStats.debug.trace=true and run the test. Note especially the line logged on shutdown: Mon Feb 06 09:44:31 GMT+01:00 2012 Thread [main,5,main] {istat} stopping daemon, active=false, work/age=0/52180 [q/p/s=0/0/0,err:k/u/c=0/0/0,rej:f/d/o=0/0/0] I did tail -f readlocks/derby.log | grep "{istat} " since the log is deleted when the run is successful. Further, the istat deamon will only run if the following default requirements are fulfilled: o statistics are created only when the table exceeds the minimum row threshold (250 rows) o statistics are updated only when the row difference between the two estimates exceeds 1000 rows o statistics are updated only when the ln difference between the two estimates exceeds 1.0. Since the statistics are index statistics there must be an index on the table, and finally a statement involving an index must be prepared (i.e select * from t where indexed_col = ?).

            People

            • Assignee:
              Mike Matrigali
              Reporter:
              Kathey Marsden
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development