Uploaded image for project: 'Olingo'
  1. Olingo
  2. OLINGO-1591

Batch processing stuck in deadlock when payload size is greater than 4MB

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • (Java) V4 4.10.0
    • odata4-client
    • None

    Description

      When OData V4 batch request payload is more than 4MB, the payload parsing gets stuck in deadlock. Both PipedOutputStream and PipedInputStream goes into lock there waiting indefinitely. 

      The buffer which is used as a circular buffer has a size of 4MB initialised in PipedInputStream. Whenever the batch request payload is greater than 4MB, both the main thread & future task goes into deadlock. Attached both the lock waiting threads.

      Attachments

        1. deadlock_fix.patch
          2 kB
          varun_ramesh
        2. junit.java
          1 kB
          varun_ramesh
        3. payload.txt
          7.63 MB
          varun_ramesh
        4. thread1.txt
          3 kB
          varun_ramesh
        5. thread2.txt
          2 kB
          varun_ramesh

        Activity

          People

            mirbo mibo
            varun_ramesh varun_ramesh
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 20m
                20m