alphapapa / ement.el

A Matrix client for GNU Emacs
GNU General Public License v3.0
476 stars 44 forks source link

Getting `Ement: Sync timed out` ement version 0.7 #133

Closed ParetoOptimalDev closed 4 weeks ago

ParetoOptimalDev commented 1 year ago

ement Version: 0.7 GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo version 1.16.0, Xaw3d scroll bars)

I know the changelog for 0.7 had:

  • Retry sync for network timeouts. (Accidentally broken in v0.6.)

It seems I'm still getting them? I've enabled toggle-debug-on-error and waiting to see if I get a backtrace for this.

ParetoOptimalDev commented 1 year ago

Ah there it is:

Debugger entered--Lisp error: (ement-api-error "28: Operation timeout.")
  signal(ement-api-error ("28: Operation timeout."))
  ement-api-error(#s(plz-error :curl-error (28 . "Operation timeout.") :response nil :message nil))
  plz--sentinel(#<process plz-request-curl<2>> "exited abnormally with code 28\n")

Not too much information though.

alphapapa commented 1 year ago

Hello,

Please be more specific. Is it happening regularly, or only occasionally? Is it happening when you first connect, or later? Are you using the matrix.org homeserver, or something else? Are you sure you have the correct version of the package loaded, not any older version? Do you have ement-auto-sync enabled?

Thanks.

ParetoOptimalDev commented 1 year ago

Hello, Please be more specific.

Okay, no problem.

Is it happening regularly, or only occasionally?

It happens regularly, every 1-2 minutes.

Is it happening when you first connect, or later?

After first connection. First connection looks like:

No more unread articles
Ement: Read sessions.
Ement: Sync request sent, waiting for response...
Ement: Response arrived after 9.21 seconds.  Reading 1.2M JSON response...
Ement: Reading JSON took 0.34 seconds
Ement: Reading events... 
Ement: Sync request sent, waiting for response...
Ement: Sync done.  Use commands ‘ement-list-rooms’ or ‘ement-view-room’ to view a room.

Then a minute or so later, the minute after that, and so on:

Ement: Sync timed out (@pareto-optimal-dev:matrix.org).  Syncing again...

However... if I just sit at the *Ement Room List* I've noticed the issue doesn't seem to happen.

If I join the #org-mode:matrix.org room or others though, I'll get the syncing error every minute or so.

Are you using the matrix.org homeserver, or something else?

matrix.org homeserver

Are you sure you have the correct version of the package loaded, not any older version?

I'm pretty sure. When I do C-h f ement-connect RET and navigate to the source the file has:

;; Author: Adam Porter <adam@alphapapa.net>
;; Maintainer: Adam Porter <adam@alphapapa.net>
;; URL: https://github.com/alphapapa/ement.el
;; Version: 0.7

Additionally it has the taxy powered ement room list.

Do you have ement-auto-sync enabled?

Yes.

Thanks.

You're welcome.

alphapapa commented 1 year ago

I'm confused: is the problem you're reporting that you sometimes see this message:

Ement: Sync timed out (@pareto-optimal-dev:matrix.org).  Syncing again...

...and that Ement continues to sync?

Or is the problem that you get this error:

Debugger entered--Lisp error: (ement-api-error "28: Operation timeout.")
  signal(ement-api-error ("28: Operation timeout."))
  ement-api-error(#s(plz-error :curl-error (28 . "Operation timeout.") :response nil :message nil))
  plz--sentinel(#<process plz-request-curl<2>> "exited abnormally with code 28\n")

And you have to manually make Ement sync again by pressing g in a room buffer?

If it is the former, that is normal behavior when the server doesn't respond in time. It can happen when it's busy, like any other server.

If it's the latter, that should no longer be happening, since I fixed it; and I have confirmed that the fix works on my own system.

However... if I just sit at the Ement Room List I've noticed the issue doesn't seem to happen.

What do you mean, "sit at the room list"? Please use the specific Emacs jargon so I know what you mean (e.g. selected window, current buffer, etc).

If I join the #org-mode:matrix.org room or others though, I'll get the syncing error every minute or so.

I'm guessing you mean, "If I open this room in a buffer," because I'm guessing you aren't actually leaving and rejoining that room, because that's not normal for Matrix (it's not like IRC where people constantly leave and rejoin rooms).

ParetoOptimalDev commented 1 year ago

If it is the former, that is normal behavior when the server doesn't respond in time. It can happen when it's busy, like any other server.

I really don't know... i can just make a screencast later to demonstrate.

Is there some way to supress these messages though? They're happening every minute now and it's kind of distracting.

alphapapa commented 1 year ago

Is there some way to supress these messages though? They're happening every minute now and it's kind of distracting.

No, but that's not normal. It would seem to suggest that the server is overloaded (which the main matrix.org server usually isn't), or that your network connection is not stable.

alphapapa commented 10 months ago

@ParetoOptimalDev Friendly ping.

felipebalbi commented 4 weeks ago

To me this always happens on initial sync. I can never connect to anything. However, same emacs version, same ement version on a different machine, on the same network, works fine :)

Here's what I have on *Messages*a;

Ement: Response arrived after 0.34 seconds.  Reading 891 JSON response...
Ement: Reading JSON took 0.00 seconds
Ement: Reading events... 
Ement: Sync request sent.  Waiting for response...
Error running timer ‘plz--respond’: (invalid-slot-name "#<ement-room-list-section ement-room-list-section-80d0c0fc08>" :value)

But digging further, this seems to be a malformed JSON? Here's what toggle-debug-on-error gives me:

Debugger entered--Lisp error: (invalid-slot-name "#<ement-room-list-section ement-room-list-section-..." :value)
  signal(invalid-slot-name ("#<ement-room-list-section ement-room-list-section-..." :value))
  slot-missing(#<ement-room-list-section nil [ement-room-list-section] nil-nil> :value oset nil)
  #f(compiled-function (obj slots) "Set slots of OBJ with SLOTS which is a list of name/value pairs.\nCalled from the constructor routine." #<bytecode -0x8538a243da91743>)(#<ement-room-list-section nil [ement-room-list-section] nil-nil> (:type ement-room-list-section :value nil :start #<marker at 1 in *Ement Room List*> :parent nil))
  apply(#f(compiled-function (obj slots) "Set slots of OBJ with SLOTS which is a list of name/value pairs.\nCalled from the constructor routine." #<bytecode -0x8538a243da91743>) #<ement-room-list-section nil [ement-room-list-section] nil-nil> (:type ement-room-list-section :value nil :start #<marker at 1 in *Ement Room List*> :parent nil))
  shared-initialize(#<ement-room-list-section nil [ement-room-list-section] nil-nil> (:type ement-room-list-section :value nil :start #<marker at 1 in *Ement Room List*> :parent nil))

[...]
alphapapa commented 4 weeks ago

@felipebalbi That error is not a timeout error. It indicates that the package was not installed correctly. Please reinstall Ement as well as its dependency packages.