WSGI: instance.__dict__ not accessible in restricted mode

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.

Модераторы: SLEDopit, Модераторы разделов

IMB
Сообщения: 2567
ОС: Debian

WSGI: instance.__dict__ not accessible in restricted mode

Сообщение IMB »

Доброго дня!
Установлен Trac0.12.1, python2.5 2.5.2-15+lenny1, libapache2-mod-wsgi 2.8-1~bpo50+1 и apache2 2.2.9-10+lenny9.
В конфиге виртуально хоста:

Код: Выделить всё

............................
DocumentRoot /database/Trac/www/sandbox/htdocs/site
WSGIScriptAlias /sandbox /database/Trac/www/sandbox/cgi-bin/trac.wsgi
WSGIScriptAlias /combineip /database/Trac/www/project1/cgi-bin/trac.wsgi
WSGIScriptAlias /altium /database/Trac/www/project2/cgi-bin/trac.wsgi
<LocationMatch ^/([a-z]+)/?>
    SetEnv TRAC_ENV /database/Trac/project/$1
</LocationMatch>

Всё работает, но периодически выскакивает сообщение вида RuntimeError: instance.__dict__ not accessible in restricted mode, после обновления страницы всё приходит в норму.
в логах следующее:

Код: Выделить всё

[Tue Jan 18 14:57:25 2011] [error] [client 192.168.10.3] mod_wsgi (pid=7986): Exception occurred processing WSGI script '/database/Trac/www/project/cgi-bin/trac.wsgi'., referer: http://trac.company.ru/project/login
[Tue Jan 18 14:57:25 2011] [error] [client 192.168.10.3] Traceback (most recent call last):, referer: http://trac.company.ru/project/login
[Tue Jan 18 14:57:25 2011] [error] [client 192.168.10.3]   File "/database/Trac/www/project/cgi-bin/trac.wsgi", line 31, in application, referer: http://trac.company.ru/project/login
[Tue Jan 18 14:57:25 2011] [error] [client 192.168.10.3]     return dispatch_request(environ, start_request), referer: http://trac.company.ru/project/login
[Tue Jan 18 14:57:25 2011] [error] [client 192.168.10.3]   File "build/bdist.linux-i686/egg/trac/web/main.py", line 479, in dispatch_request, referer: http://trac.company.ru/project/login
[Tue Jan 18 14:57:25 2011] [error] [client 192.168.10.3]     return _dispatch_request(req, env, env_error), referer: http://trac.company.ru/project/login
[Tue Jan 18 14:57:25 2011] [error] [client 192.168.10.3]   File "build/bdist.linux-i686/egg/trac/web/main.py", line 555, in _dispatch_request, referer: http://trac.company.ru/project/login
[Tue Jan 18 14:57:25 2011] [error] [client 192.168.10.3]     send_internal_error(env, req, sys.exc_info()), referer: http://trac.company.ru/project/login
..........................................
[Tue Jan 18 14:57:25 2011] [error] [client 192.168.10.3]   File "/var/lib/python-support/python2.5/libsvn/core.py", line 24, in _swig_setattr, referer: http://trac.company.ru/project/login
[Tue Jan 18 14:57:25 2011] [error] [client 192.168.10.3]     return _swig_setattr_nondynamic(self,class_type,name,value,0), referer: http://trac.company.ru/project/login
[Tue Jan 18 14:57:25 2011] [error] [client 192.168.10.3]   File "/var/lib/python-support/python2.5/libsvn/core.py", line 19, in _swig_setattr_nondynamic, referer: http://trac.company.ru/project/login
[Tue Jan 18 14:57:25 2011] [error] [client 192.168.10.3]     self.__dict__[name] = value, referer: http://trac.company.ru/project/login
[Tue Jan 18 14:57:25 2011] [error] [client 192.168.10.3] RuntimeError: instance.__dict__ not accessible in restricted mode, referer: http://trac.company.ru/project/login

Как возможно решить эту проблему?
Спасибо.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: WSGI: instance.__dict__ not accessible in restricted mode

Сообщение sash-kan »

следим за руками.
google://instance.__dict__ not accessible in restricted mode → (первая ссылка)
http://trac.edgewall.org/ticket/3371 → (ссылка в последнем посте)
http://trac.edgewall.org/wiki/TracSubversi...restricted-mode (оно же — вторая ссылка из первого запроса).
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: WSGI: instance.__dict__ not accessible in restricted mode

