Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Сервер отправляет оборваные ответы #27

Open
andkom opened this issue Jun 13, 2013 · 3 comments
Open

Сервер отправляет оборваные ответы #27

andkom opened this issue Jun 13, 2013 · 3 comments

Comments

@andkom
Copy link

andkom commented Jun 13, 2013

Использую реалплексор на нагруженном проекте.
Когда выполняю метод cmdOnline, получаю такую ошибку:

Fatal error: Uncaught exception 'Realplexor_Exception' with message 'Response length (56421) is different than specified in Content-Length header (77807): possibly broken response

Так-же такая ошибка иногда возникает при вызове метода cmdWatch.

Пробывал отправлять команды напрямую через телнет, получаю оборваные ответы, тоесть проблема явно с сервером.

@dimikot
Copy link
Owner

dimikot commented Jun 13, 2013

Есть такая проблема, что иногда ответ не помещается целым куском в буфер отправки tcp ОС, а разбивать отправку на несколько независимых кусков реалплексор не умеет архитектурно (ПРИЕМ "склеивать" из кусков он умеет, а вот отправку - нет, т.к. у него нет своих собственных буферов отправки: сформировал ответ, выплюнул его разом и забыл).

​Попробуйте поискать, как увеличить размер буфера приема tcp в линуксе.

On Thu, Jun 13, 2013 at 3:46 AM, Andrei K. [email protected]
wrote:

Использую реалплексор на нагруженном проекте.
Когда выполняю метод cmdOnline, получаю такую ошибку:
Fatal error: Uncaught exception 'Realplexor_Exception' with message 'Response length (56421) is different than specified in Content-Length header (77807): possibly broken response
Так-же такая ошибка иногда возникает при вызове метода cmdWatch.

Пробывал отправлять команды напрямую через телнет, получаю оборваные ответы, тоесть явно проблема с сервером.

Reply to this email directly or view it on GitHub:
#27

@borgius
Copy link

borgius commented Feb 18, 2014

та же проблема, но сервер обрывает ответы с JS
Это работает на странице монитора и должно собирать данные с множества каналов за последнии несколько минут.

http://realplex01.xxxxxxxxx.com/?identifier=1392765575.7760000000:support_id_9916560,1392765575.7770000000:support_id_9916561,1392765575.7770000000:support_id_9916573,1392765575.7770000000:support_id_9916583,1392765575.7770000000:support_id_9916690,1392765575.7770000000:support_id_9916712,1392765575.7770000000:support_id_9916738,1392765575.7770000000:support_id_9916751,1392765575.7770000000:support_id_9916754,1392765575.7770000000:support_id_9916758,1392765575.7770000000:support_id_9916762,1392765575.7770000000:support_id_9916768,1392765575.7770000000:support_id_9916769,1392765575.7770000000:support_id_9916679,1392765575.7770000000:support_id_9916764,1392765575.7770000000:support_id_9916770,1392765575.7770000000:support_id_9916771,1392765575.7770000000:support_id_9916784,1392765575.7770000000:support_id_9916786,1392765575.7770000000:support_id_9916772,1392765575.7770000000:support_id_9916778,1392765575.7770000000:support_id_9916781,1392765575.7770000000:support_id_9916782,1392765575.7770000000:support_id_9916705,1392765575.7770000000:support_id_9916746,1392765575.7770000000:support_id_9916773,1392765575.7770000000:support_id_9916775,1392765575.7770000000:support_id_9916776,1392765575.7770000000:support_id_9916777,1392765575.7770000000:support_id_9916780,1392765575.7770000000:support_id_9916783,1392765575.7770000000:support_id_9916766,1392765575.7770000000:support_id_9916779,1392765575.7770000000:support_id_9916785,support_request_process&ncrnd=1392766177184

Если данных больше 16к то они обрезаются, соответственно ошибки и запрос повторяется X раз.

Пример обрезанного ответа:

[
  {
    "ids": { "support_id_9916751": "1392765581.01901932852" },
    "data": "{\"cmd\":\"msg\",\"type\":\"op\",\"time\":\"15:19:41\",\"text\":\"sure thing, the 6 pcs\\\/\",\"name\":\"Maruwa\"}"
  },
  {
    "ids": { "support_id_9916762": "1392765627.18003308272" },
    "data": "{\"cmd\":\"msg\",\"type\":\"cl\",\"text\":\"IP: 205.255.24.0, OS: Android (samsung, SGH-T599N), version: 4.1.2, app version: 2.4.4, resolution: 480x800, fingerprint: 9ede0dd2-7f9b-4086-b534-57fab0ef0213\",\"name\":\"Claudia\"}"
  },
... пропущено много строк ...
  {
    "ids": { "support_id_9916776": "1392765963.46914281638" },
    "data": "{\"id\":\"9916776\",\"cmd\":\"accept_request\",\"op_id\":\"450\",\"name\":\"Liz\"}"
  },
  {
    "ids": { "support_id_9916776": 

Пробовали увеличить размер буфера приема tcp, не помогло

p.s. используем последнюю C версию

Спасибо.

@ofdrykkja
Copy link

у меня проблема решилась случайным образом - в процессе поиска причины ошибки добавил лог в perl/Realplexor/Common.pm logger("out: " . $out); в конец _do_send. по какой-то причине реалплексор перестал резать ответы

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants