| Summary: | Проблема с кодировкой возвращаемых строк в веб-интерфейсе при добавлении области | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Sisyphus | Reporter: | Vladislav Glinkin <glinkinvd> | ||||
| Component: | pve-access-control | Assignee: | darisishe <darisishe> | ||||
| Status: | NEW --- | QA Contact: | qa-sisyphus | ||||
| Severity: | normal | ||||||
| Priority: | P5 | CC: | andy, shaba, shevchenkodyu, shrek | ||||
| Version: | unstable | ||||||
| Hardware: | x86_64 | ||||||
| OS: | Linux | ||||||
| Attachments: |
|
||||||
В качестве дополнительной информации.
Заголовки ответа:
HTTP/1.1 200 OK
Cache-Control: max-age=0
Connection: close
Connection: Keep-Alive
Date: Tue, 17 Feb 2026 09:23:17 GMT
Pragma: no-cache
Server: pve-api-daemon/3.0
Content-Length: 172
Content-Type: application/json;charset=UTF-8
Expires: Tue, 17 Feb 2026 09:23:17 GMT
Сам ответ:
{"message":"add auth server failed: ÐеизвеÑÑное Ð¸Ð¼Ñ Ð¸Ð»Ð¸ ÑлÑжба\n","data":null,"status":500,"success":0}
Локаль:
# locale
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=
|
Created attachment 20703 [details] Как это выглядит Версия пакета: pve-access-control-9.0.5-alt1 Проблема с кодировкой возвращаемых строк в веб-интерфейсе при добавлении области. Сервер возвращает некорректное сообщение об ошибке. К примеру, если в CLI выполнить команду (при условии, что нода не резолвит dc.freeipa.testdomain), то получаем корректное сообщение об ошибке: # pvesh create /access/domains --realm freeipa.testdomain --type ldap --base_dn dc=freeipa,dc=testdomain --user_attr uid --server1 dc.freeipa.testdomain --check-connection 1 --port 389 --mode ldap --comment FreeIPA add auth server failed: Неизвестное имя или служба В веб-интерфейсе же получаем: add auth server failed: ÐеизвеÑÑное Ð¸Ð¼Ñ Ð¸Ð»Ð¸ ÑлÑжба (500) Для решения этой проблемы помогло изменение: --- a/usr/share/perl5/PVE/Auth/LDAP.pm +++ b/usr/share/perl5/PVE/Auth/LDAP.pm @@ -516,7 +516,13 @@ sub on_delete_hook { sub check_connection { my ($class, $realm, $config, %param) = @_; - $class->connect_and_bind($config, $realm, \%param); + eval { + $class->connect_and_bind($config, $realm, \%param); + }; + if (my $err = $@) { + utf8::decode($err); + die $err; + } } 1; Теперь сообщение об ошибки отображается корректно, однако при выполнении ранее упомянутой команды в CLI появилось предупреждение: Wide character in die at /usr/share/perl5/PVE/RESTHandler.pm line 1024. Нужен более детальный анализ исходного кода и решение проблемы.