Наша команда уже несколько месяцев пытается решить эту проблему, и мы в растерянности. Вот базовое c описание нашей настройки:
У нас есть сервер приложений, написанный на Python, который запрашивает в базе данных Oracle точки данных (запросы могут легко получить миллионы строк или больше) и затем следует построить их, используя CERN root. Затем файл root с графиком возвращается клиенту для отображения в программе просмотра javascript.
Все это развертывается на сервере CentOS7 с использованием Apache и mod_wsgi, окончательно инкапсулированного в контейнер Docker, который находится на Openshift. У нас есть приложение, которое запрашивает базу данных Oracle, находящуюся на другом компьютере.
Теперь мы обнаружили проблему, заключающуюся в том, что возникает только при развертывании через Openshift . То есть это не происходит при развертывании в локальной конфигурации «голого металла» через Apache и mod_wsgi с / без Docker.
Мы отслеживали, что эта проблема возникает, когда cursor.fetchall()
из cx_oracle
называется. Вскоре после этого появляется сообщение об ошибке Truncated or oversized response headers received from daemon process
. Это определенно связано с количеством возвращаемых строк, поскольку мы индексируем и запрашиваем точки данных по метке времени, и мы нашли максимальный временной диапазон, после которого запросы начинают возвращать эту ошибку.
Сначала мы подумали, что это могло быть была проблемой тайм-аута маршрутизации Openshift, но даже после массового увеличения значения ROUTER_DEFAULT_CONNECT_TIMEOUT
проблема не изменилась, и запросы по-прежнему не работают с тем же ограничением размера.
Любые решения или даже потенциальные клиенты будут значительно добро пожаловать.