Вопрос или проблема
Версия ОС:
CentOS release 4.6 (Final)
Ядро \r на \m
2.6.9-100.ELsmp
Когда я пытаюсь запустить задачу, возникает следующая ошибка.
qsub: Плохой UID для выполнения задания
Я создал новую учетную запись пользователя, и та же ошибка возникает, в то время как другие пользователи на той же машине могут запускать задачи без проблем.
Как я могу решить эту проблему?
Инструкции здесь: http://www.bo.infn.it/alice/introgrd/pbsabout/node18.html предполагают, что вы запускаете это от имени неправильного пользователя.
Неверный пользователь в #PBS -u new-user $ qsub sube.cmd qsub: Плохой UID для выполнения задания
Имя пользователя, определенное в списке пользователей, либо не определено, либо отличается от имени пользователя отправителя задания, или UID и GID на исполняющем узле отличаются от значений на узле отправки. В этом случае сначала проверьте, что директива #PBS -u указывает на действительного пользователя, затем проверьте, что идентификаторы пользователей совпадают:
$ id
whoami
uid=501(myusrname) gid=501(myusrname) группы=501(myusrname) $ grep -e “PBS -u” cpbs.cmdPBS -u alice001 $ id alice001 uid=10417(alice001) gid=1395(alice) группы=1395(alice)
и измените #PBS -u соответственно.
Добавление узла в /etc/hosts.equiv решило мою проблему.
Но я уже добавил эти строки в qmgr
.
set server operators += [email protected]
set server acl_users += username
set server managers += [email protected]
set server acl_hosts += servername.local
set server operators += [email protected]
Затем я выполнил /etc/init.d/pbs_server restart
.
Вы можете перезапустить pbs_server, даже если он уже работает.
Вам не нужно добавлять сервер в /etc/hosts.equiv, если вы отправляете задания на сервере, который запускает pbs_server.
Я знаю, что этот вопрос немного старый, но я недавно столкнулся с этой проблемой и выполнил следующие шаги:
- Убедитесь, что UID и GID совпадают по всему кластеру для данного пользователя
qmgr -c "set server flatuid=true"
qmgr -c "set server acl_roots+=username@*"
qmgr -c "set server operators+=username@*"
Здесь * – это подстановочный знак для всех узлов. Работает отлично! Вероятно, это не супер безопасно, но определенно работает!
В моем случае я получил эту ошибку, когда пытался отправить задание, работая в интерактивном задании. Выход из интерактивного qsub и отправка с головного узла сработали.
две процедуры:
-
добавьте “”+::::::”” в конец файла /etc/passwd
-
убедитесь, что на узле, где пользователи отправляют задания, все остальные узлы корректно определены в файле /etc/hosts.equiv
ссылка:
поиск Bad UID for job execution в руководстве администратора torque pdf.
Ответ или решение
Ошибка "qsub: Bad UID for job execution" при попытке отправки задания через PBS (Portable Batch System) может возникать по нескольким причинам, связанным с неправильными настройками прав доступа или несовпадением идентификаторов пользователей. Рассмотрим основные шаги для диагностики и устранения этой проблемы.
1. Проверка идентификаторов пользователя (UID и GID)
Первое, что следует сделать, — это проверить совпадение UID и GID для пользователя, который отправляет задание, на всех узлах кластера. Иногда такой конфликт может возникать, если на разных узлах в системе настроены разные идентификаторы пользователей. Для этого выполните команду:
id $(whoami)
Сравните вывод с аналогичной командой для других пользователей, которые могут успешно отправлять задания через PBS. Если UID и GID различаются, это может быть причиной проблемы.
2. Проверка конфигурации PBS
Убедитесь, что конфигурация серверов PBS позволяет отправлять задания от нужного пользователя. Проверить текущие настройки можно с помощью команды qmgr
:
qmgr -c "p q"
Обратите внимание на поля acl_users
и operators
. Убедитесь, что в них присутствует ваш логин. Если этого нет, добавьте пользователя с помощью следующей команды:
qmgr -c "set server acl_users += ваш_логин"
3. Установка флага flatuid в PBS
Если ваша конфигурация требует, чтобы все пользователи могли запускать задания с использованием одинаковых UID, рассмотрите возможность установки флага flatuid
. Сделать это можно следующей командой:
qmgr -c "set server flatuid=true"
Это позволит избежать проблем, связанных с различием UID между узлами.
4. Настройки файла /etc/hosts.equiv
Содержимое файла /etc/hosts.equiv
также может быть причиной проблемы. Убедитесь, что хосты, с которых вы отправляете задания, корректно перечислены в этом файле. Добавьте строку, содержащую ваш узел, если это не так. Пример записи:
ваш_узел
5. Перезапуск сервера PBS
После внесения изменений в конфигурацию PBS, обязательно перезапустите сервер PBS, чтобы изменения вступили в силу. Вы можете сделать это командой:
/etc/init.d/pbs_server restart
6. Проверка параметров конфигурации
Необходимо также проверить наличие дополнительных параметров, которые могут влиять на выполнение заданий. Например:
qmgr -c "set server operators += ваш_логин@*"
Ограничение acls для определенных пользователей и хостов также следует удостовериться.
7. Работа в интерактивной сессии
Учтите, что ошибка может возникнуть, если вы пытаетесь отправить задание из интерактивной сессии. В подобных случаях рекомендуется выходить из интерактивного режима и отправлять задание с главного узла.
Заключение
Ошибку "qsub: Bad UID for job execution" можно устранить, следуя вышеизложенным шагам. Ключевыми факторами являются правильная настройка UID и GID, соответствие прав доступа в PBS, а также правильная конфигурация сетевых настроек. Если после выполнения всех шагов проблема сохраняется, стоит обратиться к системному администратору для более глубокой диагностики конфигурации кластера.