Etherpad-lite: Atribut yang diterapkan dapat menyebabkan ketidakcocokan penerapan. Perlu cakupan uji beban untuk direplikasi.

Dibuat pada 22 Mei 2020  ·  9Komentar  ·  Sumber: ether/etherpad-lite

Komentar awal ini tampaknya tidak relevan.

Ini sedikit kasus tepi tetapi itu bisa terjadi. Itu hanya terjadi pada bantalan yang sangat aktif (pikirkan 10 detik suntingan per detik).

Untuk meniru.

  1. Aktifkan loadTesting .
  2. Jalankan LoadTesting
  3. Copy/paste padId ke browser.

Apa yang terjadi

Pad tidak mau dimuat

Apa yang seharusnya terjadi?

Pad harus dimuat.

Info debug lainnya

Pad akan berhasil dimuat dan dapat diedit setelah Load Testing selesai
Jika Anda sudah menggunakan pad, tidak ada kesalahan yang datang dan itu berfungsi dengan baik.

Kesalahan adalah

Error: Failed assertion: mismatched apply: 10984 / 11740

Anggapan

Asumsi saya adalah bahwa antara waktu kami mengirimkan objek pad termasuk baseRev # telah ada perubahan tambahan yang berarti bahwa perubahan berikutnya gagal menyebabkan ketidakcocokan berlaku.

Pertimbangkan skenario ini..

Rev # | 
1    | <-- we connect here
2    | <-- has been an edit here.
3    | <-- is the first commit we receive from the server

Logikanya begini:

exports.applyToText = function (cs, str) {
  var unpacked = exports.unpack(cs);
  exports.assert(str.length == unpacked.oldLen, "mismatched apply: ", str.length, " / ", unpacked.oldLen);

Saya pikir solusinya adalah Etherpad dapat "meminta" revisi sebelumnya setelah menerima revisi yang "di masa depan" dan menerapkannya sebelum revisi terbaru. Pada dasarnya setelah menerima 3 dan mengetahui itu di 1 ia juga meminta [2] dan menerapkan [2] sebelum 3 ?

Saya mencoba membuat masalah yang sama pada etherpad-cli-client dengan etherpad-load-test dan tidak bisa. Pesan selalu muncul untuk memuat secara berurutan. Langkah selanjutnya adalah mensimulasikan penundaan antara CLIENT_VARS dan NEW_CHANGES dan lihat apa yang terjadi.

Minor Bug

Komentar yang paling membantu

Tercatat @yorickreum. Tetapi jika saya dapat memperbaiki masalah ini, kemungkinan/kemungkinan itu akan memperbaiki masalah Anda. Aplikasi yang tidak cocok pada dasarnya adalah kondisi balapan yang perlu saya perbaiki dan perbaikan bug masalah ini diharapkan akan mencakup semua kemungkinan kondisi balapan yang terjadi terlepas dari penyebabnya.

Semua 9 komentar

Menariknya menggunakan klien CLI ini tidak pernah terjadi. Jadi ini harus menjadi masalah klien web.

Baris 283 dari collab_client.js

    if (msg.type == "NEW_CHANGES")

Dari sinilah kesalahan tampaknya berasal..

Tampaknya jumlah revisi tidak ditangani dengan baik..

Hai John, benar!
Saya menjalankan loadTest di server Uji: node app.js http://127.0.0.1 :9001/p/load -d 180 -l 100 -a 500
dan juga pada Productive: node app.js http://127.0.0.1 :9001/p/load -l 50 -a 12
tidak ada Masalah.

Seorang pengguna mengkonfirmasi kepada saya, jika Anda sudah di pad, Anda tidak memiliki masalah. Masalah terjadi pada kami dari 10 hingga 15 pengguna.

180/500 adalah angka yang tidak realistis! 500 penulis masing-masing melakukan 1 pengeditan per detik akan merusak Internet ️

Hai @JohnMcLear , tentu saja. Tapi saya bisa tegaskan, instalasi Etherpad bertahan! Mengesankan. Namun, ini juga berarti bahwa apa pun yang membuat instance kita mogok (lihat masalah tertutup https://github.com/ether/etherpad-lite/issues/4090) mungkin tidak terlalu bergantung pada aktivitas di pad, yang mungkin berarti adalah masalah lain.

Tercatat @yorickreum. Tetapi jika saya dapat memperbaiki masalah ini, kemungkinan/kemungkinan itu akan memperbaiki masalah Anda. Aplikasi yang tidak cocok pada dasarnya adalah kondisi balapan yang perlu saya perbaiki dan perbaikan bug masalah ini diharapkan akan mencakup semua kemungkinan kondisi balapan yang terjadi terlepas dari penyebabnya.

Menarik. mismatched apply hanya berlaku untuk menerapkan changeset ke string, bukan "tambahkan" konten pad yang merupakan satu-satunya hal yang dilakukan alat loadTest.

Saya perlu membuat alat loadTest juga mensimulasikan penerapan changeset ke string.

Hanya pembaruan tentang ini jika ada yang basi.

Saya tidak dapat mengingat logika untuk menerapkan atribut ke pilihan hanya dengan menggunakan changeset.js tanpa manajer atribut dokumen jadi saya telah meminta bantuan.

Ini adalah sesuatu yang baru-baru ini dapat dibantu oleh seseorang yang baru dikenal. Setelah saya memiliki logika itu, saya akan memasukkannya ke dalam tes beban dan mudah-mudahan dapat mensimulasikan bug.

Jika tidak ada pembaruan lebih lanjut dari saya tentang ini, itu karena saya kehabisan waktu.

Hanya pembaruan/laporan singkat:

Kemarin masalah terjadi lagi untuk saya di pad dengan hanya 2 pengguna jadi saya sepertinya tidak bergantung pada jumlah pengguna seperti yang sudah ditulis oleh @yorickreum (lihat https://github.com/ether/etherpad-lite/issues /4090). Masalah muncul setelah 2 menit dan berlangsung selama 1 menit sebelum saya menutup tab dan membuka kembali pad di tab baru yang akhirnya menyelesaikan masalah selama satu jam berikutnya. Saya menggunakan Firefox 78.0.2.

@Oremountainflorian Saya akan tergoda untuk menyarankan pengujian tanpa plugin untuk melihat apakah itu berlanjut.

Dalam 1 menit setelah kesalahan berlanjut, apakah Anda mencoba menyegarkan browser Anda? Perubahan tidak disimpan terus-menerus sehingga tidak masuk akal bahwa penyegaran aktivitas rendah tidak diperbaiki. Saya merasa beberapa keparat plugin bisa terjadi

Apakah halaman ini membantu?
0 / 5 - 0 peringkat