skeeto / elfeed

An Emacs web feeds client
The Unlicense
1.52k stars 121 forks source link

(wrong-type-argument avl-tree- #s(avl-tree- ... #284

Open gour opened 6 years ago

gour commented 6 years ago

I use the following setup for elfeed:

;; elfeed
(use-package elfeed
  :ensure t
  :init
  (elfeed-org)
  :config
  (setq url-queue-timeout 45)
  :bind ("C-x w" . elfeed)
  )

;; elfeed-org
(use-package elfeed-org
  :ensure t
  :config
  (setq rmh-elfeed-org-files (list "~/emacs/org/elfeed.org"))
  )

and after launching Emacs and invoking `C-x w' I get the following:

Debugger entered--Lisp error: (wrong-type-argument avl-tree- #s(avl-tree- :dummyroot [[[[[[[[[[[[[[nil nil ("feed.dilbert.com" . "2018-06-21") 0] [nil nil ("duck.co" . "333") 0] ("duck.co" . "332") 0] [[nil nil ("duck.co" . "335") 0] [nil nil ("duck.co" . "337") 0] ("duck.co" . "336") 0] ("duck.co" . "334") 0] [[[nil nil ("duck.co" . "339") 0] [nil nil ("duck.co" . "341") 0] ("duck.co" . "340") 0] [[nil nil ("duck.co" . "343") 0] [nil nil ("duck.co" . "345") 0] ("duck.co" . "344") 0] ("duck.co" . "342") 0] ("duck.co" . "338") 0] [[[nil nil ("duck.co" . "347") 0] [nil nil ("duck.co" . "349") 0] ("duck.co" . "348") 0] [nil [nil nil ("www.reddit.com" . "t3_8stdjm") 0] ("duck.co" . "352") 1] ("duck.co" . "351") 0] ("duck.co" . "346") -1] [[[[[nil nil ("www.reddit.com" . "t3_8staov") 0] nil ("www.reddit.com" . "t3_8st95d") -1] [[nil nil ("www.reddit.com" . "t3_8st5c8") 0] [nil nil ("www.reddit.com" . "t3_8ssyce") 0] ("www.reddit.com" . "t3_8st3n0") 0] ("www.reddit.com" . "t3_8st67x") 0] [[[nil nil ("www.reddit.com" . "t3_8ssv6q") 0] nil ("www.reddit.com" . "t3_8ssmjm") -1] [nil nil ("www.reddit.com" . "t3_8ssfi5") 0] ("www.reddit.com" . "t3_8ssh3t") -1] ("www.reddit.com" . "t3_8ssw0y") 0] [[[nil nil ("www.reddit.com" . "t3_8ss5zk") 0] [nil nil ("www.reddit.com" . "t3_8srxfo") 0] ("www.reddit.com" . "t3_8srz2t") 0] [[nil nil ("www.reddit.com" . "t3_8srvnf") 0]  
...
 rmh-elfeed-org-process(("~/emacs/org/elfeed.org") "elfeed")
  ad-Advice-elfeed(#f(compiled-function () (interactive nil) #<bytecode 0x1522af1>))
  apply(ad-Advice-elfeed #f(compiled-function () (interactive nil) #<bytecode 0x1522af1>) nil)
  elfeed()
  funcall-interactively(elfeed)
  #<subr call-interactively>(elfeed nil nil)
  apply(#<subr call-interactively> elfeed (nil nil))
  call-interactively@ido-cr+-record-current-command(#<subr call-interactively> elfeed nil nil)
  apply(call-interactively@ido-cr+-record-current-command #<subr call-interactively> (elfeed nil nil))
  call-interactively(elfeed nil nil)
  command-execute(elfeed)

However, it's interesting that it happens only during first invoking, iow. when I invoke `C-x w' next time, it launches normally.

Any hint?

I've tried to remove my /.elfeed, but it does not help.

skeeto commented 6 years ago

See #283. It looks like you've updated Emacs but you kept your old elpa/ around. This is a problem because those byte code .elc files were built with a different Emacs release. Byte code may be backwards compatible, but other important artifacts in those byte compiled files — such as macro expansions — are not. Unfortunately package.el doesn't detect this problem.

gour commented 6 years ago

Thank you. Re-installing elfeed(-org) did solve the issue!

manojm321 commented 6 years ago

I tried deleting my elpa dir completely and re-installing everything, but I still see this issue. I recently update by emacs to 26.1 via brew cask.

Error in post-command-hook (elfeed-search--live-update): (wrong-type-argument avl-tree- [cl-struct-avl-tree- [cl-struct-avl-tree- [[[[[[[

emacs version: GNU Emacs 26.1 (build 1, x86_64-apple-darwin14.5.0, NS appkit-1348.17 Version 10.10.5 (Build 14F2511)) of 2018-05-30

skeeto commented 6 years ago

@Manoj, I have no idea how brew cask works, or if it has the same build issues as package.el. It's possible you may need to delete some sort of brew cask build cache. It's also possible your database somehow got into a bad state. What's the value of elfeed-db-version after you bring up the Elfeed search buffer? It should not be 4 if you're seeing this error. If you're trying to move a database from Emacs 25 to Emacs 26, you must also be using Elfeed 3.0 or greater.

manojm321 commented 6 years ago

elfeed-db-version is indeed 4 and elfeed version is 3.1.0. Any ideas how I can workaround this? It would be good if somehow I could recover my index.