Trying to know how qkeyword works I encountered a segmentation error: # gdb --args qkeyword -p dev-util/geany -T GNU gdb (Gentoo 11.2 vanilla) 11.2 Copyright (C) 2022 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-pc-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <https://bugs.gentoo.org/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from qkeyword... Reading symbols from /usr/lib/debug//usr/bin/q.debug... (gdb) run Starting program: /usr/bin/qkeyword -p dev-util/geany -T [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". Program received signal SIGSEGV, Segmentation fault. decode_arch (arch=0x5555555b03f0 "amd64") at qkeyword.c:124 124 for (q = archlist, a = 0; *q != NULL; q++, a++) { (gdb) quit Using SeerGDB I found out archlist is still 0x0. `*q != NULL` might need to be changed to `q && *q`. Add two `!= LULL`s if preferred to be pedantic. Obviously some parts of the code might need to be changed too, or perhaps archlist needs to be made sure to be initialized to an array, or maybe simply initialized as "" instead. I didn't study how other parts of the code works. Also as a side note, isn't portage-utils a "Gentoo Hosted Projects"? I don't see it in the selectable components so I'm reporting this in "Gentoo Linux" instead. Maybe allow https://github.com/github/portage-utils to have issues to be reported there too.
*https://github.com/gentoo/portage-utils I like to know why the archlist is empty too. Is it dependent on the package matches? Or is it system config based. If anyone has an idea, kindly tell, thank you.
Please run 'bt' in gdb as well and include its output.
(gdb) bt #0 decode_arch (arch=0x5555555b03f0 "amd64") at qkeyword.c:124 #1 0x00005555555675d4 in qkeyword_traverse ( func=func@entry=0x555555566e09 <qkeyword_ltesting>, priv=priv@entry=0x7fffffffd190) at qkeyword.c:795 #2 0x0000555555568698 in qkeyword_main (argc=<optimized out>, argv=<optimized out>) at qkeyword.c:923 #3 0x00005555555605ca in q_main (argc=argc@entry=4, argv=argv@entry=0x7fffffffe4e8) at q.c:116 #4 0x0000555555560218 in main (argc=4, argv=0x7fffffffe4e8) at main.c:1177 (gdb)
I think qkeyword_load_arches is responsible for filling archlist. It assumes it is set, which is a bit awkward since load_arches can just fail when profiles/arch.list isn't found in the tree in question. Can you try commit 25853d2? Thanks
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=25853d2ea35884a7f4cf6fefa2a2c53610fc6164 commit 25853d2ea35884a7f4cf6fefa2a2c53610fc6164 Author: Fabian Groffen <grobian@gentoo.org> AuthorDate: 2022-12-15 09:12:10 +0000 Commit: Fabian Groffen <grobian@gentoo.org> CommitDate: 2022-12-15 09:12:10 +0000 qkeyword: gracefully handle case with no found arches Bug: https://bugs.gentoo.org/885801 Signed-off-by: Fabian Groffen <grobian@gentoo.org> qkeyword.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
Fabian Groffen: Looks like it was a problem on my side as well. I wrongly set [gentoo] in a local repo config probably making qkeywords detect "gentoo" as local instead, making no arch.list detected. The suggestion in the message to run `q -o` helped me realize it. Anyway I no longer see segmentation issues and it seems to have fixed it, thanks.
cool, a nice and informative message is always better than segfault :) Thanks for testing!
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1fa248843038ffe79d7fce8b51e7f16c65667c7e commit 1fa248843038ffe79d7fce8b51e7f16c65667c7e Author: Fabian Groffen <grobian@gentoo.org> AuthorDate: 2023-02-22 20:15:43 +0000 Commit: Fabian Groffen <grobian@gentoo.org> CommitDate: 2023-02-22 20:17:16 +0000 app-portage/portage-utils-0.95: version bump Closes: https://bugs.gentoo.org/893424 Closes: https://bugs.gentoo.org/892533 Closes: https://bugs.gentoo.org/885801 Signed-off-by: Fabian Groffen <grobian@gentoo.org> app-portage/portage-utils/Manifest | 2 +- .../portage-utils/portage-utils-0.94.1.ebuild | 67 ------------------- .../portage-utils/portage-utils-0.95.ebuild | 75 ++++++++++++++++++++++ 3 files changed, 76 insertions(+), 68 deletions(-)