2016-05-13 5 views
0

Я пытаюсь выполнить инструкции по адресу syntaxnet's github page для создания синтаксических моделей синтаксического анализа.Ошибка сборки Bazel с ошибкой «Выполнение genrule @six_archive //: copy_six failed» при построении синтаксиса

Моя система Debian Wheezy. Не должно сильно отличаться от Ubuntu 14.04 LTS или 15.05. Я собрал базу 0.2.2 (в отличие от 0.2.2b) от источника и, похоже, работает правильно.

Когда я запускаю команду bazel test syntaxnet/... util/utf8/..., никакие тесты не выполняются (все пропущены) с некоторыми довольно загадочными сообщениями об ошибках. Вот пример:

[email protected]:~/tensorflow_syntaxnet/models/syntaxnet# ../../bazel/output/bazel test syntaxnet/... util/utf8/... 
Extracting Bazel installation... 
............. 
INFO: Found 65 targets and 12 test targets... 
ERROR: /root/.cache/bazel/_bazel_root/74c6bab7a21f28ad02405b720243d086/external/six_archive/BUILD:1:1: Executing genrule @six_archive//:copy_six failed: namespace-sandbox failed: error executing command /root/.cache/bazel/_bazel_root/74c6bab7a21f28ad02405b720243d086/syntaxnet/_bin/namespace-sandbox ... (remaining 5 argument(s) skipped). 
unshare failed with EINVAL even after 101 tries, giving up. 
INFO: Elapsed time: 95.469s, Critical Path: 22.46s 
//syntaxnet:arc_standard_transitions_test        NO STATUS 
//syntaxnet:beam_reader_ops_test          NO STATUS 
//syntaxnet:graph_builder_test          NO STATUS 
//syntaxnet:lexicon_builder_test          NO STATUS 
//syntaxnet:parser_features_test          NO STATUS 
//syntaxnet:parser_trainer_test          NO STATUS 
//syntaxnet:reader_ops_test           NO STATUS 
//syntaxnet:sentence_features_test         NO STATUS 
//syntaxnet:shared_store_test           NO STATUS 
//syntaxnet:tagger_transitions_test         NO STATUS 
//syntaxnet:text_formats_test           NO STATUS 
//util/utf8:unicodetext_unittest          NO STATUS 

Executed 0 out of 12 tests: 12 were skipped. 

Я использую Oracle Java-JDK в соответствии с рекомендациями, и мой компилятор:

~/tensorflow_syntaxnet/models/syntaxnet# gcc --version 
gcc (Debian 4.7.2-5) 4.7.2 
Copyright (C) 2012 Free Software Foundation, Inc. 
This is free software; see the source for copying conditions. There is NO 
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 

Пробовал смотреть в namespace-sandbox двоичную, который упоминается в сообщении об ошибке, но, прежде чем я глубоко погрузившись в это, я подумал, что попрошу здесь.

~/tensorflow_syntaxnet/models/syntaxnet# ls -l /root/.cache/bazel/_bazel_root/74c6bab7a21f28ad02405b720243d086/syntaxnet/_bin/namespace-sandbox 
lrwxrwxrwx 1 root root 108 May 13 14:52 /root/.cache/bazel/_bazel_root/74c6bab7a21f28ad02405b720243d086/syntaxnet/_bin/namespace-sandbox -> /root/.cache/bazel/_bazel_root/install/ca381eaad1c931167a6355cb8a2b98cf/_embedded_binaries/namespace-sandbox 
~/tensorflow_syntaxnet/models/syntaxnet# readlink /root/.cache/bazel/_bazel_root/74c6bab7a21f28ad02405b720243d086/syntaxnet/_bin/namespace-sandbox 
/root/.cache/bazel/_bazel_root/install/ca381eaad1c931167a6355cb8a2b98cf/_embedded_binaries/namespace-sandbox 

Команда, кажется, работает нормально, хотя:

~/tensorflow_syntaxnet/models/syntaxnet# file $(readlink /root/.cache/bazel/_bazel_root/74c6bab7a21f28ad02405b720243d086/syntaxnet/_bin/namespace-sandbox) 
/root/.cache/bazel/_bazel_root/install/ca381eaad1c931167a6355cb8a2b98cf/_embedded_binaries/namespace-sandbox: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, BuildID[md5/uuid]=0xecfd97b6a6b9a193b045be13654bd55b, not stripped 
~/tensorflow_syntaxnet/models/syntaxnet# /root/.cache/bazel/_bazel_root/install/ca381eaad1c931167a6355cb8a2b98cf/_embedded_binaries/namespace-sandbox 
No command specified. 
Usage: /root/.cache/bazel/_bazel_root/install/ca381eaad1c931167a6355cb8a2b98cf/_embedded_binaries/namespace-sandbox [-S sandbox-root] -- command arg1 
    provided: /root/.cache/bazel/_bazel_root/install/ca381eaad1c931167a6355cb8a2b98cf/_embedded_binaries/namespace-sandbox 
Mandatory arguments: 
    -S <sandbox-root> directory which will become the root of the sandbox 
    -- command to run inside sandbox, followed by arguments 

Optional arguments: 
    -W <working-dir> working directory 
    -T <timeout> timeout after which the child process will be terminated with SIGTERM 
    -t <timeout> in case timeout occurs, how long to wait before killing the child with SIGKILL 
    -d <dir> create an empty directory in the sandbox 
    -M/-m <source/target> system directory to mount inside the sandbox 
    Multiple directories can be specified and each of them will be mounted readonly. 
    The -M option specifies which directory to mount, the -m option specifies where to 
    mount it in the sandbox. 
    -n if set, a new network namespace will be created 
    -r if set, make the uid/gid be root, otherwise use nobody 
    -D if set, debug info will be printed 
    -l <file> redirect stdout to a file 
    -L <file> redirect stderr to a file 
    @FILE read newline-separated arguments from FILE 

Любая идея?

UPDATE: Я сделал точно такие же шаги на Ubuntu 14.04 LTS (моей маленькой станции, в отличие от производственного сервера под управлением Debian) и все работает хорошо там, все тесты проходит. Интересно, в чем разница.

ответ

1

По-видимому, некоторые ошибки разрешения возникают при настройке песочницы. Быстрое обходное решение заключается в деактивации песочницы с помощью --genrule_strategy=standalone --spawn_strategy=standalone (обратите внимание, что второй уже указан в файле rc TensorFlow).

Вы можете установить этот флаг в файле ~/.bazelrc: echo "build --genrule_strategy=standalone --spawn_strategy=standalone" >>~/.bazelrc

+0

Благодаря Дэмиена. Сборка по-прежнему терпит неудачу после очистки/полной перестройки, хотя с другим сообщением об ошибке может быть больше исходного кода, чем проблема с построением. '/ core/BUILD: 734: 1: C++ компиляция правила '@ tf // tensorflow/core: lib_internal' failed: gcc failed: ошибка выполнения команды/usr/bin/gcc -U_FORTIFY_SOURCE '-D_FORTIFY_SOURCE = 1' - fstack-protector -Wall -Wl, -z, -relro, -z, now -Wunused-but-set-parameter -Wno-free-nonheap-object -fno-omit-frame-pointer -g0 -O2 -DNDEBUG .. . (остальные 70 аргументов пропущены): com.google.devtools.build.lib.shell.BadExitStatusException: процесс завершен со статусом 1' – cosimo

 Смежные вопросы

  • Нет связанных вопросов^_^