Somewhere in my code, I had a regex with four `|` operator. At this point pylint linter failed because it was assuming that line as a valid pylint error message (Sometimes pylint shows code in error messages).
Relevant code in ArcanistPyLintLinter:
```
foreach ($lines as $line) {
$matches = explode('|', $line, 5);
if (count($matches) < 5) {
continue;
}
// NOTE: PyLint sometimes returns -1 as the character offset for a
// message. If it does, treat it as 0. See T9257.
$char = (int)$matches[1];
$char = max(0, $char);
$message = id(new ArcanistLintMessage())
->setPath($path)
->setLine($matches[0])
->setChar($char)
->setCode($matches[2])
->setSeverity($this->getLintMessageSeverity($matches[2]))
->setName(ucwords(str_replace('-', ' ', $matches[3])))
->setDescription($matches[4]);
$messages[] = $message;
}
```
Here `if (count($matches) < 5) {` is assuming that if a pylint message has atleast four `|` then it is valid pylint message.
Here is the error message trace:
```
[2016-01-28 21:44:37] EXCEPTION: (PhutilAggregateException) Some linters failed:
- Exception: Parameter passed to "setLine()" must be an integer. at [<arcanist>/src/lint/engine/ArcanistLintEngine.php:274]
arcanist(head=master, ref.master=4f1141d0c59b), libarcdjango(head=remove_print, ref.master=d2545efd4127, ref.remove_print=d64683a74983), phutil(head=master, ref.master=f0881b37049c)
#0 <#2> ArcanistLintMessage::validateInteger(string, string) called at [<arcanist>/src/lint/ArcanistLintMessage.php:75]
#1 <#2> ArcanistLintMessage::setLine(string) called at [<arcanist>/src/lint/linter/ArcanistPyLintLinter.php:139]
#2 <#2> ArcanistPyLintLinter::parseLinterOutput(string, integer, string, string) called at [<arcanist>/src/lint/linter/ArcanistExternalLinter.php:437]
#3 <#2> ArcanistExternalLinter::resolveFuture(string, ExecFuture) called at [<arcanist>/src/lint/linter/ArcanistFutureLinter.php:34]
#4 <#2> ArcanistFutureLinter::didLintPaths(array) called at [<arcanist>/src/lint/engine/ArcanistLintEngine.php:594]
#5 <#2> ArcanistLintEngine::executeDidLintOnPaths(ArcanistPyLintLinter, array) called at [<arcanist>/src/lint/engine/ArcanistLintEngine.php:545]
#6 <#2> ArcanistLintEngine::executeLintersOnChunk(array, array) called at [<arcanist>/src/lint/engine/ArcanistLintEngine.php:473]
#7 <#2> ArcanistLintEngine::executeLinters(array) called at [<arcanist>/src/lint/engine/ArcanistLintEngine.php:216]
#8 ArcanistLintEngine::run() called at [<arcanist>/src/workflow/ArcanistLintWorkflow.php:334]
#9 ArcanistLintWorkflow::run() called at [<arcanist>/scripts/arcanist.php:382]
<<< [58] <exec> 14,957,439 us
<<< [88] <exec> 8,930,099 us
<<< [89] <exec> 7,174,690 us
```