Created attachment 18845 [details] screen Server 11.0 x86_64 proxmox-backup 3.3.3.1-alt4 Ошибка обнаружена при проверке Эксплуатационной документации (глава 57.5. Управление трафиком), версия пакета: docs-alt-server-11.0-alt5 Шаги воспроизведения: 1. Изменить язык интерфейса на русский Для этого: справа наверху root@pam->Язык->Русский-Русский->Применить 2. Настройка правила управления трафиком в веб-интерфейсе (в разделе Конфигурация → Управление трафиком нажать кнопку Добавить ) 3. Задать параметры, например: Имя: weekday-in-office Входная скорость: 10 MiB/s Выходная скорость: 40 MiB/s Задать интервалы времени: Время начала - 8:00 и Время завершения - 19:00 Остальные параметры можно оставить по умолчанию 4. Нажать кнопку Добавить Ожидаемый результат: Правило успешно добавилось Фактический реузльтат: Появляется ошибка, правило не добавляется: parameter verification errors (400) rate-in: byte-size parse error for '10.00 МиБ': invalid float literal rate-out: byte-size parse error for '40.00 МиБ': invalid float literal Доп.Информация: Если задать правило через консоль, то правило успешно добавляется, но внести какие либо изменения через веб-интерфейс не получается, с той же ошибкой. # proxmox-backup-manager traffic-control create rule0 --network 0.0.0.0/0 \ --rate-in 100MB --rate-out 100MB \ --comment "Default rate limit (100MB/s) for all clients" Если не переключать язык интерфейса, а оставить английский, то ошибка не воспроизводится. Предполагаю что ошибка заключается в том, что при передаче значений из веб-интерфейса, туда же попадают кириллические символы МиБ , вместо MiB , что и вызывает ошибку. На Server 10.4 - Ошибка не воспроизводится https://git.altlinux.org/gears/p/proxmox-backup.git?p=proxmox-backup.git;a=blob;f=vendor/proxmox-human-byte/src/lib.rs;h=9f728fad481831c8dbbd74273df30b1218d3f4b7;hb=94c99bdcf42acfa034ae5cc6467844d09ff1ffa3 Перечислены только английские единицы измерения. Видимо, потому русские и вызывают ошибку.
Для архитектуры aarch64 указанная проблема также актуальна.
> Предполагаю что ошибка заключается в том, что при передаче значений из веб-интерфейса, туда > же попадают кириллические символы МиБ , вместо MiB , что и вызывает ошибку. Версии пакетов: proxmox-widget-toolkit-5.0.4-alt1 proxmox-backup-server-4.0.14.1-alt2 Проблема связана с тем, что в API запрос подставляется переведённый вариант размера данных. Воспроизводится на тех языках, где единицы измерения данных переведены. К примеру, на Итальянском, Немецком или Китайском - это не воспроизводится, поскольку перевод единиц измерения там не трогали. Аналогичная ошибку можно получить и в терминале: [root@proxmoxbackupserver ~]# proxmox-backup-debug api create /config/traffic-control/ --name 'test' --network '0.0.0.0/0' --rate-in '50 МиБ' Error: parameter verification failed - 'rate-in': byte-size parse error for '50 МиБ': invalid float literal В классе PBS.window.TrafficControlEdit (/usr/share/javascript/proxmox-backup/js/proxmox-backup-gui.js) у параметров rate-in, rate-out, burst-in, burst-out submitAutoScaledSizeUnit принимает значение true -> в /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js вызывается участок кода: if (fieldContainer.submitAutoScaledSizeUnit) { return Proxmox.Utils.format_size(v, !unit.endsWith('iB')); } else { return String(Math.floor(v / fieldContainer.backendFactor)); } Судя по всему, здесь функция format_size и возвращает тот самый переведённый вариант: format_size: function (size, useSI) { let unitsSI = [ gettext('B'), gettext('KB'), gettext('MB'), gettext('GB'), gettext('TB'), gettext('PB'), gettext('EB'), gettext('ZB'), gettext('YB'), ]; let unitsIEC = [ gettext('B'), gettext('KiB'), gettext('MiB'), gettext('GiB'), gettext('TiB'), gettext('PiB'), gettext('EiB'), gettext('ZiB'), gettext('YiB'), ]; let order = 0; let commaDigits = 2; const baseValue = useSI ? 1000 : 1024; while (size >= baseValue && order < unitsSI.length) { size = size / baseValue; order++; } let unit = useSI ? unitsSI[order] : unitsIEC[order]; if (order === 0) { commaDigits = 0; } return `${size.toFixed(commaDigits)} ${unit}`; }, Если убрать использование gettext в массивах unitsIEC и unitsSI - то проблема воспроизводится не будет.
proxmox-widget-toolkit-5.0.4-alt2 -> sisyphus: Wed Nov 12 2025 Sergey Konev <darisishe@altlinux> 5.0.4-alt2 - Avoid sending translated size unit to API (Closes: #54815)