#405482 stardict-gtk: segfaults when enable_collation=1 in the .cfg

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:
#405482#5
Date:
2007-01-03 21:28:10 UTC
From:
To:
  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

#405482#10
Date:
2007-01-03 22:43:47 UTC
From:
To:
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?

#405482#15
Date:
2007-01-03 22:51:01 UTC
From:
To:
  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.

#405482#20
Date:
2007-01-08 07:16:43 UTC
From:
To:
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?

#405482#25
Date:
2007-01-08 07:51:11 UTC
From:
To:
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.

#405482#30
Date:
2007-01-08 08:03:57 UTC
From:
To:
  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.

#405482#35
Date:
2007-01-09 00:13:59 UTC
From:
To:
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
}}}

#405482#40
Date:
2007-01-10 09:07:22 UTC
From:
To:
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)
}}}

#405482#45
Date:
2007-09-24 07:19:07 UTC
From:
To:
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).

#405482#50
Date:
2007-09-27 09:05:58 UTC
From:
To:
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).

#405482#55
Date:
2020-04-17 16:22:10 UTC
From:
To:
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)

#405482#68
Date:
2021-12-06 03:14:58 UTC
From:
To:
stardict was recently reintroduced to Debian sid.
Please try to reproduce the bug with the new version.

#405482#73
Date:
2021-12-07 09:34:48 UTC
From:
To:
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 写道: