- Package:
- stardict-gtk
- Source:
- stardict
- Description:
- International dictionary lookup program - gtk
- Submitter:
- Pierre Habouzit
- Date:
- 2021-12-07 09:51:02 UTC
- Severity:
- important
- Tags:
all is in the title here is the full .cfg if needed, but the segfaults goes away if I just remove the one incriminated line. [/apps/stardict/preferences/dictionary] scan_selection=1 only_scan_while_modifier_key=1 enable_collation=1 only_export_word=1 enable_sound_event=0 hide_floatwin_when_modifier_key_released=0 scan_modifier_key=4 [/apps/stardict/preferences/floating_window] lock=0 max_window_width=640 max_window_height=480 [/apps/stardict/preferences/main_window] hide_list=1 hide_on_startup=1
Hi Pierre, I cannot reproduce this problem with your stardict.cfg on my system which is running current sid on i386 architecture. Have you tested this on other architecture yet? Would that be possible this is only amd64 specific bug?
nope and I don't have access to any.
btw I only have the xmlittre dict installed.
It may. I reckon I've not had the time to investigate the bug yet, as
it will probably need a debug build to have some useful backtrace, as
the current one is:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 47587415481152 (LWP 27725)]
0x0000000000442a18 in std::operator+<char, std::char_traits<char>, std::allocator<char> > ()
(gdb) bt
#0 0x0000000000442a18 in std::operator+<char, std::char_traits<char>, std::allocator<char> > ()
#1 0x00000000004423ec in std::operator+<char, std::char_traits<char>, std::allocator<char> > ()
#2 0x00002b47cdf55dd1 in g_qsort_with_data () from /usr/lib/libglib-2.0.so.0
#3 0x000000000044a5a5 in std::operator+<char, std::char_traits<char>, std::allocator<char> > ()
#4 0x000000000044ba8f in std::operator+<char, std::char_traits<char>, std::allocator<char> > ()
#5 0x000000000044afd3 in std::operator+<char, std::char_traits<char>, std::allocator<char> > ()
#6 0x000000000044bd9b in std::operator+<char, std::char_traits<char>, std::allocator<char> > ()
#7 0x000000000044e351 in std::operator+<char, std::char_traits<char>, std::allocator<char> > ()
#8 0x000000000044e586 in std::operator+<char, std::char_traits<char>, std::allocator<char> > ()
#9 0x000000000044bf8f in std::operator+<char, std::char_traits<char>, std::allocator<char> > ()
#10 0x0000000000410278 in ?? ()
#11 0x00000000004111d9 in ?? ()
#12 0x00000000004153ba in ?? ()
#13 0x00002b47ce8834ca in __libc_start_main () from /lib/libc.so.6
#14 0x000000000040cfca in ?? ()
#15 0x00007fffdea08218 in ?? ()
#16 0x0000000000000000 in ?? ()
I've checked that it's not a locale dependant one though, it segfaults
as well when I force LC_ALL and stuff to C.
Pierre Habouzit wrote: I don't have access to any amd64. I went on irc and then ask if anyone can test it with their own amd64. epaulin on #debian-zh reported he cannot reproduce this problem on his amd64(sid). And he has these dicts installed: 15:35 < epaulin> AndrewLee: stardict-cdict-gb-2.4.2 15:35 < epaulin> stardict-cedict-gb-2.4.2 15:35 < epaulin> stardict-dictd_www.freedict.de_deu-eng-2.4.2 15:35 < epaulin> stardict-hanzim-2.4.2 15:35 < epaulin> stardict-langdao-ce-gb-2.4.2 15:35 < epaulin> stardict-langdao-ec-gb-2.4.2 15:36 < epaulin> stardict-xdict-ce-gb-2.4.2 Maybe this is dict specfic, could you please also try with another dict? I am not good at this, Anthony and Roy, could you please have a look?
Hi Pierre,
I cannot reproduce this problem neither.
And my workstation is running Debian AMD64 On a AMD64 3800+x2 CPU.
Here is the dicts I am installed:
{{{
epaulin@josh:~$ ls -l /usr/share/stardict/dic/ | awk {'print $8'}
stardict-cdict-gb-2.4.2
stardict-cedict-gb-2.4.2
stardict-dictd_www.freedict.de_deu-eng-2.4.2
stardict-hanzim-2.4.2
stardict-langdao-ce-gb-2.4.2
stardict-langdao-ec-gb-2.4.2
stardict-xdict-ce-gb-2.4.2
}}}
I was experienced some stardict crashing in a long time ago, mostly is
cause by some unstable dict. I recommend you disable some dict, and
run it again.
sorry, it does not work better with other dicts :| Maybe that was not clear, but I use stardict-gtk (do not know if that makes a difference) and I've tried with only stardict-english-czech installed and that do not work either.
My bad, I guess I didn't remove all tab character.
I test it again this moring, and yeah, I got "Segmentation fault" too;
System: Debian GNU/Linux AMD64 SID
CPU: AMD64x2
Kernel: 2.6.18-3-amd64
stardict-gtk: 2.4.8-1+b1
{{{
epaulin@josh:~$ stardict
Loading...
Sorting, please wait...
Segmentation fault
}}}
The following is the backtrace on my machine:
{{{
Starting program: /usr/bin/stardict
[Thread debugging using libthread_db enabled]
[New Thread 47135289308688 (LWP 13057)]
Loading...
Sorting, please wait...
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 47135289308688 (LWP 13057)]
offset_index::get_key (this=0x6419d0, idx=50362786524621) at stddict.cpp:592
592
page_data.resize(oft_file.wordoffset[page_idx+1]-oft_file.wordoffset[page_idx]);
(gdb) bt
#0 offset_index::get_key (this=0x6419d0, idx=50362786524621) at stddict.cpp:592
#1 0x0000000000443e3c in sort_collation_index (a=0x655884,
b=0x64a150, user_data=0x2ade8acf0066) at stddict.cpp:527
#2 0x00002ade89108be1 in g_qsort_with_data () from /usr/lib/libglib-2.0.so.0
#3 0x000000000044c005 in idxsyn_file::collate_sort (this=0x6419d0,
url=<value optimized out>, saveurl=@0x7fff234fc330,
collf=UTF8_GENERAL_CI, sp=0x585d80) at stddict.cpp:847
#4 0x000000000044d4ef in offset_index::load (this=0x6419d0,
url=@0x7fff234fc330, wc=23451, fsize=357415, CreateCacheFile=true,
EnableCollation=true, _CollateFunction=UTF8_GENERAL_CI, sp=0x585d80)
at stddict.cpp:578
#5 0x000000000044ca33 in Dict::load (this=0x63cba0,
ifofilename=@0x7fff234fc420, CreateCacheFile=true,
EnableCollation=true, CollateFunction=UTF8_GENERAL_CI, sp=0x585d80) at
stddict.cpp:1028
#6 0x000000000044d7fb in Libs::load_dict (this=0x7fff234fc998,
url=@0x7fff234fc420, sp=0x585d80) at stddict.cpp:1245
#7 0x000000000044fe21 in __for_each_file<DictLoader>
(dirname=@0x7fff234fc4b0, suff=@0x7fff234fc560, order_list=@0x5ad7c0,
disable_list=@0x5ad890, f=<value optimized out>) at stddict.cpp:1257
#8 0x000000000044fc88 in __for_each_file<DictLoader>
(dirname=@0x5ada60, suff=@0x7fff234fc560, order_list=@0x5ad7c0,
disable_list=@0x5ad890, f={lib = @0x6419d0}) at file.hpp:24
#9 0x0000000000450066 in for_each_file<DictLoader>
(dirs_list=@0x5ad970, suff=@0x7fff234fc560, order_list=@0x5ad7c0,
disable_list=@0x5ad890, f={lib = @0x6419d0}) at file.hpp:50
#10 0x000000000044d9ff in Libs::load (this=0x7fff234fc998,
dicts_dirs=@0x5ad970, order_list=@0x5ad7c0, disable_list=@0x5ad890) at
stddict.cpp:1268
#11 0x0000000000410448 in AppCore::Create (this=0x7fff234fc7a0,
queryword=0x0) at stardict.cpp:142
#12 0x00000000004115a9 in AppFrame::Init (this=0x7fff234fc7a0,
queryword=0x0) at stardict.cpp:1385
#13 0x0000000000415e7a in main (argc=1, argv=0x7fff234fcb58) at
stardict.cpp:1803
(gdb)
}}}
Hi, I started using stardict, and I confirm the bug (though behaving a bit different from what is described in the bugreport). How to reproduce: Install stardict-gtk 3.0.0-1 and stardict-english-czech 20070901-1 (no other dictionary, but the bug shows up also with other dictionaries). Then click on Preferences, Dictionary, Cache, Sort word list by collate function and then select some national collate function (e.g. utf8_czech_ci). Stardict segfaults instantly, but strangely, during the next start it sorts the dictionaries and the collate seems to work. This bug does not occur if you select utf8_general_ci, utf8_unicode_ci or utf8_bin. The behaviour is the same with both stardict and stardict-gtk on my debian unstable i386 or PowerPC, Ubuntu edgy with their package, and stardict binary debian package from the upstream site, I have not tried to recompile upstream sources (yet).
Definitely an upstream issue - the MS Windows version suffers the same symptoms. I dag into the code and found out (in ctype-uca.cpp), if I am tracking it right, that the CHARSET_INFO structures are initialized with uca_weight being NULL and then dereferenced (backtrace included, from the SVN version).
Dear submitter, as the package stardict has just been removed from the Debian archive unstable we hereby close the associated bug reports. We are sorry that we couldn't deal with your issue properly. For details on the removal, please see https://bugs.debian.org/956844 The version of this package that was in Debian prior to this removal can still be found using http://snapshot.debian.org/. Please note that the changes have been done on the master archive and will not propagate to any mirrors until the next dinstall run at the earliest. This message was generated automatically; if you believe that there is a problem with it please contact the archive administrators by mailing ftpmaster@ftp-master.debian.org. Debian distribution maintenance software pp. Scott Kitterman (the ftpmaster behind the curtain)
stardict was recently reintroduced to Debian sid. Please try to reproduce the bug with the new version.
Hi, I can't ||||unreproducible this bug in the new version.|| ||apt install stardict-english-czech|| ||then use the step from:|| ||https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=405482#45|| ||There is not ||segfaults. The part of my ~/.config/stardict/stardict.cfg : [/apps/stardict/preferences/dictionary] scan_selection=false enable_collation=true do_not_load_bad_dict=true collate_function=3 |||| || || 在 2021/12/6 上午11:14, Paul Wise 写道: