Visitar URL original
Failing tests: multi-file upload temp dir and chat backup delete by chrisnojima · Pull Request #29854 · keybase/client · GitHub
Skip to content

Failing tests: multi-file upload temp dir and chat backup delete - #29854

Draft
chrisnojima wants to merge 1 commit into
masterfrom
nojima/HOTPOT-go-chat-failing-tests
Draft

chrisnojima wants to merge 1 commit into
masterfrom
nojima/HOTPOT-go-chat-failing-tests

Conversation

@chrisnojima

Copy link
Copy Markdown
Contributor

Failing tests, no fixes, for Go bugs the desktop e2e release gate found.

Multi-file upload deletes the shared temp dir (go/kbfs/simplefs)

Desktop drag-and-drop puts every dropped file in one temp dir from SimpleFSMakeTempDirForUpload. When the first upload finishes, waitForCopy removes its file's parent dir (dirToDelete) — the shared dir — so the other dropped files are gone before or while they upload.

  • TestUploadSharedTempDirMultipleFiles: two files in one temp dir, uploaded one after the other. Fails with "finishing the first upload removed the second file from the shared temp dir".
  • TestUploadSharedTempDirMultipleFilesConcurrent: a file, a 100-file folder and another file started back to back, as a drop does. Fails with "upload to /private/jdoe/folder: file or folder does not exist". It depends on the first upload finishing before the folder copy does, which held in 50/50 runs.

Both also require the shared dir to be removed once every upload from it is done, so a fix can't pass by leaking the copied files.

Chat backup Delete leaves output behind (go/chat)

  • TestArchiveRegistryDeleteRemovesOutputOfUnwindingJob: ChatArchiveRegistry.Delete cancels a running job and starts os.RemoveAll on its output without waiting for the job to stop. The job, still unwinding, recreates its folders and opens chat.txt after the removal. Fails with "cancelled job wrote into .../kbchat-out after Delete removed it". It also requires the deleted job to stay out of the registry. (Pause has the same no-wait shape; not tested here.)
  • TestArchiveRegistryDeleteRemovesCompressedOutput: a finished job made with Compress: true leaves <output>.tar.gzip, and Delete(jobID, true) removes only the directory path. Fails with "Delete left the compressed output .../kbchat-out.tar.gzip behind".

Evidence

Each test fails 3/3 on master with -race, and passes under a stand-in fix (not included). gofmt, go vet and golangci-lint --new-from-rev origin/master are clean.

…ive delete

- simplefs: finishing one upload from a shared SimpleFSMakeTempDirForUpload
  dir deletes the files the other uploads still need (sequential and
  back-to-back variants); the dir must still be removed once all are done.
- chat: deleting a running archive job leaves output written by the
  unwinding job, and deleting a finished compressed job leaves its
  .tar.gzip behind; the deleted job must stay out of the registry.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants