Skip to content

fix(wsdriver): abort commands at a shared deadline - #1330

Draft
OneBrov wants to merge 1 commit into
gemini-testing:masterfrom
OneBrov:fix/wsdriver-command-deadline
Draft

OneBrov wants to merge 1 commit into
gemini-testing:masterfrom
OneBrov:fix/wsdriver-command-deadline

Conversation

@OneBrov

@OneBrov OneBrov commented Sep 17, 2026

Copy link
Copy Markdown

При reconnect или внутренних повторах WSDriver команда могла ждать дольше httpTimeout. Закрытие агента во время HTTP upgrade или backoff также не всегда останавливало установку соединения.

Добавлен экспериментальный режим TESTPLANE_WSDRIVER_DEADLINE_ENABLED=true: один срок включает соединение, подготовку запроса и повторы. По истечении срока транспорт закрывается, поздняя отправка запрещается, браузер помечается сломанным. Ошибка WSDRIVER_REQUEST_DEADLINE не запускает новый транспортный retry с обнулённым сроком. Поддержан timeout.response отдельной команды.

Без флага сохраняются прежние таймауты команд. Исправления закрытия handshake, отмены reconnect и очистки pong-таймера работают в обоих режимах.

Проверено на текущем master (9.2.3): npm run build; 3473 unit-теста прошли, один существующий pending; npm run check-types; npm run lint. Добавлены 9 проверок с настоящими HTTP/WS-сокетами: переиспользование здорового соединения, зависший handshake/ответ, общий срок reconnect, запрет поздних отправок, timeout.response и выключенный флаг. Проверяется передача события deadline в markAsBroken.

Draft для согласования API и способа включения режима.

@OneBrov OneBrov closed this Sep 17, 2026
@OneBrov OneBrov reopened this Sep 17, 2026
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

Successfully merging this pull request may close these issues.

1 participant