Вызов веб-службы в Python (Twisted + ZSI) не работает в chroot-тюрьме - PullRequest
0 голосов
/ 20 декабря 2011

У меня есть скрипт Python, который вызывает веб-сервис с использованием ZSI с Twisted. В Linux я запускаю этот скрипт, и он отлично работает.

Теперь я хочу, чтобы этот скрипт выполнялся в изолированной тюрьме, которая находится где-то в моей файловой системе. Я добавил в тюрьму каталоги usr, lib и т.д. Когда я выполняю сценарий из тюрьмы, веб-служба не отвечает, и Twisted сообщает об ошибке, которая выглядит следующим образом:

[Экземпляр сбоя: обратная трассировка (ошибка без кадров): twisted.internet.error.ConnectionLost: соединение с другой стороной было потеряно не чистым способом. ]

Если я обращаюсь к корню файловой системы (/) и если новая тюрьма использует уже существующие каталоги usr, lib и т. Д., Она работает без ошибок.

Я подозреваю, что есть библиотека, которая отсутствует или библиотека в каталогах bin / usr / etc первой тюрьмы chroot, которая является неправильной. Есть ли у вас какие-либо подсказки, которые могут мне помочь? У кого-нибудь есть решение этой проблемы?

1 Ответ

0 голосов
/ 20 декабря 2011

Если ваше приложение вызывает непредвиденное исключение в какой-то момент - например, из-за того, что некоторая зависимость не может быть импортирована, потому что она не установлена ​​в chroot - тогда это может привести к неожиданному закрытию соединений. Трудно сказать с какой-либо точностью, поскольку вы не упомянули, какие у вас есть соединения или какие API вы используете для управления ими.

Убедитесь, что у вас включено ведение журнала, и посмотрите, не появились ли непредвиденные трассировки в вашем файле журнала. Если вы видите что-то, есть большая вероятность, что они связаны с проблемой, которая вызывает сбой вашего приложения.

...