Подписываем пакеты для сервиса СОНО на ВШЭП с помощью метода SingWSSE()
.
Периодически случаются кейсы, когда необходимо подписать довольно объемные XML (~9-10 Мб). При этом абсолютно тот же код, с теми же ключами, который работает для меньших документов, дает ошибку.
Первый подход был к ошибке Segmetation fault
без деталей. Ее вылечили путем снятия ограничений на размер стека по типу ulimit -s unlimited
(или аналогичная настройка для сервиса systemd). После этого стала проходить подпись документы в 6-8 Мб.
Но для ещё больших документов все равно получаем ошибку разбора XML (0x8f00026) с выводом в поток ошибок:
Entity: line 289590: parser error : internal error: Huge input lookup
Ошибка воспроизводится на всех последних версиях библиотеки для Linux. Мы используем расширение для PHP. Но пытались подключать и отдельную библиотеку, с тем же результатом. Не воспроизводится в версии DLL для Windows, видимо там под капотом иной механизм разбора XML.