FAQ
- Как установить анализатор в Ubuntu и других Linux-дистрибутивах, основанных на Debian?
- Как установить анализатор из архива?
- Как включить только критические типы предупреждений?
- Как включить дополнительные типы предупреждений?
- Как получить отчёт о найденных предупреждениях?
- Как скрыть предупреждения, выдаваемые в определенных файлах?
- Как запустить анализ только на определенных модулях?
- Как запустить только нужные виды анализа?
- Что делать, если svace build завершается с ошибкой The build command exited with non-zero code N?
- Что делать, если svace build завершается с сообщением Assembled build object: null?
- Какие данные могут помочь для диагностики проблем svace build?
- Не работает перехват сборки через Bazel
- Перехват компиляций Go в сборочных системах, запускающих компилятор напрямую вместо использования go build (например, в Bazel)
- Перехват компиляций Go, если версия Go в go.mod новее, чем поддерживается в Svace
- Как можно ускорить перехват сборки?
- Перехват сборки при работе в IDE
- Как перехватить сборку в среде ScratchBox 2, используемой для ОС Аврора?
- Что делать, если сборка проекта на C# завершается с ошибкой Hash server returned non-zero exit code 1?
- Что делать, если svace analyze завершается с ошибкой svace analyze: error: Svace analyzer exited with code -9?
- Какие данные могут помочь для диагностики проблем svace analyze?
- Диагностика внутри модульных ложных срабатываний SvEng.
- Ошибки загрузки LLVM-файлов
Система лицензирования Sentinel
- Что нужно установить для работы Svace?
- Как убедиться, что лицензия на анализатор активна?
- Как воспользоваться сетевой лицензией?
- Что означает предупреждение "WARNING: Outdated USB license key detected."?
- Что означает ошибка "Sentinel key not found (H0007)"?
- Что означает ошибка "Feature has expired (H0041)"?
- Что означает ошибка "Sentinel License Manager version too old (H0042)"?
- Что означает ошибка "Internal error (H0400)"?
Установка
Как установить анализатор в Ubuntu и других Linux-дистрибутивах, основанных на Debian?
Анализатор Svace, как и другие инструменты, разрабатываемые ИСП РАН, в том числе фаззер Crusher и сервер хранения истории анализа Svacer, можно установить с использованием APT-репозитория. Для добавления его в список репозиториев нужно выполнить следующие команды:
echo 'deb [signed-by=/usr/share/keyrings/ispras.gpg] https://repo.ispras.ru/apt /' | sudo tee /etc/apt/sources.list.d/ispras.list curl -fsSL https://repo.ispras.ru/apt/key.asc | sudo gpg --dearmor -o /usr/share/keyrings/ispras.gpg sudo apt update
После этого с помощью следующей команды можно установить последнюю версию анализатора:
sudo apt install --install-recommends svace
Если вы планируете запускать только перехват сборки, а анализ проводить на другом сервере, то можете не устанавливать пакет драйвера системы лицензирования aksusbd, необходимый для работы команды svace analyze. Для этого удалите опцию --install-recommends из команды установки выше.
Как установить анализатор из архива?
Скачайте требуемую версию анализатора из папки Svace установочного комплекта анализатора по ссылке https://download.ispras.ru/svace. Для Linux-дистрибутивов используйте архив svace-<версия>-x64-linux.tar.bz2, для ОС Windows - архив svace-<версия>-x64-windows.zip, для MacOS - svace-<версия>-x64-darwin.tar.bz2. Распакуйте архив в любую папку, например, ~/svace в Linux или %userprofile%\Documents в Windows. Для проведения анализа также потребуется установить драйвер системы лицензирования Sentinel по инструкции ниже (если вы планируете запускать только перехват сборки, а анализ проводить на другом сервере, то можете пропустить этот шаг). Для удобства использования анализатора мы рекомендуем добавить путь к подпапке bin распакованного дистрибутива анализатора в переменную окружения PATH. В этом случае для запуска анализатора будет достаточно выполнить команду svace без указания полного пути к этой папке.
Общие вопросы
Как включить только критические типы предупреждений?
Перед запуском анализа с помощью команды svace analyze выполните последовательность команд svace warning all false для выключения всех типов предупреждений, а затем svace warning critical true для включения только критических типов предупреждений.
Если вы уже импортировали результаты анализа в сервер истории, то откройте необходимый снапшот анализа и выберите Basic filters в меню Filters:

