Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"text file busy" when doing stackv4 install #221

Closed
avsm opened this issue Feb 12, 2014 · 1 comment
Closed

"text file busy" when doing stackv4 install #221

avsm opened this issue Feb 12, 2014 · 1 comment

Comments

@avsm
Copy link
Member

avsm commented Feb 12, 2014

via @jac90 on mirageos-devel:

Hi there! Any pointers on the following error I'm getting when trying to build mirage-skeleton on a fresh build server? Ubuntu precise, 12.04.1 LTS.

Thanks!
Julian

root@Build-server:~/mirage-skeleton# opam list
Installed packages for system:
base-bigarray             base  Bigarray library distributed with the OCaml compiler
base-threads              base  Threads library distributed with the OCaml compiler
base-unix                 base  Unix library distributed with the OCaml compiler
cmdliner                 0.9.4  Declarative definition of command line interfaces for OCaml
cohttp                  0.9.16  HTTP library for Lwt, Async and Mirage
cstruct                  1.0.1  access C structures via a camlp4 extension
fieldslib            109.20.03  Syntax extension to define first class values representing record fields, to get and set record fields, iterate and fold over all fields of a record and create new record v
io-page                  1.1.0  Allocate memory pages suitable for aligned I/O
ipaddr                   2.4.0  IP (and MAC) address representation library
lwt                      2.4.4  A cooperative threads library for OCaml
mirage-clock-unix        1.0.0  A Mirage-compatible Clock library for Unix
mirage-console-unix      1.0.0  A Mirage-compatible Console library for Unix
mirage-http              1.1.0  Mirage HTTP client and server driver for Unix
mirage-net-unix          1.1.0  Ethernet network driver for Mirage, using tuntap
mirage-types             1.1.0  Module type definitions for Mirage-compatible applications
mirage-unix              1.1.0  Mirage OS library for Unix compilation
ocamlfind                1.4.0  A library manager for OCaml
ocplib-endian              0.4  Optimised functions to read and write int16/32/64 from strings and bigarrays, based on new primitives added in version 4.01.
optcomp                    1.5  Optional compilation with cpp-like directives
ounit                    2.0.0  Unit testing framework loosely based on HUnit. It is similar to JUnit, and other XUnit testing frameworks
re                       1.2.1  RE is a regular expression library for OCaml
sexplib              110.01.00  Library for serializing OCaml values to and from S-expressions
shared-memory-ring       1.0.0  Shared memory rings for RPC and bytestream communications.
ssl                      0.4.6  Bindings for the libssl
tcpip                    1.1.0  Userlevel TCP/IP stack
tuntap                   0.7.0  TUN/TAP bindings
type_conv            109.60.01  Library for building type-driven syntax extensions
uri                     1.3.13  RFC3986 URI parsing library


root@Build-server:~/mirage-skeleton# make all

.......<--All fine until

