Открытые вопросы
После второго прохода каждый вопрос, который здесь был открыт, воспроизведён или опровергнут. Подтверждённые дефекты перенесены на страницу «Дефекты» (разделы 10–24). Остались два известных риска:
| Вопрос | Где | Состояние |
|---|---|---|
При очень маленьком PqWorkspace, меньше суммарной длины соотношений (для наших групп меньше примерно 1000 слов), setup и чтение соотношений пишут несколько слов за конец рабочей памяти до сообщения Ran out of space или вместо него. Обычные сборки во всех проверенных случаях останавливаются с этим сообщением; записи видит только AddressSanitizer | src/setup.c:75, src/pretty_filter.c:195, 420 | подтверждено (ASan); на практике безвредно; патч есть, PR не открываем |
image_of_generator пишет образ порождающего в рабочую память без проверки места. Его длина ограничена величиной $(p-1)^2 \cdot \mathrm{lastg}^2$, а ближайшая проверка резервирует меньше ($7 \cdot \mathrm{lastg} + 4$) | src/stabiliser.c:227–281 | замерено: записывается не больше 20 слов, запас не меньше 94, в том числе при минимальной достаточной рабочей памяти; известный риск |
Проверено и опровергнуто
- Неоднородное соотношение сообщается и отбрасывается, а вычисление продолжается (
src/echelon.c:52–60). На собственных путяхpqсоотношение может быть неоднородным, только если предыдущий класс уже неверен; отладочная сборка не встретила ни одного такого случая ни в тестах пакета, ни в сверке с SmallGroups. Там, где пользователь подаёт произвольное слово (PqCollect,PqEchelonise), отбросить его правильно: соотношение, которое нарушено в младшем классе, нельзя наложить в классе $c$. Слабое место только в сообщении: оно видно начиная с уровняInfoANUPQ4, аPqEcheloniseвозвращаетfail. - Одна смерть
pqв проверке стандартных презентаций порядка 64. Это не дефект:pqбыл убит извне. В ту же секунду сам аудит выполнилpkill -f ".../pq -G", а под этот шаблон попадает любойpq, запущенный из GAP с этой сборкой. Шесть повторных прогонов порядка 64 (6408 вызововPqStandardPresentation; master,correctness, master с ASan) прошли без сбоев. Первый прогон порядка 128 оборвался так же.