パブリックプロジェクトミーティング - 2021年2月25日

隔週のパブリックプロジェクトミーティングシリーズを継続し、2021年2月25日午後5時30分(CET)に開催されたミーティングのタイムラインを以下に示します。(以下の時間はISTに基づいています)

会議は Selenium Slack#selenium-tlc チャンネルで開催されます。


Diego Molina 午後9:54

@titusfortner @barancev @harsha509 @luke @jimevans @simonstewart

Luke Hill 午後9:54

はい、必要であればここにいます。

Diego Molina 午後9:55

今日の議題は短くするために、「ベータ2に必要なものは何か」のみです。他の議題があれば、自由に追加/提案してください。

Luke Hill 午後9:59

それに加えて、4.0.0 の正式版をリリースするために何が必要か(つまり、達成すべきマイルストーンは何か)について、おおよその見当はついていますか?

Diego Molina 午後10:01

十分な人数が集まるまで数分待ちましょう。

Titus Fortner 午後10:04

ベータ2の前にやりたいことがいくつかありますが、早ければ早いほど助かります :)

Simon Stewart 午後10:04

企画会議中ですが、ゆっくりとフォローします。

Titus Fortner 午後10:05

(Element#dom_attribute が私が終わらせたい主なものです)。Java、C# はどちらもすでにそれを持っていると思います。

Diego Molina 午後10:05

それでは、周りにいる人たちから始めましょう。議題は今のところ1つだけです。「ベータ2に必要なものは何か」

私の頭に浮かぶのは、リークの修正です :slightly_smiling_face

Simon Stewart 午後10:05

リークを潰す。Grid上のCDPがDockerインスタンスで動作することを確認する。

Diego Molina 午後10:06

リークに関して、AsyncHttpClientの問題とそのGoogleグループについてもっと読んだ後...

10:07

彼らは、各 AsyncHttpClient インスタンスが独自のプールを持っていると述べています。

Diego Molina 午後10:07

そのため、単一のインスタンスを持つことを推奨しています。

Puja Jagani

潜在的な問題領域を指摘していただいた後、今日 AsyncHttpClient の単一インスタンスを使用しようとしましたが、それでもリークが発生しました :confused: 明日、さらに深く掘り下げてみます。何か試してほしいことがあれば教えてください。

Diego Molina

ディストリビュータ全体で単一のインスタンスですか?

Puja Jagani

以前と同じように単一のインスタンスです。 https://github.com/SeleniumHQ/selenium/blob/selenium-4.0.0-alpha-7/java/client/src/org/openqa/selenium/remote/http/netty/NettyClient.java#L41 java/client/src/org/openqa/selenium/remote/http/netty/NettyClient.java:41 private static final AsyncHttpClient httpClient = https://github.com/SeleniumHQ/selenium|SeleniumHQ/seleniumSeleniumHQ/selenium | GitHubによって追加されました

Puja Jagani

これは問題領域を絞り込むためのものでした。新しいインスタンスを作成することが問題なのか、それともレスポンスの処理方法(以前に言及したブロッキングビット)が問題なのかを切り分けたかったのです。

Puja Jagani

単一インスタンスでのディストリビュータヒープ :see_no_evil

Diego Molina 午後10:08

さらに、プールのサイズを制限できます。

そこで、クライアント構成を調整して、それが役立つかどうかを確認する予定です。

10:09

残念ながら、AsyncHttpClient のドキュメントは存在しませんが、堅牢な実装であるようで、Gatling に使用されています。

10:09

(負荷テストツール)

10:10

負荷*

David Burns 午後10:12

@simonstewart 「Grid上のCDPがDockerインスタンスで動作することを確認する」ために、すべてだと仮定して、他に何が残っていますか?

Simon Stewart 午後10:12

(会議中)

Titus Fortner 午後10:13

各バインディングは、その部分(capabilitiesからデバッガーアドレスを取得するなど)を実装できる必要があります。

David Burns 午後10:13

@titusfortner それは完了していますか?

10:14

se:options から取得します。

Titus Fortner 午後10:14

彼はまだ最初の部分を終えていないと思います。

彼はそれを変更しています。

Simon Stewart 午後10:14

se:cdp 現在、それを使用するバインディングを更新しました。

David Burns 午後10:14

@simonstewart が私のコードに触れた… 汚い Java の人が私の Python コードに。

Simon Stewart 午後10:14

「Grid の CDP」の件で se:cdpVersion が追加されます。

Luke Hill 午後10:14

Ruby で気づいた新しいことの1つに、(全体に関連するかどうかはわかりませんが)新しい Chrome CDP の機能はローカル/リモートインスタンスで動作できる必要があるということでした。

Simon Stewart 午後10:14

「私の大切なもの…」

David Burns 午後10:14

:stuck_out_tongue

Simon Stewart 午後10:15

@luke それが se:cdp capability が可能にするものです。

Luke Hill 午後10:15

一歩先を行っていますね :smile

Simon Stewart 午後10:15

Selenium Server は CDP トラフィックを転送する方法を知っています。

Titus Fortner 午後10:15

ええ、Ruby コードは、サブクラス化のせいで、リモートWebDriverでブラウザ固有の機能をユーザーが利用できるようにしたことはありません。

Luke Hill 午後10:15

基本的に、ベータ2で再確認するのが答えです。

Titus Fortner 午後10:15

それに対処するためのPRがあります。

Simon Stewart 午後10:15

ローカルドライバーにも se:cdp を設定するようにします。

Titus Fortner 午後10:16

そのPRでは、Ruby CDP コードは localhost 上にあるサーバーでのみ動作するため、Simon が行ったことにも更新する必要があります。

Luke Hill 午後10:16

何をすべきか「分かって」います。それが戦いの半分です。

Titus Fortner 午後10:17

@p0deje がしばらく不在で、@twalpole が非常に忙しいので、帯域幅の問題だけです。 :)

