Page MenuHomePhabricator

Change parser fails for changes affecting paths longer than 512 characters
Open, NormalPublic

Description

If a change touches a path longer than 512 characters, we currently INSERT IGNORE ... it into the repository_path table, which fails. The change parser then throws.

A user ran into this issue while trying to parse a commit affecting a path similar to this one:

duck/quaaack/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/breaad/quaaack/quacks-v1-duk.xyz

We should probably change this table to use LONGBLOB, but this runs into T4045, so it might make sense to deal with it at the same time we deal with that. Particularly, storing encodings at the same time might be useful.