Почему происходит сбой приложения при вызове `call_pv()`?

Мы вызываем подпрограмму process_input с call_pv и это вызывается из кода процесса, который обрабатывает ввод текста размером до 1 МБ. Процесс делает следующее:

  • он ест почту от любого почтового клиента
  • создает новый тикет в приложении
  • и отвечает обратно, если размер почты> 1 МБ

Недавно я отправил файл размером около 800 КБ, который вызывает постоянный сбой процесса, доходящий до 2 ГБ, и сбой. Вот звонок:

Call_pv("process_input",G_EVAL|G_ARRAY);

Любые идеи будут полезны. Есть ли альтернатива call_pv?

Дополнительные сведения: текст, который был отправлен в электронном письме, содержит акцентированные символы.

1 ответ

Процессы умирают, потому что не хватило памяти. 32-разрядный процесс имеет 4 ГБ адресного пространства, но только 2 ГБ из этого могут использоваться приложением в Windows (и IIRC, 3 ГБ в Linux).

Другие вопросы по тегам