まあ、部分的には、「だいたい」しか知りません。

Diego Molina 午後10:17

@luke がコミットをするチャンスです :slightly_smiling_face

Luke Hill 午後10:18

可能な限り協力できます。しかし、私は彼らの基準には達していません。

Titus Fortner 午後10:18

CDP バージョン用の異なる gem 公開方法も理解したいです。

10:19

Selenium メソッドから CDP メソッドへの対応よりも、ブラウザバージョンに合わせて CDP バージョンを更新できることの方が重要なので、成果物を独立してリリースできるようにして、ユーザーが何らかの方法で切り替えられるようにしたいです。

Luke Hill 午後10:19

イースターまでには、賃貸でも購入でも、より安定した場所にまた住めるようになることを願っています。そうすれば、夜にもっとできるようになるはずです。これは2年強で5回目の引っ越しになります。

Titus Fortner 午後10:22

リーク調査にはまだどれくらいの作業が残っていますか?(何が関係しているのか全く分からないのでお聞きします)

Diego Molina 午後10:23

分かりません。今週は投資して、少なくともディストリビュータに絞り込みました。

10:24

新しいテストが実行されると時間の経過とともにメモリを消費し、決して解放しません。

問題が本当に AsyncHttpClient に関連しているかどうかを確認しています。

10:25

まあ、私たちの使用方法により関連しています。

David Burns 午後10:25

@diemol @Puja Jagani はこれが優先事項であることを知っているので、遠慮なく彼女を巻き込んでください :slightly_smiling_face

Diego Molina 午後10:26

彼らは単一インスタンスを持つことを推奨しており、ディストリビュータでは登録されたノードごとに1つのインスタンス、ヘルスチェックを行うための1つのインスタンス、そして何であるか特定できていないもう1つのインスタンスがあります。

Simon Stewart 午後10:30

各インスタンスは独自の構成が必要だからです。

10:31

リクエストごとに構成を変更できれば問題ありません。

Diego Molina 午後10:31

ベースURLが異なるんですよね?

Simon Stewart 午後10:31

そうです。

10:32

そして、おそらくタイムアウトも。

構成オブジェクトに関するもの。

Diego Molina 午後10:33

タイムアウトの違いは見られませんでしたが、Grid でユーザーがタイムアウトを構成できるようにする際には必要になります。

Puja Jagani

RequestBuilder を使用すると、リクエストごとにタイムアウトを設定できると思います。

Diego Molina 午後10:34

それで、ふむ、興味深い… さあ、どうすればいいのか分かりません :slightly_smiling_face

Simon Stewart 午後10:35

もう一度、ドメインソケット用に作成したものから始めて、netty ベースの独自の HTTP クライアントを作成することについてつぶやきます。