Skip to content

Give PoissonRecon a writable temporary directory - #2056

Open
Xananthium wants to merge 1 commit into
OpenDroneMap:masterfrom
Xananthium:fix/poisson-explicit-tempdir
Open

Give PoissonRecon a writable temporary directory#2056
Xananthium wants to merge 1 commit into
OpenDroneMap:masterfrom
Xananthium:fix/poisson-explicit-tempdir

Conversation

@Xananthium

Copy link
Copy Markdown

Problem

PoissonRecon stores its out-of-core PR_* scratch files in --tempDir, then $TMPDIR, then the process working directory. ODM already knows a writable mesh output directory, but did not pass it to PoissonRecon.

This makes an otherwise resumable mesh stage fail when ODM is launched by a service manager with a non-writable working directory (for example /). Reducing the Poisson thread count cannot repair that filesystem failure, so every retry fails before ReconstructMesh sees a dirty mesh.

Change

Pass the absolute output-mesh directory to PoissonRecon through its existing --tempDir option. This keeps scratch files beside the dirty mesh and leaves the public Python API and retry behavior unchanged.

A focused unit test captures the generated commands and covers a writable output path containing a space.

Verification

  • New regression test passes.
  • Full ODM unit suite: 22 passed in a native ODM 3.6.1 environment.
  • The failure mode was source-traced to PoissonRecon's $TMPDIR / ./ fallback and mkstemp use, then independently recovered in a 24,136,575-point run by supplying a writable working directory.

No container-specific behavior or new dependency is introduced.

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.

1 participant