Вызов веб-службы в Python (Twisted + ZSI) не работает в тюрьме chroot

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

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

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

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

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


person GDICommander    schedule 20.12.2011    source источник
comment
Возможно ли, что что-то в вашем стеке нуждается в директории /tmp?   -  person David K. Hess    schedule 20.12.2011


Ответы (1)


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

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

person Jean-Paul Calderone    schedule 20.12.2011