Uploaded image for project: 'Opencast'
  1. MH-11295

Multiple concurrent file uploads result in corrupted source video

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed and reviewed
    • Affects versions: 1.6.3
    • Fix versions: None
    • Labels:
      None
    • Severity:
      Data Loss/Corruption
    • Steps to reproduce:
      Hide
      Steps to reproduce:
      1. Open the Upload Recording interface in 2 or more windows/tabs
      2. Submit multiple uploads so that they are running concurrently. (I tested with a ~1GB mp4 file)
      3. compare the md5 checksums for the resulting source video w/ the original, local file
       
       Actual Results: checksums will not match and video will be glitchy or just un-encodable
       
       
       Expected Results: checksums should match
       
       
      The problem is the use of non-thread-safe read buffer defined at the class level in FileUploadServiceImpl.java. Fix is to simply create the read buffer each time within the FileUploadServiceImpl.acceptChunk scope.





      Show
      Steps to reproduce: 1. Open the Upload Recording interface in 2 or more windows/tabs 2. Submit multiple uploads so that they are running concurrently. (I tested with a ~1GB mp4 file) 3. compare the md5 checksums for the resulting source video w/ the original, local file    Actual Results: checksums will not match and video will be glitchy or just un-encodable      Expected Results: checksums should match     The problem is the use of non-thread-safe read buffer defined at the class level in FileUploadServiceImpl.java. Fix is to simply create the read buffer each time within the FileUploadServiceImpl.acceptChunk scope.

      TestRail: Results

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              jluker Jay Luker
            • Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                TestRail: Cases