Mycroft-core: kesalahan pyee | pengecualian memanggil callback untuk<future at="" state="finished" raised="" keyerror=""/>

Dibuat pada 16 Sep 2020  ·  10Komentar  ·  Sumber: MycroftAI/mycroft-core

Cara mengirimkan Masalah ke repositori Mycroft

Saat mengirimkan Masalah ke repositori Mycroft, harap ikuti panduan ini untuk membantu kami membantu Anda.

Perjelas tentang perangkat lunak, perangkat keras, dan versi yang Anda jalankan

Sebagai contoh:

  • Saya menjalankan Picroft
  • Dengan versi terbaru
  • Dengan Wake Word standar

Coba berikan langkah-langkah yang dapat kami gunakan untuk mereplikasi Masalah

Sebagai contoh:

  1. Buka mycroft cli
  2. tunggu (itu datang setiap sekitar 30 detik)

Berikan file log atau keluaran lain untuk membantu kami melihat kesalahan tersebut

20:00:14.407 | ERROR | 949 | concurrent.futures | exception calling callback for <Future at 0x737d7b10 state=finished raised KeyError>Traceback (most recent call last): File "/usr/lib/python3.7/concurrent/futures/_base.py", line 324, in _invoke_callbacks callback(self) File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/pyee/_executor.py", line 60, in _callback self.emit('error', exc) File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/pyee/_base.py", line 111, in emit self._emit_handle_potential_error(event, args[0] if args else None) File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/pyee/_base.py", line 83, in _emit_handle_potential_error raise error File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run result = self.fn(*self.args, **self.kwargs) File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/pyee/_base.py", line 121, in g self.remove_listener(event, f) File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/pyee/_base.py", line 136, in remove_listener self._events[event].pop(f)KeyError: <bound method MessageWaiter._handler of <mycroft.messagebus.client.client.MessageWaiter object at 0xb2e8fd90>> 20:00:14.408 | ERROR | 949 | concurrent.futures | exception calling callback for <Future at 0x737d79d0 state=finished raised KeyError>Traceback (most recent call last): File "/usr/lib/python3.7/concurrent/futures/_base.py", line 324, in _invoke_callbacks callback(self) File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/pyee/_executor.py", line 60, in _callback self.emit('error', exc) File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/pyee/_base.py", line 111, in emit self._emit_handle_potential_error(event, args[0] if args else None) File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/pyee/_base.py", line 83, in _emit_handle_potential_error raise error File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run result = self.fn(*self.args, **self.kwargs) File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/pyee/_base.py", line 121, in g self.remove_listener(event, f) File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/pyee/_base.py", line 136, in remove_listener self._events[event].pop(f)KeyError: <bound method MessageWaiter._handler of <mycroft.messagebus.client.client.MessageWaiter object at 0x7514b7b0>>

image

hard Bug - complex help wanted

Komentar yang paling membantu

Ok, perbaikan pengamatan teoretis saya telah digabungkan dalam pyee dan dirilis sebagai 8.1.0. Saya akan menyiapkan PR di sini dan di Adapt untuk menyinkronkan versi dan kami akan melihat apakah itu menyelesaikan masalah. Kalau tidak, ada beberapa masalah lain juga :)

Semua 10 komentar

Bisakah Anda mencoba menyetel tingkat log ke debug dengan memasukkan perintah cli :log level debug untuk melihat apakah ini memberikan info lebih lanjut apa yang coba dilakukan sebelum terjadi kesalahan?

Sepertinya kesalahan ditampilkan saat wait_for_response() atau wait_for_message() mencoba menghapus penangan yang sudah dihapus. Akan melihat apakah saya bisa memprovokasi itu terjadi.

Screen Capture_deepin-terminal_20200917141521
Screen Capture_deepin-terminal_20200917141536
Screen Capture_deepin-terminal_20200917141604

Sial, tidak ada info tambahan jika saya membaca tangkapan layar itu dengan benar. Saya tidak dapat mereproduksinya kemarin tetapi akan mencoba lagi.

@slundsurabaya maaf: /

Hanya ide di sini. Jika pengguna atau beberapa keahlian menginstal paket pip "mycroft-messagebus-client", ada konflik versi pyee karena klien-messagebus masih menggunakan pyee == 5.0.1

https://github.com/MycroftAI/mycroft-messagebus-client/pull/4

Saya melihat itu ketika menginstal systemwide sebagai opsi --user. Tidak yakin apakah itu juga terjadi dalam venv. Mungkin itu terkait karena tentang pyee.

Jika itu terjadi, saya yakin (setelah pengujian) kesalahan yang terjadi adalah ImportErrors karena kelas ExecutorEventEmitter tidak tersedia.

Setelah beberapa lebih menyelidik dan mengobrol dengan Ake, saya pikir ini mungkin metode MessageBusClient.emitter.once mencoba untuk mengeluarkan fungsi panggilan balik dari acara yang telah dihapus.

Kami masih perlu memverifikasi ini dan jika benar, mungkin memastikan bahwa setiap fungsi yang terdaftar adalah unik.

Jadi saya melakukan beberapa pengujian dan setiap fungsi yang terdaftar itu unik. Saya pikir masalah di sini tidak fatal karena pengecualian ditangkap dan dilaporkan.

Pengujian saya membuat saya yakin bahwa masalahnya adalah kondisi balapan antara batas waktu (yang menghapus penangan) dan penghapusan otomatis pengendali pyee once . Ini mungkin sesuatu yang perlu kami laporkan ke hulu ke pyee ...

Saya telah melihat kesalahan itu sendiri secara acak dan menambahkan beberapa logging tambahan untuk melihat apakah saya dapat menunjukkan di mana dalam kode mycroft itu dipicu. Di suatu tempat dalam proses keterampilan ...

Saya membuka masalah di hulu.

Ok, perbaikan pengamatan teoretis saya telah digabungkan dalam pyee dan dirilis sebagai 8.1.0. Saya akan menyiapkan PR di sini dan di Adapt untuk menyinkronkan versi dan kami akan melihat apakah itu menyelesaikan masalah. Kalau tidak, ada beberapa masalah lain juga :)

Apakah halaman ini membantu?
0 / 5 - 0 peringkat