HomePhabricator

Cut Herald rules off at 1GB of diff text

Description

Cut Herald rules off at 1GB of diff text

Summary:
Ref T4276. When a change is larger than 2GB, PHP can not read the entire change into a string, so Herald can not process it.

Additionally, we already have a time limit for practical reasons, but it's huge (probably incorrectly). To deal with these things:

  • Add an optional byte limit to diffusion.rawdiffquery.
  • Make the query with a 1GB limit.
  • Reduce the diff timeout from 15 hours to 15 minutes.
  • Add a "Changeset is enormous" field. This field is true for changes which are too large to process.

This generally makes behaviors more sane:

  • We'll always make progress in Herald in a reasonable amount of time.
  • Installs can write global rules to handle (or reject) these types of changes.

Test Plan: Set limit to 25 bytes instead of 1GB and ran test console on various changes.

Reviewers: btrahan

Reviewed By: btrahan

CC: aran

Maniphest Tasks: T4276

Differential Revision: https://secure.phabricator.com/D7885

Details

Provenance
epriestleyAuthored on Jan 3 2014, 8:27 PM
epriestleyPushed on Jan 3 2014, 8:27 PM
Reviewer
btrahan
Differential Revision
D7885: Cut Herald rules off at 1GB of diff text
Parents
rP972dfa7bfc37: Add 'hook.d/' directories to SVN and Git repositories for custom hooks
Branches
Unknown
Tags
Unknown
Tasks
T4276: String overflow errors in Herald commit processing

Event Timeline