В открывшемся окне укажите значение Critical в поле Checker severity, после чего нажмите Apply:

Как включить дополнительные типы предупреждений?
По умолчанию, анализатор выдаёт только предупреждения из сбалансированного по соотношению ложных и истинных набора типов предупреждений, однако с помощью команды svace warning all true, выполненной перед командой svace analyze можно включить все доступные типы предупреждений. В этом случае в результатах последующих анализов будут показаны и более редкие типы дефектов, и те предупреждения, степень уверенности в истинности которых у анализатора меньше.
Как получить отчёт о найденных предупреждениях?
После успешного запуска анализа с помощью команды svace analyze в папке проекта генерируется текстовый файл со сводкой найденных дефектов и уязвимостей, который можно найти по пути .svace-dir/analyze-res/<project-name>.txt.
Если вы уже импортировали результаты анализа в сервер истории, то откройте необходимый снапшот анализа и выберите Download current markers list:

В открывшемся меню выберите Download as PDF для того, чтобы скачать отчёт в формате PDF.
Как скрыть предупреждения, выдаваемые в определенных файлах?
Для этого добавьте в файл config/svace.ignore дистрибутива Svace регулярные выражения, которые будут соответствовать путям к файлам, из которых вы хотите скрыть предупреждения.
Начиная с версии 3.2.0-update-210527 аналогичный файл с именем svace.ignore также создаётся в папке проекта .svace-dir для сокрытия предупреждений из файлов по регулярным выражениям, специфичным для отдельного проекта.
Предупреждения скрываются только если основная точка предупреждения расположена в одном из файлов, пути которых соответствуют хотя бы одному регулярному выражению из указанных выше файлов. Однако, такие пути могут встретиться и в качестве элементов дополнительных трасс для демонстрации того, по какому пути выполнения дефект может проявиться. В этом случае, такое предупреждение не будет скрыто.
Как запустить анализ только на определенных модулях?
Для этого существует параметр конфигурации ANALYZE_MODULES, который можно установить при помощи следующей команды
svace config ANALYZE_MODULES <имя модуля>
<имя модуля> имеет формат <имя исходника>.<хэш-код>, например: driver.42460b00fd80b3d04e12c1fe18a909ca
Имена анализируемых модулей перечисляются при работе svace analyze как-то так:
Analyzing compilation 'driver.42460b00fd80b3d04e12c1fe18a909ca'
В параметре ANALYZE_MODULES можно указать имена нескольких модулей через запятую:
svace config ANALYZE_MODULES driver.42460b00fd80b3d04e12c1fe18a909ca,biker.b3d04e12c1fe18a909ca42460b00fd80
Как запустить только нужные виды анализа?
Для этого у команды svace analyze существует набор опций, выключающих тот или иной вид анализа:
- --skip-uast-analysis Не запускать анализ на основе UAST.
- --skip-c-analysis Не запускать анализ C/C++ при помощи SvEng (на анализ CSA данная опция не влияет, а UAST для C/C++ у нас не строится).
- --skip-java-analysis Не запускать анализ Java при помощи SvEng (на Spotbugs-анализ и анализ на основе UAST данная опция не влияет).
- --skip-sveng-analysis Не запускать анализ C/C++ при помощи SvEng (на запуск анализов CSA, Spotbugs и UAST не влияет).
- --skip-csa-analysis Не запускать анализ C/C++ при помощи CSA.
Перехват сборки
Что делать, если svace build завершается с ошибкой The build command exited with non-zero code N?
svace build трактует ненулевой код выхода команды сборки как ошибку.
- Проверьте вывод команды сборки на предмет наличия ошибок (компиляции и т.д.)
- Если вы используете сборочный скрипт, убедитесь, что последняя выполненная команда скрипта всегда завершается успешно (с нулевым кодом)
- Некоторые системы сборки пытаются работать с папкой проекта .svace-dir, если она находится в папке сборки. Если вы не уверены, что ваша команда сборки не конфликтует с папкой проекта (удаляя, изменяя или обрабатывая файлы, находящиеся в ней), то попробуйте создать папку проекта вне папки сборки и перезапустить команду svace build, передав путь к папке проекта с помощью опции --svace-dir <путь>.
- Проверьте, завершается ли команда сборки с нулевым кодом, будучи запущенной без svace build. Если это так, сообщите о проблеме. Для проверки кода сразу после завершения команды выполните echo %errorlevel% (Windows) или echo $? (POSIX).
Что делать, если svace build завершается с сообщением Assembled build object: null?
Svace не обнаружил либо не смог успешно обработать ни одну команду известного ему компилятора. Возможные причины:
- Команда сборки действительно не выполнила ни одной компиляции (например, из-за отсутствия предварительного make clean, опции /t:rebuild у msbuild, опции --no-build-cache у gradle build и т.п.). Как вариант, все выполненные компиляции были configure- или cmake-тестами и поэтому пропущены Svace.
- Команды компиляции были фактически запущены не из команды сборки или её дочерних процессов, а из сервера компиляций, работающего в фоновом режиме. Используйте опции сборочной системы, отключающие такой режим (например, gradle --no-daemon). Если вы собираете из IDE, попробуйте собрать из командной строки.
- Компиляции не были обнаружены, т.к. используемый компилятор не был распознан или не поддерживается Svace. Сообщите о проблеме.
- Обработка всех обнаруженных компиляций завершилась с ошибкой. Обычно сопровождается сообщением 0 C/C++ units are ready. Также для распознавания этой ситуации можно включить опцию --verbose команды svace build и проверить количество перехваченных (intercepted) команд компиляции и пропущенных (skipped) модулей трансляции. Если есть пропущенные модули, сообщите о проблеме.
Какие данные могут помочь для диагностики проблем svace build?
Наиболее полезный набор данных можно получить, передав svace build опцию --debug и убрав опцию --clear-build-dir, если она использовалась.
Маски файлов из $SVACE_DIR/bitcode, полезных для диагностики:
- build-info.txt
- event.log
- build-debug.log
- build-agent.log
- *.fuz
- *.err
- */*.log
- */MSBuild.trace
- ./*.txt
- ./*.opts
- js/*/js.translator.log
- js/*/js.translator.err
Указанные выше файлы не содержат исходного кода собираемого проекта, за исключением фрагментов, цитируемых в диагностике компилятора. Некоторые из этих файлов могут отсутствовать.
Пример команды bash для архивации этих файлов (при запуске из папки .svace-dir/bitcode):
tar --ignore-failed-read -cjf logs.tar.bz2 build-info.txt {build-debug,build-agent,event,*/*}.log */MSBuild.trace ./*.{fuz,err,txt,opts} ./js/*/js.translator.{log,err}Если команда сборки выводит сообщения об ошибках, только будучи выполненной под svace build, эти сообщения также будут полезны.
Собранные данные можно в виде архива прикрепить к сообщению об ошибке.
Не работает перехват сборки через Bazel
- Убедитесь, что Bazel не использует ранее запущенный сервер компиляций. Возможные способы:
- Используйте опцию --batch (bazel --batch build ...)
- Завершите сервер перед сборкой: bazel shutdown.
- На Linux, попробуйте ослабить песочницу через опцию --spawn_strategy=processwrapper-sandbox,standalone.
Перехват компиляций Go в сборочных системах, запускающих компилятор напрямую вместо использования go build (например, в Bazel)
Используйте экспериментальный режим --go-interception-mode=compile.
Этот режим может применяться и для проектов, собираемых через go build, однако обратите внимание, что возможны различия в результатах анализа по сравнению с режимом перехвата go-build, связанные, в первую очередь, с обработкой ситуаций, когда в сборке участвуют несколько пакетов с одинаковым именем, но разными версиями. Работы в этой области в Svace продолжаются.
Перехват компиляций Go, если версия Go в go.mod новее, чем поддерживается в Svace
Для минорных версий Go:
- В случае, если минорная версия, указанная в файле go.mod проекта, превышает версию, поддерживаемую Svace, анализ проекта будет выполнен.
Для мажорных версий Go:
- Попробовать использовать директиву toolchain в go.mod.
module project go 1.22.0 toolchain go1.23.0
- Попробовать использовать режим go-interception-mode=compile.
Если ваш проект использует новые фичи из новой мажорной версии языка, то Svace может собрать проект не полностью или не собрать его вовсе.
Как можно ускорить перехват сборки?
Можно рассмотреть возможность использования следующих опций:
- --disable-dxr: выключает генерацию данных об определениях и использованиях сущностей языка, делая недоступной соответствующую функциональность в веб-интерфейсе. На тяжёлых C++ проектах может занимать 20% и более от времени сборки.
- --disable-csa-deps: выключает генерацию промежуточных данных для последующего запуска Clang Static Analyzer в рамках svace analyze. Не должна оказывать большого влияния на время svace build, однако позволяет не выполнять лишнюю работу, если результаты работы Clang Static Analyzer не требуются.
Также поступали сообщения о значительном замедлении (вплоть до зависания) перехвата сборки при использовании антивируса. Если вы столкнулись с данной проблемой, временно отключите антивирус.
Перехват сборки при работе в IDE
Svace поддерживает перехват сборки в случае, если сборка запущена, например, нажатием кнопки "Build" из графической IDE. Для обеспечения перехвата сборки необходимо запустить IDE (например, Microsoft Visual Studio) под контролем Svace командой
svace build devenv.exe
После окончания сборки необходимо в ручном режиме завершить работу с IDE - после этого можно будет проанализировать все исходные файлы, скомпилированные в процессе сборки через IDE.
Перехват сборки проектов на языке C# в таком режиме не поддерживается, т. к. Visual Studio собирает проекты самостоятельно без использования MSBuild.
Как перехватить сборку в среде ScratchBox 2, используемой для ОС Аврора?
- Используйте дистрибутив Svace с суффиксом -sb2, соответствующий разрядности сборочного окружения (x86-linux-sb2 для 32-битного ARM, x64-linux-sb2 для aarch64)
-
Разместите дистрибутив Svace в каталоге, для которого sb2 не переписывает пути при доступе к нему, например, в $HOME. Симптомом некорректного расположения дистрибутива является следующее сообщение:
ERROR: ld.so: object 'libsvace.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
-
Запускайте svace build внутри песочницы sb2 (т.е. sb2 svace build ..., а не svace build sb2...). В противном случае компоненты svace build, работающие снаружи песочницы, не смогут проинтерпретировать пути к файлам внутри песочницы (т.к. эти пути могут являться ненастоящими и переписываться sb2 непосредственно перед доступом к файлу). Симптомом некорректного запуска является следующее предупреждение в конце сборки:
svace build: warning: Hash server reported some errors.
- Используйте опцию --prepend-preload-lib у svace build.
Что делать, если сборка проекта на C# завершается с ошибкой Hash server returned non-zero exit code 1?
- Если файл svace-hash.err содержит сообщения вида Svace had some problems while working with [/some/path/to/source.cs], проблема может быть в том, что этот исходный файл был удалён во время сборки до того, как svace build его обработал. Такое происходит, в частности, с временными проектами WPF. Для обхода этой проблемы передайте MSBuild опцию /p:GenerateTemporaryTargetAssemblyDebuggingInformation=true.
- В любом другом случае сообщите об ошибке.
Анализ SvEng
Что делать, если svace analyze завершается с ошибкой svace analyze: error: Svace analyzer exited with code -9?
Данная ошибка возникает, когда анализ аварийно завершается по сигналу SIGKILL от другого процесса. Как правило, его посылает системный процесс oomkiller в случае, если система находится в состоянии нехватки памяти. В этом случае попробуйте разгрузить систему во время запуска анализа, или используйте другую с достаточным для анализа данного проекта объёмом оперативной памяти. В некоторых случаях явное указание ограничения на объём используемой анализатором оперативной памяти с помощью опции svace analyze --memory может также исправить данную проблему.
Какие данные могут помочь для диагностики проблем svace analyze?
Идеально предоставить полностью папку проекта .svace-dir.
Важно! Папка проекта содержит полный текст анализируемых исходных файлов. Не присылайте её, если исходные файлы составляют тайну.
Примечание: для удаления исходного кода, сохранённого в процессе перехвата сборки, достаточно удалить директорию .svace-dir/shared/snapshots/gitrepo.
Если предоставить папку проекта целиком невозможно, то можно предоставить директорию .svace-dir/analyze-res. Эта директория содержит только результаты анализа и файлы его логов, в том числе файл с ошибками основной фазы анализа .svace-dir/analyze-res/<имя проекта>.err.
Диагностика внутри модульных ложных срабатываний SvEng.
В тех случаях, когда причина ложного предупреждения не зависит от межмодульного срабатывания, для диагностики можно отправить один bc-файл. Для этого необходимо:
- Установить опцию PRINT_MODULE_PATH: svace config PRINT_MODULE_PATH true
- Переанализировать проект с этой опцией: svace analyze --skip-csa
- открыть файл .svace-dir/analyze-res/<proj>.log. Найти там соответствующий файл промежуточного представления. Фрагмент
- (3/3) func1 (from /home/example/my-proj/777/f.c) │ proj path: .svace-dir/shared/bytecode/1a/c4/1ac4b55c305b6facfc14aa6b5aee0927d5068936
означает что функция func1 из файла /home/example/my-proj/777/f.c имеет промежуточное представление .svace-dir/shared/bytecode/1a/c4/1ac4b55c305b6facfc14aa6b5aee0927d5068936.
- Создать новую директорию и перейти в неё
- Выполнить команду svace init
- Создать директорию .svace-dir/bitcode
- Переместить файл с промежуточным представлением в эту директорию, переименовав его так, чтобы он имел суффикс .bc, например:
cp proj/.svace-dir/shared/bytecode/1a/c4/1ac4b55c305b6facfc14aa6b5aee0927d5068936 new-dir/.svace-dir/bitcode/error.bc
- Выполнить анализ проекта для одного модуля:
svace analyze --skip-csa --raw-files
Если ошибка по прежнему выдаётся, то с большой вероятностью этого файла будет достаточно. Дополнительно необходимо описать оригинальную проблему.
Ошибки загрузки LLVM-файлов
Чтение файлов LLVM может привести к аварийному завершению всего анализа. Повторный запуск анализатора не исправит эту ошибку.
Для того, чтобы найти проблемный файл, желательно включить анализ в один поток:
svace config THREAD_NUMBER 1
И включить логирование чтения LLVM-файлов:
svace config LLVMPARSE_DEBUG_LEVEL 5
После запуска анализатора в директории .svace_dir/analyze-res будет создан файл <proj>-llvmparse-debug.log. Для файлов, которые прочлись удачно, записи будут иметь вид:
[begin] build call graph: path-to-file [load] build call graph: path-to-file [parse] build call graph: path-to-file [end] build call graph: path-to-file
Самое важное - наличие метки [end] после метки [begin]. Если её нет, то проблемы возникли именно с этим файлом.
Как обойти эту проблему - исключить проблемный файл из анализа. ВАЖНО: это не является решением проблемы. Результаты анализа могут сильно отличаться в зависимости от того какой именно файл был исключён.
svace config SKIP_ANALYZE_MODULES module-hash
module-hash - это имя файла из директории .svace_dir/shared, например для пути .svace-dir/shared/bytecode/5b/2e/5b2ebf87a412fde10a146a6be5e16b13bf3b0dc5 хэш 5b2ebf87a412fde10a146a6be5e16b13bf3b0dc5.
Ошибка может происходить по следующим причинам:
- Clang создал некорректный файл
- Модуль чтения LLVM llvmparse содержит ошибку
Для диагностики можно использовать утилиту llvm-dis, которую можно найти в дистрибутиве svace: svace/compilers/clang-*/bin/llvm-dis. Если наша версия llvm-dis не может прочесть файл, то проблему надо искать в Clang. Если может, то скорее всего причина в llvmparse. Для исправления нам потребуется проблемный файл.
Система лицензирования Sentinel
Svace использует стороннюю систему лицензирования Sentinel от компании Thales. Для работы анализатора требуется аппаратный USB-ключ с активной лицензией. Если обратное не указано отдельно, аппаратные ключи содержат плавающую сетевую лицензию, которая позволяет запускать анализ на любом компьютере, с которого по сети доступен компьютер с лицензионным ключом. Количество компьютеров, на которых может одновременно работать анализ, соответствует количеству приобретённых лицензий. ИСП РАН предоставляет ключи двух видов - с оригинальным YMYCK или новым XEKDC идентификатором вендора (его можно найти на обратной стороне ключа). Помимо символьного идентификатора у каждого типа ключей есть числовой код 101213 для оригинального идентификатора вендора и 36343 для нового (этот идентификатор показывается в графе Vendor соответствующей ключу строки на главной странице Sentinel Admin Control Center). Следующие вопросы относятся к работе с аппаратными ключами Sentinel.
Что нужно установить для работы Svace?
На компьютер с USB-ключом с лицензией требуется установить драйвер Sentinel Runtime Environment, который можно скачать по ссылке (при этом на те компьютеры, где будет запускаться анализ, устанавливать его не обязательно). Для удобства он также поставляется в комплекте вместе с анализатором в папке Sentinel Runtime. Установите соответствующий пакет для операционной системы, где будет проводиться анализ: для Linux-дистрибутивов, использующих DEB-пакеты - aksusbd_<версия>_amd64.deb из архива Sentinel_LDK_Ubuntu_DEB_Run-time_Installer.tar.gz; для Linux-дистрибутивов, использующих RPM-пакеты - aksusbd-<версия>.x86_64.rpm из архива Sentinel_LDK_RedHat_and_SuSE_RPM_Run-time_Installer.tar.gz; для других Linux-дистрибутивов воспользуйтесь скриптом установки dinst из архива Sentinel_LDK_Linux_Run-time_Installer_script.tar.gz; для ОС Windows - установщиком HASPUserSetup.exe из архива Sentinel_LDK_Run-time_setup.zip; для MacOS - Sentinel_Runtime.dmg. Активная лицензия требуется только для работы команды svace analyze, остальные команды можно запускать без установки драйвера.
Как убедиться, что лицензия на анализатор активна?
После установки драйвера Sentinel Runtime Environment на компьютер с USB-ключом с лицензией перейдите в браузере по адресу https://127.0.0.1:1947, чтобы открыть Sentinel Admin Control Center:

Примечание: если компьютер с USB-ключом не имеет графического интерфейса, то для доступа к установленному на нём Sentinel Admin Control Center сначала потребуется разрешить удаленный доступ к веб-интерфейсу через конфигурационный файл. Для этого замените строку accremote = 0 на accremote = 1, добавив её в случае отсутствия, в файле, расположенном по пути /etc/hasplm/hasplm.ini для Linux и %CommonProgramFiles(x86)%\Aladdin Shared\HASP\hasplm.ini для Windows, при необходимости создав указанный файл. Для применения изменений перезагрузите компьютер или сервис Sentinel Runtime.
Когда аппаратный USB-ключ опознан системой лицензирования, его пиктограмма будет отображена на странице Sentinel Keys:

На странице Features будет отображаться информация о лицензиях в соответствующем ключе:

Для работы анализатора требуется наличие лицензии с идентификатором (Feature) номер 1. Для работы анализа C# кода - дополнительно с идентификатором 3. Время работы лицензии ограничено определенным количеством дней, начиная с первого использования анализатора. В графе Restrictions указаны ограничения по времени работы лицензии, например "Not started" если лицензия ещё не активирована, "Expired" если время действия лицензии закончилось, или времена начала и окончания действия лицензии.

В дистрибутиве анализатора в подпапке prog есть утилита sentinel-liccheck, с помощью которой можно также проверить наличие активной лицензии на Svace и другие инструменты ИСП РАН из командной строки.
Как воспользоваться сетевой лицензией?
С помощью сетевой лицензии анализ можно запускать на разных компьютерах (в том числе на виртуальных машинах и в контейнерах) без необходимости перемещать USB-ключ. Для того, чтобы воспользоваться ей, необходимо:
- Установить Sentinel Runtime на компьютер с USB-ключом с лицензией, как описано в главе "Что нужно установить для работы Svace?".
- Обеспечить сетевой доступ к порту 1947 компьютера с USB-ключом с компьютера, где будет запускаться анализ.
- В случае, если оба компьютера находятся в одной подсети, и широковещательные запросы не блокируются, лицензия будет автоматически найдена при запуске команды svace analyze. Если лицензия по какой-либо причине не была найдена автоматически, то перед запуском команды svace analyze необходимо записать IP-адрес компьютера с USB-ключом в переменную окружения SVACE_LIC_IP. Другим способом указать адрес компьютера с USB-ключом является указание адреса компьютера с USB-ключом в настройках Sentinel Admin Control Center компьютера, где запускается анализ. Для этого необходимо также установить на него Sentinel Runtime как описано выше, зайти с помощью веб-браузера на страницу Sentinel Admin Control Center, выбрать Configuration/Access to Remote License Managers и ввести адрес сервера с USB-ключом в поле Remote License Search Parameters, а затем нажать Submit для применения настроек.
Что означает предупреждение "WARNING: Outdated USB license key detected."?
Данное предупреждение означает, что аппаратный ключ не обновлён для использования новой более эффективной системы проверки лицензии. Даже при наличии данного сообщения анализатор будет работать, однако для использования полных возможностей параллельного анализа рекомендуется обновить прошивку в ключе с помощью утилиты, доступной по ссылке. Обновление прошивки ключей не затрагивает записанные на них лицензии, поэтому старые версии анализатора продолжат работать точно так же, как до этого.
Что означает ошибка "Sentinel key not found (H0007)"?
Данная ошибка означает, что не найден ключ лицензии. Проверьте, что на компьютере, где запускается анализ, установлен драйвер Sentinel Runtime Environment, USB-ключ вставлен и опознается драйвером.
Что означает ошибка "Sentinel License Manager version too old (H0042)"?
Данная ошибка означает, что используемая версия драйвера системы лицензирования Sentinel требует обновления. Скачайте новую версию из папки Sentinel Runtime актуальной версии анализатора по ссылке для скачивания текущей версии на главной странице wiki.
Что означает ошибка "Internal error (H0400)"?
Ошибка H0400 возникает из-за того, что не найдены библиотеки для работы системы лицензирования. Пожалуйста, проверьте, что следующие файлы присутствуют в дистрибутиве и на них проставлен бит исполнения: lib/x64-linux/libHASPJava_x86_64.so lib/x64-linux/libhasp_linux_x86_64_101213.so.
Также возможно, что в работу анализатора вмешивается система контроля доступа (SELinux, Apparmor или аналогичная) - тогда в системных логах должны быть записи о блокировании запуска анализатора. Также нам известно о случаях возникновения данной ошибки, когда анализ запускался от имени суперпользователя.
Ссылка на оригинал: https://gitlab.ispras.ru/svace/svace-support/-/wikis/FAQ