4485: rbt post and diff errors on large diff

cleary3

What version are you running?

0.7.6 from the RHEL EPEL
yum info RBTools.noarch
Loaded plugins: changelog, langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager, versionlock
Note Spacewalk repositories are not listed below. You must run this command as root to access Spacewalk repositories.
Installed Packages
Name : RBTools
Arch : noarch
Version : 0.7.6
Release : 1.el7
Size : 1.5 M
Repo : installed
From repo : epel-llnl
Summary : Tools for use with ReviewBoard
URL : http://www.review-board.org
License : MIT
Description : RBTools provides client tools for interacting with a ReviewBoard
: code-review server.

What steps will reproduce the problem?

  1. Generate a very code change (in our case, ~14,000 lines of output from svn diff)
  2. Check the code change in to SVN.
  3. Use rbt diff to list the change or rbt post to post a ReviewBoard review.

What is the expected output? What do you see instead?

In the case of rbt diff, I expect to see a full diff. In the case of rbt post, I expect to be able to successfully post a new review or update an existing review.

Instead, the output is truncated with errors messages from diff.

What operating system are you using?

Red Hat Enterprise Linux Server release 7.3 (Maipo)

Attach the debug out from the command.

$ rbt diff --debug 19868
>>> RBTools 0.7.6
>>> Python 2.7.5 (default, Aug  2 2016, 04:20:16) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)]
>>> Running on Linux-3.10.0-514.el7.x86_64-x86_64-with-redhat-7.3-Maipo
>>> Home = /home/cleary3
>>> Current directory = /home/cleary3/7.5-tmp
>>> Checking for a Subversion repository...
>>> Running: svn --non-interactive info
>>> Running: diff --version
>>> Running: svn --non-interactive --version -q
>>> repository info: Path: svn+ssh://jenova/var/svn/hpss, Base path: /branches/7.5, Supports changesets: False
>>> Making HTTP GET request to https://hpss-dev.clearlake.ibm.com/reviewboard/api/
>>> Running: svn --non-interactive log --xml -r 19868 -l 1
>>> Running: svn --non-interactive info
>>> Running: diff --version
>>> Running: svn --non-interactive --version -q
>>> repository info: Path: svn+ssh://jenova/var/svn/hpss, Base path: /branches/7.5, Supports changesets: False
>>> Running: svn --non-interactive diff --diff-cmd=diff --notice-ancestry -r 19867:19868
Failed to execute command: ['svn', '--non-interactive', u'diff', u'--diff-cmd=diff', u'--notice-ancestry', u'-r', u'19867:19868']
['Index: include/mps_metadata.h\n', '===================================================================\n',
.
.
.
'diff: write failed\n', "svn: E200012: 'diff' returned 2\n"]

Please provide any additional information below.

Running the SVN diff by hand succeeds:

$ svn --non-interactive diff --diff-cmd=diff --notice-ancestry -r 19867:19868 | wc -l
14323
$ svn --non-interactive diff --diff-cmd=diff --notice-ancestry -r 19867:19868 > /dev/null
$ echo $?
0
#1 cleary3

Step 1 above in the What steps will reproduce the problem? section should read:

  1. Generate a very large code change (in our case, ~14,000 lines of output from svn diff)