Uploaded image for project: 'Teiid'
  1. Teiid
  2. TEIID-4032 Olingo V4
  3. TEIID-4057

OData - if PUT fails, next update request fails because table in DB is still locked

XMLWordPrintable

    • Icon: Sub-task Sub-task
    • Resolution: Done
    • Icon: Major Major
    • 9.0, 8.12.5
    • None
    • OData
    • None

      I can see (from the log) that processing of PUT request is as follows:

      1. select record from table
      2. delete record
      3. parse entity from HTTP request
      4. insert new record

      But if e.g. step 3 fails, Teiid cancels transaction and returns error. In my opinion, parsing of the entity should be the first step (or at least right after select).
      What happen here is, that DELETE statement creates transaction and locks the table. But the transaction is not canceled immediately after cancel request [1]. This causes that no other query can succeed, because of lock on the table (EAP uses connection pool and does not close connections immediately and therefore open connection has still one transaction in active state).

      Note: We use H2 database for testing purpose. But I think that this could happen with any DB. Anyway, parsing of the entity should not be performed after delete.

      [1]

      Unable to find source-code formatter for language: plain. Available languages are: actionscript, ada, applescript, bash, c, c#, c++, cpp, css, erlang, go, groovy, haskell, html, java, javascript, js, json, lua, none, nyan, objc, perl, php, python, r, rainbow, ruby, scala, sh, sql, swift, visualbasic, xml, yaml
      09:35:33,937 DEBUG [org.teiid.TRANSPORT] (New I/O worker #1) Channel closed
      09:40:31,430 WARN  [com.arjuna.ats.arjuna] (Transaction Reaper) ARJUNA012117: TransactionReaper::check timeout for TX 0:ffff7f000001:113c3cbe:56e131a7:e in state  RUN
      09:40:31,438 WARN  [com.arjuna.ats.arjuna] (Transaction Reaper Worker 0) ARJUNA012121: TransactionReaper::doCancellations worker Thread[Transaction Reaper Worker 0,5,main] successfully canceled TX 0:ffff7f000001:113c3cbe:56e131a7:e
      

              rhn-engineering-shawkins Steven Hawkins
              jdurani Juraj DurĂ¡ni (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: