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

rustdoc file lock fails on os x #19872

Closed
googya opened this issue Dec 15, 2014 · 9 comments
Closed

rustdoc file lock fails on os x #19872

googya opened this issue Dec 15, 2014 · 9 comments
Labels
O-macos Operating system: macOS T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue.

Comments

@googya
Copy link

googya commented Dec 15, 2014

task '

' panicked at 'assertion failed: fd > 0', /Users/leslie/Gits/Rust/rust/src/librustdoc/flock.rs:117
make: *** [doc/libc/index.html] Error 101
make: *** [install] Error 2

Darwin leslie-2.local 14.0.0 Darwin Kernel Version 14.0.0: Fri Sep 19 00:26:44 PDT 2014; root:xnu-2782.1.97~2/RELEASE_X86_64 x86_64

workflow:
get the latest src code

sudo make clean
sudo make
sudo make install

@nodakai
Copy link
Contributor

nodakai commented Dec 17, 2014

@googya Can you reproduce the same issue in a fresh source tree?

The error handling logic in librustdoc/flock.rs is indeed unsatisfactory, but we should not hit it with a fresh source tree.

@googya
Copy link
Author

googya commented Jan 1, 2015

@nodakai Now it seems ok! I pull the latest code, and make it!

@googya googya closed this as completed Jan 1, 2015
@janprill
Copy link

janprill commented Jan 2, 2015

Happened to me after a git pull on master seconds ago.

@janprill
Copy link

janprill commented Jan 2, 2015

Error message is:

thread '<unnamed>' panicked at 'assertion failed: fd > 0', /Users/jp/Documents/workspace/jan/rust/src/librustdoc/flock.rs:117
thread '<main>' panicked at 'called `Result::unwrap()` on an `Err` value: ()', /Users/jp/Documents/workspace/jan/rust/src/libcore/result.rs:746

@googya
Copy link
Author

googya commented Jan 2, 2015

@janprill seems not stable

@googya googya reopened this Jan 12, 2015
@googya
Copy link
Author

googya commented Jan 12, 2015

updated to latest commit:

commit e7b397b
Merge: 32ddbb8 14b6c6d
Author: bors bors@rust-lang.org
Date: Sun Jan 11 22:15:52 2015 +0000

auto merge of #20935 : dotdash/rust/cpu_x86-64, r=luqmana

Using "generic" disables a number of features that are present on all
x86_64 cpus, the "x86-64" target cpu is the common denominator for that
arch.

Refs #20777

the problem is still there

rustdoc: doc/libc/index.html
thread '' panicked at 'assertion failed: fd > 0', /Users/leslie/Gits/Rust/rust/src/librustdoc/flock.rs:119
thread '

' panicked at 'called Result::unwrap() on an Err value: ()', /Users/leslie/Gits/Rust/rust/src/libcore/result.rs:746
make: *** [doc/libc/index.html] Error 101
make: *** [install] Error 2

./configure

configure: looking for configure programs
configure: found cmp
configure: found mkdir
configure: found printf
configure: found cut
configure: found head
configure: found grep
configure: found xargs
configure: found cp
configure: found find
configure: found uname
configure: found date
configure: found tr
configure: found sed
configure: found file
configure: inspecting environment
configure: recreating config.tmp
configure:
configure: processing ./configure args
configure:
configure: CFG_LOCALSTATEDIR := /var/lib
configure: CFG_SYSCONFDIR := /etc
configure: CFG_DATADIR := /share
configure: CFG_INFODIR := /share/info
configure: CFG_LLVM_ROOT :=
configure: CFG_JEMALLOC_ROOT :=
configure: CFG_BUILD := x86_64-apple-darwin
configure: CFG_ANDROID_CROSS_PATH := /opt/ndk_standalone
configure: CFG_BUILD := x86_64-apple-darwin
configure: CFG_LIBDIR := /usr/local/lib
configure:
configure: validating ./configure args
configure:
configure: CFG_RELEASE_CHANNEL := dev
configure: CFG_BOOTSTRAP_KEY := N
configure:
configure: looking for build programs
configure:
configure: CFG_PERL := /usr/bin/perl
configure: CFG_CURLORWGET := /usr/bin/curl (curl 7.37.1 (x86_64-apple-darwin14.0) libcurl/7.37.1 SecureTransport zlib/1.2.5)
configure: CFG_PYTHON := /usr/local/bin/python2.7
configure: CFG_GIT := /usr/local/bin/git (git version 2.2.1)
configure: CFG_CLANG := /usr/bin/clang++ (Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn))
configure: CFG_CCACHE :=
configure: CFG_GCC := /usr/bin/gcc (Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn))
configure: CFG_LD := /usr/bin/ld
configure: CFG_VALGRIND :=
configure: CFG_PERF :=
configure: CFG_ISCC :=
configure: CFG_JAVAC := /usr/bin/javac
configure: CFG_ANTLR4 :=
configure: CFG_GRUN :=
configure: CFG_PANDOC := /usr/local/bin/pandoc (pandoc 1.13.2)
configure: CFG_PDFLATEX := /usr/texbin/pdflatex (pdfTeX 3.14159265-2.6-1.40.15 (TeX Live 2014))
configure: CFG_XELATEX := /usr/texbin/xelatex (XeTeX 3.14159265-2.6-0.99991 (TeX Live 2014))
configure: CFG_LUALATEX := /usr/texbin/lualatex (This is LuaTeX, Version beta-0.79.1 (TeX Live 2014) (rev 4971))
configure: CFG_GDB := /usr/local/bin/gdb (GNU gdb (GDB) 7.8.1)
configure: CFG_LLDB := /usr/bin/lldb (lldb-320.4.156)
configure: CFG_GDB_VERSION := GNU gdb (GDB) 7.8.1
configure: CFG_LLDB_VERSION := lldb-320.4.156
configure: CFG_LLDB_PYTHON_DIR := /Applications/Xcode.app/Contents/Sh ...
configure:
configure: looking for target specific programs
configure:
configure: CFG_ADB :=
./configure: line 697: [: pandoc: integer expression expected
./configure: line 697: [: 1.13.2: integer expression expected
configure:
configure: on OS X 10.9, forcing use of clang
configure:
configure: CFG_ENABLE_CLANG := 1
configure: CFG_USING_CLANG := 1
configure:
configure: found ok version of CLANG: 3.5svn
configure:
configure: CFG_CC := clang
configure: CFG_CXX := clang++
configure:
configure: making directories
configure:
configure:
configure: configuring submodules
configure:
configure: git: submodule sync
Synchronizing submodule url for 'src/compiler-rt'
Synchronizing submodule url for 'src/jemalloc'
Synchronizing submodule url for 'src/llvm'
Synchronizing submodule url for 'src/rt/hoedown'
Synchronizing submodule url for 'src/rust-installer'
configure: git: submodule init
configure: git: submodule update
configure: git: submodule foreach sync
Entering 'src/compiler-rt'
Entering 'src/jemalloc'
Entering 'src/llvm'
Entering 'src/rt/hoedown'
Entering 'src/rust-installer'
configure: git: submodule foreach update
configure: git: submodule status
58ab642c30d9f97735d5745b5d01781ee199c6ae src/compiler-rt (remotes/origin/rust-2015-01-08-do-not-delete)
b001609960ca33047e5cbc5a231c1e24b6041d4b src/jemalloc (3.6.0-156-gb001609)
ec1fdb3b9d3b1fb9e1dae97a65dd3a13db9bfb23 src/llvm (remotes/origin/rust-llvm-2014-10-17)
238c4d57cce10d33b05cf52a91fc62a09f31ffbb src/rt/hoedown (2.0.0-63-g238c4d5)
e577c97b494be2815b215e3042207d6d4b7c5516 src/rust-installer (remotes/origin/HEAD)
-aed73472416064642911af790b25d57c9390b6c7 src/rust-installer/test/rust-installer-v1
configure: git: submodule clobber
Entering 'src/compiler-rt'
Entering 'src/jemalloc'
Entering 'src/llvm'
Entering 'src/rt/hoedown'
Entering 'src/rust-installer'
Entering 'src/compiler-rt'
Entering 'src/jemalloc'
Entering 'src/llvm'
Entering 'src/rt/hoedown'
Entering 'src/rust-installer'
configure:
configure: looking at LLVM
configure:
configure: configuring LLVM for x86_64-apple-darwin
configure: configuring LLVM with:
configure: --enable-targets=x86,x86_64,arm,aarch64,mips --enable-optimized --enable-assertions --disable-docs --enable-bindings=none --disable-terminfo --disable-zlib --disable-libffi --enable-libcpp --build=x86_64-apple-darwin --host=x86_64-apple-darwin --target=x86_64-apple-darwin --with-python=/usr/local/bin/python2.7
checking for x86_64-apple-darwin-clang... clang -Qunused-arguments
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether clang -Qunused-arguments accepts -g... yes
checking for clang -Qunused-arguments option to accept ISO C89... none needed
checking whether we are using the GNU C++ compiler... yes
checking whether clang++ -Qunused-arguments accepts -g... yes
checking how to run the C preprocessor... clang -Qunused-arguments -E
checking whether GCC or Clang is our host compiler... clang
checking build system type... x86_64-apple-darwin
checking host system type... x86_64-apple-darwin
checking target system type... x86_64-apple-darwin
checking type of operating system we're going to host on... Darwin
checking type of operating system we're going to target... Darwin
checking target architecture... x86_64
checking whether Clang is new enough... yes
checking optimization flags... -O3
checking for GNU make... make
checking whether ln -s works... yes
checking for nm... /usr/bin/nm
checking for cmp... /usr/bin/cmp
checking for cp... /bin/cp
checking for date... /bin/date
checking for find... /usr/bin/find
checking for grep... /usr/bin/grep
checking for mkdir... /bin/mkdir
checking for mv... /bin/mv
checking for x86_64-apple-darwin-ranlib... no
checking for ranlib... ranlib
checking for x86_64-apple-darwin-ar... no
checking for ar... ar
checking for rm... /bin/rm
checking for sed... /usr/bin/sed
checking for tar... /usr/bin/tar
checking for pwd... /bin/pwd
checking for dot... /usr/local/bin/dot
checking for a BSD-compatible install... /usr/bin/install -c
checking for bzip2... /usr/bin/bzip2
checking for cat... /bin/cat
checking for doxygen... no
checking for groff... /usr/bin/groff
checking for gzip... /usr/bin/gzip
checking for pdfroff... /usr/bin/pdfroff
checking for zip... /usr/bin/zip
checking for ocamlc... /usr/local/bin/ocamlc
checking for ocamlopt... /usr/local/bin/ocamlopt
checking for ocamldep... /usr/local/bin/ocamldep
checking for ocamldoc... /usr/local/bin/ocamldoc
checking for gas... no
checking for as... /usr/bin/as
checking for linker version... 241.9
checking for compiler -Wl,-R option... no
checking for compiler -rdynamic option... yes
checking for compiler -Wl,--version-script option... no
checking for grep that handles long lines and -e... (cached) /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking tool compatibility... ok
checking optional compiler flags... -Wno-variadic-macros -Wno-missing-field-initializers -Wcovered-switch-default -Wno-uninitialized
checking for python... user defined: /usr/local/bin/python2.7
checking for python >= 2.5... /usr/local/bin/python2.7 (2.7.9)
checking for sin in -lm... yes
checking for library containing dlopen... none required
checking for library containing clock_gettime... no
checking for library containing el_init... -ledit
checking for library containing mallinfo... no
checking for pthread_mutex_init in -lpthread... yes
checking for library containing pthread_mutex_lock... none required
checking for library containing pthread_rwlock_init... none required
checking for library containing pthread_getspecific... none required
checking for xml2-config... xml2-config
checking for libxml2 includes... -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/libxml2
checking for xmlReadFile in -lxml2... yes
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking for MAP_ANONYMOUS vs. MAP_ANON... no
checking whether stat file-mode macros are broken... no
checking for sys/wait.h that is POSIX.1 compatible... yes
checking whether time.h and sys/time.h may both be included... yes
checking how to run the C++ preprocessor... clang++ -Qunused-arguments -E
checking cxxabi.h usability... yes
checking cxxabi.h presence... yes
checking for cxxabi.h... yes
checking dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking execinfo.h usability... yes
checking execinfo.h presence... yes
checking for execinfo.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking for inttypes.h... (cached) yes
checking link.h usability... no
checking link.h presence... no
checking for link.h... no
checking malloc.h usability... no
checking malloc.h presence... no
checking for malloc.h... no
checking setjmp.h usability... yes
checking setjmp.h presence... yes
checking for setjmp.h... yes
checking signal.h usability... yes
checking signal.h presence... yes
checking for signal.h... yes
checking for stdint.h... (cached) yes
checking termios.h usability... yes
checking termios.h presence... yes
checking for termios.h... yes
checking for unistd.h... (cached) yes
checking utime.h usability... yes
checking utime.h presence... yes
checking for utime.h... yes
checking sys/mman.h usability... yes
checking sys/mman.h presence... yes
checking for sys/mman.h... yes
checking sys/param.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking sys/resource.h usability... yes
checking sys/resource.h presence... yes
checking for sys/resource.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking sys/uio.h usability... yes
checking sys/uio.h presence... yes
checking for sys/uio.h... yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking malloc/malloc.h usability... yes
checking malloc/malloc.h presence... yes
checking for malloc/malloc.h... yes
checking mach/mach.h usability... yes
checking mach/mach.h presence... yes
checking for mach/mach.h... yes
checking valgrind/valgrind.h usability... no
checking valgrind/valgrind.h presence... no
checking for valgrind/valgrind.h... no
checking fenv.h usability... yes
checking fenv.h presence... yes
checking for fenv.h... yes
checking whether FE_ALL_EXCEPT is declared... yes
checking whether FE_INEXACT is declared... yes
checking pthread.h usability... yes
checking pthread.h presence... yes
checking for pthread.h... yes
checking CrashReporterClient.h usability... no
checking CrashReporterClient.h presence... no
checking for CrashReporterClient.h... no
checking crashreporter_info... yes
checking for HUGE_VAL sanity... yes
checking for pid_t... yes
checking for size_t... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking for int64_t... yes
checking for uint64_t... yes
checking for backtrace... yes
checking for ceilf... yes
checking for floorf... yes
checking for roundf... yes
checking for rintf... yes
checking for nearbyintf... yes
checking for getcwd... yes
checking for powf... yes
checking for fmodf... yes
checking for strtof... yes
checking for round... yes
checking for log... yes
checking for log2... yes
checking for log10... yes
checking for exp... yes
checking for exp2... yes
checking for getpagesize... yes
checking for getrusage... yes
checking for getrlimit... yes
checking for setrlimit... yes
checking for gettimeofday... yes
checking for isatty... yes
checking for mkdtemp... yes
checking for mkstemp... yes
checking for mktemp... yes
checking for posix_spawn... yes
checking for pread... yes
checking for realpath... yes
checking for sbrk... yes
checking for setrlimit... (cached) yes
checking for strerror... yes
checking for strerror_r... yes
checking for setenv... yes
checking for strtoll... yes
checking for strtoq... yes
checking for sysconf... yes
checking for malloc_zone_statistics... yes
checking for setjmp... yes
checking for longjmp... yes
checking for sigsetjmp... yes
checking for siglongjmp... yes
checking for writev... yes
checking for futimes... yes
checking for futimens... no
checking if printf has the %a format character... yes
checking for srand48/lrand48/drand48 in <stdlib.h>... yes
checking whether arc4random is declared... yes
checking whether strerror_s is declared... no
checking for isnan in <math.h>... yes
checking for isnan in ... yes
checking for std::isnan in ... yes
checking for isinf in <math.h>... yes
checking for isinf in ... yes
checking for std::isinf in ... yes
checking for finite in <ieeefp.h>... no
checking for stdlib.h... (cached) yes
checking for unistd.h... (cached) yes
checking for getpagesize... (cached) yes
checking for working mmap... yes
checking for mmap of files... yes
checking if /dev/zero is needed for mmap... no
checking for GCC atomic builtins... yes
checking for __dso_handle... yes
checking for compiler -fvisibility-inlines-hidden option... yes
configure: creating ./config.status
config.status: creating include/llvm/Config/Targets.def
config.status: creating include/llvm/Config/AsmPrinters.def
config.status: creating include/llvm/Config/AsmParsers.def
config.status: creating include/llvm/Config/Disassemblers.def
config.status: creating Makefile.config
config.status: creating llvm.spec
config.status: creating docs/doxygen.cfg
config.status: creating bindings/ocaml/llvm/META.llvm
config.status: creating include/llvm/Config/config.h
config.status: creating include/llvm/Config/llvm-config.h
config.status: creating include/llvm/Support/DataTypes.h
config.status: include/llvm/Support/DataTypes.h is unchanged
config.status: executing setup commands
config.status: executing Makefile commands
config.status: executing Makefile.common commands
config.status: executing examples/Makefile commands
config.status: executing lib/Makefile commands
config.status: executing test/Makefile commands
config.status: executing test/Makefile.tests commands
config.status: executing unittests/Makefile commands
config.status: executing tools/Makefile commands
config.status: executing utils/Makefile commands
config.status: executing projects/Makefile commands
config.status: executing bindings/Makefile commands
config.status: executing bindings/ocaml/Makefile.ocaml commands
configure:
configure: writing configuration
configure:
configure: CFG_SRC_DIR := /Users/leslie/Gits/Rust/rust/
configure: CFG_BUILD_DIR := /Users/leslie/Gits/Rust/rust/
configure: CFG_OSTYPE := apple-darwin
configure: CFG_CPUTYPE := x86_64
configure: CFG_CONFIGURE_ARGS :=
configure: CFG_PREFIX := /usr/local
configure: CFG_HOST := x86_64-apple-darwin
configure: CFG_TARGET := x86_64-apple-darwin
configure: CFG_LIBDIR_RELATIVE := lib
configure: CFG_DISABLE_MANAGE_SUBMODULES :=
configure: CFG_ANDROID_CROSS_PATH := /opt/ndk_standalone
configure: CFG_MANDIR := /usr/local/share/man
configure: CFG_LLVM_SRC_DIR := /Users/leslie/Gits/Rust/rust/src/ll ...
configure: CFG_LLVM_BUILD_DIR_x86_64_apple_darwin := /Users/leslie/Gits/Rust/rust/x86_64 ...
configure: CFG_LLVM_INST_DIR_x86_64_apple_darwin := /Users/leslie/Gits/Rust/rust/x86_64 ...
configure:
configure: leaving ./Makefile unchanged
configure: leaving config.mk unchanged
configure:
configure: complete
configure:
configure: run make help
configure:

@nodakai

@brson brson changed the title make install fail! rustdoc file lock fails on os x Jan 14, 2015
@brson
Copy link
Contributor

brson commented Jan 14, 2015

I updated the title to reflect that this seems to be a bug in rustdocs flock implementation on darwin. cc @alexcrichton

@googya
Copy link
Author

googya commented Jan 15, 2015

@brson en, you are right..

@kmcallister kmcallister added T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. O-macos Operating system: macOS labels Jan 16, 2015
alexcrichton added a commit to alexcrichton/rust that referenced this issue Jan 18, 2015
bors added a commit that referenced this issue Jan 20, 2015
@alexcrichton
Copy link
Member

I haven't seen this crop up in quite awhile, and I think that this code went through some refactorings since this was opened, so I'm going to close this as "probably fixed", but if it happens again feel free to reopen or make a new issue!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
O-macos Operating system: macOS T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

6 participants