Uploaded image for project: 'Derby'
  1. Derby
  2. DERBY-2992

getBinaryStream returns incorrect result (truncated value) if underlying blob is deleted

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 10.2.2.0, 10.3.1.4, 10.4.1.3, 10.5.3.0, 10.6.1.0
    • 10.5.3.1, 10.6.1.0
    • JDBC
    • None
    • Normal
    • High Value Fix, Repro attached
    • Regression, Wrong query result

    Description

      If getBinaryStream is reading a value (READ_UNCOMMITTED) and the row is deleted by another connection, a truncated value will be returned without error. I believe instead either the whole value or an IOException should occur.

      With 10.2 and higher with the repro attahed we get:
      > java TruncatedBlob
      Embedded:
      Read 32669 bytes
      0 rows in BLOBCLOB

      With 10.1
      Embedded:
      Read 40000 bytes (OK)
      0 rows in BLOBCLOB

      Note network server returns the full value for both 10.1 and 10.2 but gives a lock timeout for 10.2+. I will file a separate issue for that.

      Attachments

        1. derby-2992-1a-throw_exception_on_eof.diff
          6 kB
          Kristian Waagan
        2. derby-2992-1b-throw_exception_on_eof.diff
          6 kB
          Kristian Waagan
        3. TruncatedBlob.java
          2 kB
          Katherine Marsden

        Issue Links

          Activity

            People

              kristwaa Kristian Waagan
              kmarsden Katherine Marsden
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: