Запрос на анализ во время обработкой предыдущего на вебсервере может дать неверный результат
Created by: ZzDmitry
Для более простого воспроизведения можно добавить задержку на вебсервере:
onRpcReplyReceived(sessionId, operationId, rpcMessage, callback) {
...
(session, operation, callback) => this._setASQueryNameIfAny(operation, rpcMessage,
(error) => callback(error, session, operation)
),
>>> (session, operation, callback) => setTimeout(() => callback(null, session, operation), 10000),
(session, operation, callback) => this._processOperationResult(session, operation, rpcMessage, callback),
...
Также нужно будет смотреть текущие логи AS. Далее сделать два анализа с разным количеством колонок, чтобы их модно было быстро повторить.
- Делаем анализ с малым количеством колонок, ждём когда AS его отдаст, судя по логам.
- В течении установленной на WS задержки делаем анализ с большим количеством колонок. По истечении задержки мы получим на фронтенд и отобразим результаты первого запроса. Когда будет обработан воторой запрос мы увидим увеличение количества колонок до того количества, которое нужно для отображения результатов второго запроса, но результаты по прежнему от первого. Если проскроллить до получения очередной порции результата, то результатов будет отдано то количетсов колонок, которое требуется для второго запроса.
Тут несколько проблем:
- Зачем отображать результат первого запроса, когда уже начали делать второй?
- Почему при приходе результатов второго запроса обновился только заголовок, но не содержимое?
- Должен ли был вебсервер отдавать результаты первого запроса?