http://bugzilla.opensuse.org/show_bug.cgi?id=1031890 Bug ID: 1031890 Summary: GStreamer regression, multifilesink writes no longer atomic Classification: openSUSE Product: openSUSE Distribution Version: Leap 42.2 Hardware: x86-64 OS: openSUSE 42.2 Status: NEW Severity: Major Priority: P5 - None Component: Other Assignee: bnc-team-screening@forge.provo.novell.com Reporter: pafee@tycoint.com QA Contact: qa-bugs@suse.de Found By: --- Blocker: --- User-Agent: Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0 Build Identifier: Leap 42.1 comes with GStreamer 1.2, Leap 42.2 with GStreamer 1.8. A regression in upstream GStreamer means that 1.8 has a bug that's not present in 1.2 (and has since been fixed in 1.10). https://bugzilla.gnome.org/show_bug.cgi?id=766990 The multifilesink element can output video as a collection of files. Atomic writes are important so that consumers of these files never see files that are empty or partially written. The bug means that applications that rely the multifilesink element can work as expected on Leap 42.1 but break on 42.2. Reproducible: Always Steps to Reproduce: 1. Use strace to watch how the multifilesink element writes to files. strace -fe open,close,rename gst-launch-1.0 -v videotestsrc ! multifilesink 2. The desired behaviour is to write to a temporary file, then rename it (atomic operation) to the final destination. [pid 27743] open("00417.ROOIXY", O_RDWR|O_CREAT|O_EXCL, 0666) = 11 [pid 27743] close(11) = 0 [pid 27743] rename("00417.ROOIXY", "00417") = 0 3.GStreamer 1.8 writes directly to the final file, without a rename, exposing consumers to partially written or zero sized files. [pid 7439] open("00501", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 11 [pid 7439] close(11) = 0 [pid 7439] open("00502", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 11 [pid 7439] close(11) = 0 The multimedia:libs repo on OBS has GStreamer 1.10, which fixes this issue. Upstream bug report: https://bugzilla.gnome.org/show_bug.cgi?id=766990 Upstream fix: https://github.com/GStreamer/gst-plugins-good/commit/023998dd76b449440d267d6... The same problem exists with SLES12. SP1 (GStreamer 1.2) works, SP2 (GStreamer 1.8) has this bug. -- You are receiving this mail because: You are on the CC list for the bug.