Bug 1700062

Summary: iowatcher cannot generate videos due to missing rsvg-convert
Product: [Fedora] Fedora Reporter: Bryan Gurney <bgurney>
Component: blktraceAssignee: Eric Sandeen <esandeen>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 28CC: anprice, esandeen
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 1700065 (view as bug list) Environment:
Last Closed: 2019-05-02 17:57:26 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1700065, 1719942    

Description Bryan Gurney 2019-04-15 17:46:58 UTC
Description of problem:
After installing iowatcher on a Fedora 28 virtual machine (XFCE spin), it's not possible to create an I/O trace movie via the "--movie" option.

The command fails with "xargs: rsvg-convert: No such file or directory", and then cleans up a temporary movie directory.

Version-Release number of selected component (if applicable):
iowatcher-1.2.0-6.fc28.x86_64

How reproducible:
Always

Steps to Reproduce:
1. dnf install iowatcher
2. Use blktrace to trace for activity on a test block device.  Using the example test device "/dev/test1":
2a. In one terminal, as root, execute "blktrace -d /dev/test1".  This command will continue to run, leaving a newline after the prompt.  (The trace can be stopped later via Ctrl+C.)
2b. Perform I/O on the test device "/dev/test1".  (This could be reads or writes via dd, test I/O performed by the "fio" program, or 
2c. Stop the trace that was started in 2a via "Ctrl+C".
3. Using the trace files from step 2, execute the following command:
"iowatcher -t test1.blktrace.0 -o outfile.ogg --movie=rect"

NOTES on blktrace:
- There may be multiple trace files created, depending on the number of CPUs on the system.  Pointing to the "blktrace.0" file will allow iowatcher to find the other files in the directory.
- Larger blktrace runs can result in larger disk space requirements for the iowatcher movie output, and high levels of CPU usage.  A movie render usually takes several minutes for a blktrace file set of about 1 GiB.

Actual results:
$ iowatcher -t dm-3.blktrace.0 -o outfile.ogg --movie=rect

(stdout/stderr:)
Using movie style: rect
Converting svg files in io-movie-RQSmoO
xargs: rsvg-convert: No such file or directory
Creating movie io-movie-RQSmoO with png2theora
no input files found; run with -h for help.
Removing movie dir io-movie-RQSmoO


Expected results:
Executing "$ iowatcher -t dm-3.blktrace.0 -o outfile.ogg --movie=rect" results in a series of PNG files generated by rsvg-convert, then 

Additional info:
The package "librsvg2-tools" installs the program "/usr/bin/rsvg-convert", which resolves the dependency failure.  (The version I installed is librsvg2-tools-2.42.7-2.fc28.x86_64.)

Comment 1 Eric Sandeen 2019-04-15 18:59:16 UTC
So, simply adding:

Requires: librsvg2-tools

should be sufficient to resolve this for Fedora?

Comment 2 Bryan Gurney 2019-04-15 19:04:07 UTC
Yes, I believe so.

After I saw the error, I ran "dnf whatprovides rsvg-convert", it returned "librsvg2-tools", and after installing it, "iowatcher ... --movie" successfully generated an OGG movie.

Comment 3 Eric Sandeen 2019-05-02 17:57:26 UTC
I've fixed this in rawhide.  If you need it pushed back to f28, please let me know.