Сообщение IMB »

Понимаю, уже достал :(
Но всё это я уже видел, конфиг сделан в соответствии с этими рекомендациями, насколько я разобрался.
По моим наблюдениям обновление libapache2-mod-wsgi с 2.5-1~lenny1 до 2.8-1~bpo50+1 увеличило стабильность работы и снизило тяжесть проявления ошибки, но совсем её не убрало.
Вот конфиг:

Код: Выделить всё

<VirtualHost 192.168.10.242:80>
        ServerAdmin webmaster@mail.company.ru
        ServerName trac.company.ru
        DocumentRoot /database/Trac/www/sandbox/htdocs/site
        WSGIScriptAlias /sandbox /database/Trac/www/sandbox/cgi-bin/trac.wsgi
        WSGIScriptAlias /project /database/Trac/www/project/cgi-bin/trac.wsg
        WSGIScriptAlias /altium /database/Trac/www/altium/cgi-bin/trac.wsgi
        <LocationMatch ^/([a-z]+)/?>
                SetEnv TRAC_ENV /database/Trac/project/$1
        </LocationMatch>
        <Directory /database/Trac/www/sandbox/htdocs>
                WSGIApplicationGroup %{GLOBAL}
                Order deny,allow
                Deny from all
                Allow from 192.168.10.0/24
        </Directory>
        <Directory /database/Trac/www/project/htdocs>
                WSGIApplicationGroup %{GLOBAL}
                Order deny,allow
                Deny from all
                Allow from 192.168.10.0/24
        </Directory>
         <Directory /database/Trac/www/altium/htdocs>
                WSGIApplicationGroup %{GLOBAL}
                Order deny,allow
                Deny from all
                Allow from 192.168.10.0/24
        </Directory>
        #<Location "/altium/login">
        #       AuthType Basic
        #       AuthName "Trac Altium Login
        #       AuthUserFile /database/Trac/www/altium/htpasswd
        #       Require valid-user
        #</Location>
        <Location "/sandbox/svn">
                DAV svn
                SVNPath /database/Subversion/sandbox
                AuthType Basic
                AuthName "Trac Sandbox Subversion"
                AuthUserFile /database/Trac/www/sandbox/htpasswd
                Require valid-user
        </Location>
        <Location "/project/svn">
                DAV svn
                SVNPath /database/Subversion/project
                AuthType Basic
                AuthName "Trac Project Subversion"
                AuthUserFile /database/Trac/www/project/htpasswd
                AuthzSVNAccessFile /database/Trac/www/project/authz
                Require valid-user
        </Location>
        <Location "/altium/svn/source">
                DAV svn
                SVNPath /database/Subversion/altium-source
                AuthType Basic
                AuthName "Trac Altium Subversion"
                AuthUserFile /database/Trac/www/altium/htpasswd
                AuthzSVNAccessFile /database/Trac/www/altium/authz
                Require valid-user
        </Location>
        <Location "/altium/svn/library">
                DAV svn
                SVNPath /database/Subversion/altium-library
                AuthType Basic
                AuthName "Trac Altium Subversion"
                AuthUserFile /database/Trac/www/altium/htpasswd
                AuthzSVNAccessFile /database/Trac/www/altium/authz
                Require valid-user
        </Location>
        LogLevel warn
        ErrorLog /var/log/apache2/trac/error.log
        CustomLog /var/log/apache2/trac/access.log combined
</VirtualHost>

Что я не учёл или пропустил?
Спасибо.
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: WSGI: instance.__dict__ not accessible in restricted mode

Сообщение IMB »

Прописал WSGIScriptAlias так WSGIScriptAliasMatch ^/([a-z]+) /database/Trac/www/$1/cgi-bin/trac.wsgi.
Пока создаётся ощущение, что это решило проблему.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: WSGI: instance.__dict__ not accessible in restricted mode

Сообщение sash-kan »

IMB писал(а):
18.01.2011 21:46
Что я не учёл или пропустил?
вероятно, ссылку там же: http://code.google.com/p/modwsgi/wiki/IntegrationWithTrac
где примеры идут после слов «A configuration for running two distinct Trac instances, each using a single daemon process run as the user 'trac' would be»
примеров много. имеет смысл дочитать до конца.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали: