[Mono-bugs] [Bug 676099] New: Process.StartInfo.Arguments does not pass empty string to child process correctly
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Tue Mar 1 18:01:01 EST 2011
https://bugzilla.novell.com/show_bug.cgi?id=676099
https://bugzilla.novell.com/show_bug.cgi?id=676099#c0
Summary: Process.StartInfo.Arguments does not pass empty string
to child process correctly
Classification: Mono
Product: Mono: Class Libraries
Version: 2.10.x
Platform: x86-64
OS/Version: Ubuntu
Status: NEW
Severity: Major
Priority: P5 - None
Component: System
AssignedTo: mono-bugs at lists.ximian.com
ReportedBy: bryan.murphy at gmail.com
QAContact: mono-bugs at lists.ximian.com
Found By: ---
Blocker: ---
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b12) Gecko/20100101
Firefox/4.0b12
System.Diagnostics.Process does not appear to be passing the correct command
line parameters to a child process. The same command works successfully from
the command line.
The command I am trying to invoke is the following:
segmenter input.ts 10 output.m3u8 output.m3u8 ""
The last argument to this tool is a required parameter, but I need to pass an
empty string.
When I execute the command manually via the command line, I get the following
output (which is correct):
[mpegts @ 0x18520e0] max_analyze_duration reached
Output #0, mpegts, to 'output.m3u8':
Stream #0.0: Video: libx264, yuv420p, 640x368, q=2-31, 90k tbn, 29.97 tbc
Stream #0.1: Audio: libfaac, 48000 Hz, stereo, 69 kb/s
[mpegts @ 0x1858790] muxrate VBR, pcr every 5 pkts, sdt every 200, pat/pmt
every 40 pkts
When I execute the command using a simple test wrapper I wrote in C#, I get the
following output (which is incorrect):
EXEC: segmenter input.ts 10 output.m3u8 output.m3u8 ""
Usage: /usr/local/bin/segmenter <input MPEG-TS file> <segment duration in
seconds> <output MPEG-TS file prefix> <output m3u8 index file> <http prefix>
[<segment window size>] [<search kill file>]
Compiled by Daniel Espendiller - www.espend.de
build on Feb 28 2011 17:47:31 with 4.4.3
Took some code from:
- source:http://svn.assembla.com/svn/legend/segmenter/
-
iStreamdev:http://projects.vdr-developer.org/git/?p=istreamdev.git;a=tree;f=segmenter;hb=HEAD
-
live_segmenter:http://github.com/carsonmcdonald/HTTP-Live-Video-Stream-Segmenter-and-Distributor
Exit Code: 1
Mono appears to not pass the empty string correctly. I am currently running
mono 2.10.1:
mono --version
Mono JIT compiler version 2.10.1 (tarball Mon Feb 28 18:03:41 UTC 2011)
Copyright (C) 2002-2011 Novell, Inc and Contributors. www.mono-project.com
TLS: __thread
SIGSEGV: altstack
Notifications: epoll
Architecture: amd64
Disabled: none
Misc: softdebug
LLVM: supported, not enabled.
GC: Included Boehm (with typed GC and Parallel Mark)
I have not tried my test code against an older version of the mono framework,
however, we have been using this tool in our production environment for many
months now without a problem using mono 2.6.x.
My test app is below:
using System;
using System.Diagnostics;
class Program
{
public static void Main(string[] args)
{
using (var process = new Process())
{
process.StartInfo.FileName = "segmenter";
process.StartInfo.Arguments = @"input.ts 10 output.m3u8 output.m3u8
""""";
process.StartInfo.CreateNoWindow = true;
process.StartInfo.LoadUserProfile = false;
process.StartInfo.UseShellExecute = false;
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
Console.Out.WriteLine("EXEC: {0} {1}", process.StartInfo.FileName,
process.StartInfo.Arguments);
process.Start();
process.WaitForExit();
Console.Out.WriteLine("Exit Code: " + process.ExitCode);
}
}
}
Reproducible: Always
Steps to Reproduce:
Run my test code against the segmenter application (or any application that has
a required parameter that you want to pass an empty string to).
--
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the mono-bugs
mailing list