Skip to content

fix(land): keep git maintenance from racing the fixer import - #360

Merged
moq-bot[bot] merged 2 commits into
mainfrom
fix/fixer-vanished-lock
Nov 1, 2026
Merged

moq-bot[bot] merged 2 commits into
mainfrom
fix/fixer-vanished-lock

Conversation

@kixelated

Copy link
Copy Markdown
Collaborator

Summary

A land fixer job for moq-dev/moq#6987 crashed with [Errno 2] No such file or directory: '.../fix-qrkoPz/.git/objects/maintenance.lock'. Background git maintenance in the fixer checkout removed its lock file between importFixer's readdirSync and lstatSync, and the crash handed the PR back. Two changes:

  • startFixer (src/cli/land-fixer.ts) sets gc.auto=0 and maintenance.auto=false in each fixer checkout, so nothing repacks or deletes objects while the daemon imports the result.
  • importFixer (src/cli/land-fixer-repository.ts) skips git *.lock entries before reading them, since it never imports a lock file.

Checks

  • just check passes, and so does test/land.test.ts (130 tests).
  • The import test now plants a .lock symlink under objects/. It fails without the fix ("fixer git metadata must contain only real files and directories") and passes with it.

Review

  • Local quest review (Codex, gpt-6.1-sol, medium effort) against origin/main at head 7f6408c397e21c8e9dd6c461a19a71e09e8bdf96: round 1, 0 findings.

🤖 Generated with Claude Code

(Written by Claude Opus 5.5)

A fixer job crashed with ENOENT on a vanished objects/maintenance.lock
(moq-dev/moq#6987): background maintenance removed the lock between
importFixer's readdir and lstat. Fixer checkouts now turn off gc.auto and
maintenance.auto, and the import skips git lock files, which it never
imports.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

Important

  • Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 56fe608c-e4df-4a05-862b-b229ed5c8455
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@kixelated
kixelated enabled auto-merge (squash) November 1, 2026 16:47
@moq-bot
moq-bot Bot merged commit 5f6df52 into main Nov 1, 2026
@moq-bot
moq-bot Bot deleted the fix/fixer-vanished-lock branch November 1, 2026 16:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant