Skip to content

Crash if source directory contains a socket #3546

@talex5

Description

@talex5

Expected Behavior

I have a Unix-domain socket file in the source directory (used for testing). I would expect dune to ignore this.

Actual Behavior

Error: exception Sys_error("socket: No such device or address")
Raised by primitive operation at file "stdlib.ml", line 398, characters 28-54
Called from file "stdlib.ml" (inlined), line 406, characters 2-47
Called from file "digest.ml", line 39, characters 11-31
Called from file "src/stdune/digest.ml" (inlined), line 14, characters 13-38
Called from file "src/stdune/digest.ml", line 42, characters 13-19
Called from file "src/dune/cached_digest.ml" (inlined), line 98, characters
  15-46
Called from file "src/dune/cached_digest.ml", line 104, characters 2-19
Called from file "src/dune/cached_digest.ml" (inlined), line 149, characters
  12-22
Called from file "src/dune/dep.ml", line 57, characters 42-63
Called from file "src/dune/dep.ml", line 62, characters 28-43
Called from file "src/stdune/list.ml", line 19, characters 12-15
Called from file "src/dune/dep.ml", line 133, characters 6-74
Called from file "src/dune/build_system.ml", line 1317, characters 8-56
Called from file "src/fiber/fiber.ml", line 114, characters 10-15
Re-raised at file "src/stdune/exn.ml" (inlined), line 37, characters 27-56
Called from file "src/stdune/exn_with_backtrace.ml", line 13, characters
  33-71
Called from file "src/fiber/fiber.ml", line 85, characters 10-17
Re-raised at file "src/stdune/exn.ml" (inlined), line 37, characters 27-56
Called from file "src/stdune/exn_with_backtrace.ml", line 13, characters
  33-71
Called from file "src/fiber/fiber.ml", line 85, characters 10-17
Re-raised at file "src/stdune/exn.ml" (inlined), line 37, characters 27-56
Called from file "src/stdune/exn_with_backtrace.ml", line 13, characters
  33-71
Called from file "src/fiber/fiber.ml", line 85, characters 10-17
Re-raised at file "src/stdune/exn.ml" (inlined), line 37, characters 27-56
Called from file "src/stdune/exn_with_backtrace.ml", line 13, characters
  33-71
Called from file "src/fiber/fiber.ml", line 85, characters 10-17

I must not crash.  Uncertainty is the mind-killer. Exceptions are the
little-death that brings total obliteration.  I will fully express my cases. 
Execution will pass over me and through me.  And when it has gone past, I
will unwind the stack along its path.  Where the cases are handled there will
be nothing.  Only I will remain.

Reproduction

mkdir test
cd test
dune init exe main
ocaml <<EOF
#load "unix.cma";;
let () =
  let socket = Unix.(socket PF_UNIX SOCK_STREAM 0) in
  Unix.bind socket (Unix.ADDR_UNIX "socket");;
EOF
dune build

Specifications

  • Version of dune (output of dune --version): 2.5.1
  • Version of ocaml (output of ocamlc --version): 4.10.0
  • Operating system (distribution and version): Debian GNU/Linux 10

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions