Closed rx80 closed 3 years ago
Same here running on latest ~amd64 Additionally, the database that is written is corrupt and causes all other eix utilities to fail:
# eix eix
error while reading from database: end of file
Downgrading to 0.34.12 and re-running eix-update fixes it.
I can reproduce too.
I can hit the bug while running eix-update and PORTDIR_OVERLAY points to guru overlay https://gitweb.gentoo.org/repo/proj/guru.git/log/?h=master
Applying masks...
Calculating hash tables...
Writing database file /var/cache/eix/portage.eix...
internal error: trying to shortcut non-hashed string
same bug
Same error
#0 StringHash::get_index (this=this@entry=0x7fffffffc0b0, s="desktop") at eixTk/stringutils.cc:636
#1 0x000055555558f805 in Database::write_hash_string (errtext=0x0, s="desktop", hash=..., this=0x7fffffffbe90) at ./database/io.h:136
#2 Database::write_hash_words (this=this@entry=0x7fffffffbe90, hash=..., words=std::vector of length 10, capacity 16 = {...}, errtext=errtext@entry=0x0) at database/io.cc:191
#3 0x0000555555591b05 in Database::write_hash_words (errtext=0x0, words="desktop java-utils-2 estack edos2unix l10n wrapper eutils rpm xdg-utils xdg", hash=..., this=0x7fffffffbe90) at ./database/io.h:153
#4 Database::write_depend (this=0x7fffffffbe90, dep=..., hdr=..., errtext=0x0) at database/io_portage.cc:290
#5 0x0000555555593c6a in Database::write_version (this=0x7fffffffbe90, v=0x55555b6b8640, hdr=..., errtext=0x0) at database/io_portage.cc:235
#6 0x0000555555593dca in Database::write_package_pure (this=this@entry=0x7fffffffbe90, pkg=..., hdr=..., errtext=errtext@entry=0x0) at database/io_portage.cc:323
#7 0x0000555555593e26 in Database::write_package (this=this@entry=0x7fffffffbe90, pkg=..., hdr=..., errtext=errtext@entry=0x7fffffffc560) at database/io_portage.cc:331
#8 0x0000555555593f12 in Database::write_packagetree (this=this@entry=0x7fffffffbe90, tree=..., hdr=..., errtext=errtext@entry=0x7fffffffc560) at ./portage/package.h:547
#9 0x000055555564fa06 in update (outputfile=<optimized out>, cache_table=0x7fffffffc580, portage_settings=0x7fffffffc6b0, override_umask=<optimized out>, repo_names=..., exclude_labels=std::vector of length 0, capacity 0, statusline=0x7fffffffc5c0, errtext=0x7fffffffc560) at eix-update.cc:706
#10 0x0000555555654fe2 in run_eix_update (argc=argc@entry=3, argv=argv@entry=0x7fffffffccc8) at /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/include/g++-v11/bits/basic_string.h:186
#11 0x000055555556db37 in run_program (argv=0x7fffffffccc8, argc=3) at ./main/main.cc:177
#12 main (argc=3, argv=0x7fffffffccc8) at ./main/main.cc:232
Running in GDB.
The regression is in commit 66f13ec5c6a612bc60741d4423925fd787f06554
I can reproduce too.
I can hit the bug while running eix-update and PORTDIR_OVERLAY points to guru overlay https://gitweb.gentoo.org/repo/proj/guru.git/log/?h=master
Running -x guru doesn't error for me, so something about that overlay is causing the issue.
Thanks for the report. The bug should be fixed in eix-0.35.1. It was triggered when an IDEPEND in some ebuild contained a word not present in any {,R,P,B}DEPEND; that's why it occurs only for certain overlays (which use already EAPI=8) and I missed it during testing.
Thanx for the quick fix, Martin! BTW: Thanx for voluntary maintaining eix - it's one of these tools I take for granted, until it breaks... ;)
Thank you for the quick fix!
Running eix-update (eix-0.35.0) fails:
After downgrade to 0.34.12 it works as expected.
In both cases i removed existing databases before the run.