stackv4     + Executing: opam install --yes mirage-clock-unix mirage-console-unix mirage-http mirage-net-unix mirage-unix tcpip
stackv4      The following actions will be performed:
stackv4       - install type_conv.109.60.01 [required by mirage-http]
stackv4       - install ssl.0.4.6 [required by mirage-http]
stackv4       - install fieldslib.109.20.03 [required by mirage-http]
stackv4       - install sexplib.110.01.00 [required by mirage-http]
stackv4       - recompile lwt.2.4.4 [use ssl]
stackv4       - install uri.1.3.13 [required by mirage-http]
stackv4       - recompile cstruct.1.0.1 [use ssl]
stackv4       - install cohttp[ERROR] The compilation of mirage.1.1.0 failed.
stackv4      
stackv4      ===== ERROR while recompiling mirage.1.1.0 =====
stackv4      # opam-version         1.1.1
stackv4      # os                   linux
stackv4      # command              make install
stackv4      # path                 /root/.opam/system/build/mirage.1.1.0
stackv4      # compiler             system (4.01.0)
stackv4      # exit-code            2
stackv4      # env-file             /root/.opam/system/build/mirage.1.1.0/mirage-17018-e0ba4f.env
stackv4      # stdout-file          /root/.opam/system/build/mirage.1.1.0/mirage-17018-e0ba4f.out
stackv4      # stderr-file          /root/.opam/system/build/mirage.1.1.0/mirage-17018-e0ba4f.err
stackv4      ### stdout ###
stackv4      # ...[truncated]
stackv4      # /root/.opam/system/bin/ocamlfind ocamldep -package cmdliner -package dynlink -package ipaddr -package lwt -package mirage-types -package mirage-types.lwt -package unix -modules lib/main.ml > lib/main.ml.depends
stackv4      # /root/.opam/system/bin/ocamlfind ocamlc -c -g -annot -bin-annot -principal -I lib -package cmdliner -package dynlink -package ipaddr -package lwt -package mirage-types -package mirage-types.lwt -package unix -I lib -o lib/main.cmo lib/main.ml
stackv4      # /root/.opam/system/bin/ocamlfind ocamlopt -c -g -annot -bin-annot -principal -I lib -package cmdliner -package dynlink -package ipaddr -package lwt -package mirage-types -package mirage-types.lwt -package unix -I lib -o lib/main.cmx lib/main.ml
stackv4      # /root/.opam/system/bin/ocamlfind ocamlopt -g -linkpkg -package cmdliner -package dynlink -package ipaddr -package lwt -package mirage-types -package mirage-types.lwt -package unix lib/mirage.cmxa lib/main.cmx -o lib/main.native
stackv4      # ./setup.bin -test
stackv4      # ./setup.bin -doc
stackv4      # make[1]: Leaving directory `/root/.opam/system/build/mirage.1.1.0'
stackv4      # make[1]: Entering directory `/root/.opam/system/build/mirage.1.1.0'
stackv4      # ./setup.bin -install
stackv4      # make[1]: Leaving directory `/root/.opam/system/build/mirage.1.1.0'
stackv4      ### stderr ###
stackv4      # ...[truncated]
stackv4      # Installed /root/.opam/system/lib/mirage/mirage.a
stackv4      # Installed /root/.opam/system/lib/mirage/mirage.cmxs
stackv4      # Installed /root/.opam/system/lib/mirage/mirage_misc.cmi
stackv4      # Installed /root/.opam/system/lib/mirage/mirage.cmi
stackv4      # Installed /root/.opam/system/lib/mirage/mirage_misc.cmx
stackv4      # Installed /root/.opam/system/lib/mirage/mirage.cmx
stackv4      # Installed /root/.opam/system/lib/mirage/META
stackv4      # cp: cannot create regular file `/root/.opam/system/bin/mirage': Text file busy
stackv4      # E: Failure("Command ''cp' '/root/.opam/system/build/mirage.1.1.0/_build/lib/main.native' '/root/.opam/system/bin/mirage'' terminated with error code 1")
stackv4      # make[1]: *** [install] Error 1
stackv4      
stackv4      
stackv4      The former state can be restored with opam switch import -f "/root/.opam/system/backup/state-20140112143516.export"
stackv4      'opam install --yes mirage-clock-unix mirage-console-unix mirage-http mirage-net-unix mirage-unix tcpip' failed.
stackv4      tar.gz
stackv4      Downloading https://opam.ocaml.org/archives/uri.1.3.13+opam.tar.gz
stackv4      Building uri.1.3.13:
stackv4        ocaml setup.ml -configure --prefix /root/.opam/system
stackv4        ocaml setup.ml -build
stackv4        ocaml setup.ml -install
stackv4      Installing uri.1.3.13.
stackv4      
stackv4      =-=-= Installing cohttp.0.9.16 =-=-=
stackv4      default    Downloading https://opam.ocaml.org/archives/cohttp.0.9.16+opam.tar.gz
stackv4      Downloading https://opam.ocaml.org/archives/cohttp.0.9.16+opam.tar.gz
stackv4      Building cohttp.0.9.16:
stackv4        make PREFIX=/root/.opam/system
stackv4        make PREFIX=/root/.opam/system install
stackv4      Installing cohttp.0.9.16.
stackv4      
stackv4      =-=-= Installing io-page.1.1.0 =-=-=
stackv4      Building io-page.1.1.0:
stackv4        make
stackv4        make install
stackv4      Installing io-page.1.1.0.
stackv4      
stackv4      =-=-= Installing shared-memory-ring.1.0.0 =-=-=
stackv4      Building shared-memory-ring.1.0.0:
stackv4        make all
stackv4        make install
stackv4      Installing shared-memory-ring.1.0.0.
stackv4      
stackv4      =-=-= Installing mirage-types.1.1.0 =-=-=
stackv4      Building mirage-types.1.1.0:
stackv4        make install-types
stackv4      Installing mirage-types.1.1.0.
stackv4      
stackv4      =-=-= Installing mirage.1.1.0 =-=-=
stackv4      Building mirage.1.1.0:
stackv4        ./configure --bindir /root/.opam/system/bin
stackv4        make
stackv4        make install
stackv4      Removing mirage.1.1.0.
stackv4        ./configure --bindir /root/.opam/system/bin
stackv4        make uninstall
stackv4      
stackv4      =-=-= Installing mirage-clock-unix.1.0.0 =-=-=
stackv4      Building mirage-clock-unix.1.0.0:
stackv4        make unix-build
stackv4        make unix-install
stackv4      Installing mirage-clock-unix.1.0.0.
stackv4      
stackv4      =-=-= Installing mirage-net-unix.1.1.0 =-=-=
stackv4      Building mirage-net-unix.1.1.0:
stackv4        make
stackv4        make install
stackv4      Installing mirage-net-unix.1.1.0.
stackv4      
stackv4      =-=-= Installing mirage-unix.1.1.0 =-=-=
stackv4      Building mirage-unix.1.1.0:
stackv4        make unix-build
stackv4        make unix-install PREFIX=/root/.opam/system
stackv4      Installing mirage-unix.1.1.0.
stackv4      
stackv4      =-=-= Installing mirage-console-unix.1.0.0 =-=-=
stackv4      Building mirage-console-unix.1.0.0:
stackv4        make unix-build
stackv4        make unix-install
stackv4      Installing mirage-console-unix.1.0.0.
stackv4      
stackv4      =-=-= Installing tcpip.1.1.0 =-=-=
stackv4      Building tcpip.1.1.0:
stackv4        make
stackv4        make install
stackv4      Installing tcpip.1.1.0.
stackv4      
stackv4      =-=-= Installing mirage-http.1.1.0 =-=-=
stackv4      default    Downloading https://opam.ocaml.org/archives/mirage-http.1.1.0+opam.tar.gz
stackv4      Downloading https://opam.ocaml.org/archives/mirage-http.1.1.0+opam.tar.gz
stackv4      Building mirage-http.1.1.0:
stackv4        make
stackv4        make install
stackv4      Installing mirage-http.1.1.0.
stackv4      
[ERROR]      The command "opam install --yes mirage-clock-unix mirage-console-unix mirage-http mirage-net-unix mirage-unix tcpip" exited with code 4.
make: *** [stackv4-configure] Error 1

@djs55 notes this is because we are upgrading the Mirage binary during a build. This is because an optional dependency is recompiled, when installing an OPAM package.

samoht added a commit to ocaml/opam-repository that referenced this issue Feb 13, 2014
@avsm
Copy link
Member Author

avsm commented Feb 17, 2014

Fixed in upstream OPAM

@avsm avsm closed this as completed Feb 17, 2014
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

No branches or pull requests

1 participant