Page MenuHomePhabricator

Kick off indexing for File objects on creation
ClosedPublic

Authored by amckinley on Apr 18 2017, 3:24 PM.
Tags
None
Referenced Files
F13242439: D17718.diff
Thu, May 23, 2:46 AM
F13226447: D17718.id42612.diff
Sun, May 19, 8:50 PM
F13225517: D17718.diff
Sun, May 19, 3:34 PM
F13220678: D17718.diff
Sun, May 19, 1:52 AM
F13203153: D17718.diff
Tue, May 14, 11:31 PM
F13185346: D17718.diff
Sat, May 11, 2:49 AM
Unknown Object (File)
Tue, May 7, 5:15 AM
Unknown Object (File)
Fri, May 3, 2:35 AM
Subscribers

Details

Summary

Ensures that newly-made File objects get indexed into the new ngrams index. Fixes T8788.

Test Plan
  • uploaded a file with daemons stopped; confirmed no new rows in ngrams table
  • started daemons; confirmed indexing of previously-uploaded files happened
  • uploaded a new file with daemons running; confirmed it got added to the index

Not sure how to test the changes to PhabricatorFileUploadSource->writeChunkedFile() and PhabricatorChunkedFileStorageEngine->allocateChunks(). I spent a few minutes trying to find their callers, but the first looks like it requires a Diffusion repo and the 2nd is only accessible via Conduit. I can test that stuff if necessary, but it's such a small change that I'm not worried about it.

Diff Detail

Repository
rP Phabricator
Branch
T8788 (branched from master)
Lint
Lint Passed
Unit
Tests Passed
Build Status
Buildable 16547
Build 22049: Run Core Tests
Build 22048: arc lint + arc unit

Event Timeline

Not sure how to test the changes to PhabricatorFileUploadSource->writeChunkedFile() and PhabricatorChunkedFileStorageEngine->allocateChunks().

I think it's fine to just assume these work, but I think they can be reached through some of these paths:

  • Use arc upload on a file which is larger than 8MB (actually, I think this doesn't hit either one).
  • View a file which is larger than 8MB in Diffusion.
  • Use FileUpload File with the actual file control to upload a file larger than 8MB.
  • Use the "Upload" icon in a Remarkup textarea to upload a file larger than 8MB.

I'm not sure which of those hit which of the callsites offhand.

The "8MB" stuff is because the chunk engine won't engage for small files: we store small files as a single blob, but break larger files up into a series of 4MB chunks.

This revision is now accepted and ready to land.Apr 18 2017, 3:29 PM
This revision was automatically updated to reflect the committed changes.