Hatuka*nezumi - IKEDA Soji <hatuka@nezumi.nu> writes:
Show quoted text> Hello Slaven,
>
> I don't have *BSD environment now. Would you check following things?
>
> 1. Disable libthai support and do the tests:
> $ make clean; perl Makefile.PL nolibthai; make test
This works fine.
Show quoted text> 2. If problems disappear, reinstall libthai (and datrie, if
> it was installed separately) then try tests with it again.
Well, the FreeBSD ports have only libthai 0.1.5 (and no datrie at all)
and the upstream lists 0.1.12 as latest. Will try later.
Show quoted text>
> 3. Where the code got into infinite loop? For example, would you
> dump core (kill -ABRT the test) then send backtrace to me?
With perl -d:Trace the last lines before the infinite loop are:
Show quoted text>> t/lb.pl:29: my $broken = encode_utf8($lb->break($instring));
>> /mnt/i386/var/tmp/CPAN-build/Unicode-LineBreak-1.004.520-jqUkTm/blib/lib/Unicode/LineBreak.pm:278: my $self = shift;
>> /mnt/i386/var/tmp/CPAN-build/Unicode-LineBreak-1.004.520-jqUkTm/blib/lib/Unicode/LineBreak.pm:279: my $user_funcs = shift;
>> /mnt/i386/var/tmp/CPAN-build/Unicode-LineBreak-1.004.520-jqUkTm/blib/lib/Unicode/LineBreak.pm:280: my $str = shift;
>> /mnt/i386/var/tmp/CPAN-build/Unicode-LineBreak-1.004.520-jqUkTm/blib/lib/Unicode/LineBreak.pm:282: unless (defined $str and length $str) {
>> /mnt/i386/var/tmp/CPAN-build/Unicode-LineBreak-1.004.520-jqUkTm/blib/lib/Unicode/LineBreak.pm:286: my @ret = ();
>> /mnt/i386/var/tmp/CPAN-build/Unicode-LineBreak-1.004.520-jqUkTm/blib/lib/Unicode/LineBreak.pm:287: while (length $str) {
>> /mnt/i386/var/tmp/CPAN-build/Unicode-LineBreak-1.004.520-jqUkTm/blib/lib/Unicode/LineBreak.pm:288: my $func;
>> /mnt/i386/var/tmp/CPAN-build/Unicode-LineBreak-1.004.520-jqUkTm/blib/lib/Unicode/LineBreak.pm:289: my ($s, $match, $post) = ($str, '', '');
>> /mnt/i386/var/tmp/CPAN-build/Unicode-LineBreak-1.004.520-jqUkTm/blib/lib/Unicode/LineBreak.pm:290: foreach my $ub (@{$user_funcs}) {
>> /mnt/i386/var/tmp/CPAN-build/Unicode-LineBreak-1.004.520-jqUkTm/blib/lib/Unicode/LineBreak.pm:290: foreach my $ub (@{$user_funcs}) {
>> /mnt/i386/var/tmp/CPAN-build/Unicode-LineBreak-1.004.520-jqUkTm/blib/lib/Unicode/LineBreak.pm:299: if (length $match) {
>> /mnt/i386/var/tmp/CPAN-build/Unicode-LineBreak-1.004.520-jqUkTm/blib/lib/Unicode/LineBreak.pm:302: $s = $str;
>> /mnt/i386/var/tmp/CPAN-build/Unicode-LineBreak-1.004.520-jqUkTm/blib/lib/Unicode/LineBreak.pm:303: $str = '';
>> /mnt/i386/var/tmp/CPAN-build/Unicode-LineBreak-1.004.520-jqUkTm/blib/lib/Unicode/LineBreak.pm:306: push @ret, $s if length $s;
>> /mnt/i386/var/tmp/CPAN-build/Unicode-LineBreak-1.004.520-jqUkTm/blib/lib/Unicode/LineBreak.pm:309: if (length $match) {
>> /mnt/i386/var/tmp/CPAN-build/Unicode-LineBreak-1.004.520-jqUkTm/blib/lib/Unicode/LineBreak.pm:328: @ret;
The backtrace is
(gdb) bt
#0 0x000000080161ee44 in th_brk () from /usr/local/lib/libthai.so.0
#1 0x000000080161f5e7 in th_wbrk () from /usr/local/lib/libthai.so.0
#2 0x000000080150c8dd in linebreak_southeastasian_flagbreak () from /mnt/i386/var/tmp/CPAN-build/Unicode-LineBreak-1.004.520-jqUkTm/blib/arch/auto/Unicode/LineBreak/LineBreak.so
#3 0x0000000801509b31 in linebreak_break_partial () from /mnt/i386/var/tmp/CPAN-build/Unicode-LineBreak-1.004.520-jqUkTm/blib/arch/auto/Unicode/LineBreak/LineBreak.so
#4 0x000000080150ac2f in linebreak_break () from /mnt/i386/var/tmp/CPAN-build/Unicode-LineBreak-1.004.520-jqUkTm/blib/arch/auto/Unicode/LineBreak/LineBreak.so
#5 0x0000000801506c64 in XS_Unicode__LineBreak_break () from /mnt/i386/var/tmp/CPAN-build/Unicode-LineBreak-1.004.520-jqUkTm/blib/arch/auto/Unicode/LineBreak/LineBreak.so
#6 0x000000000047e38f in Perl_pp_entersub ()
#7 0x000000000047cade in Perl_runops_standard ()
#8 0x000000000042e37a in perl_run ()
#9 0x000000000041c314 in main ()
Tell me if you're interested in a core dump with debugging symbols.
Regards,
Slaven
Show quoted text>
> Thanks so much to your assistance.
>
> On Sun, 18 Oct 2009 12:02:57 -0400
> "Slaven_Rezic via RT" <bug-Unicode-LineBreak@rt.cpan.org> wrote:
>
>> Unicode-LineBreak-1.004.520.tar.gz and also earlier versions have a
>> hanging test suite on my freebsd system. It happens on every
>> configuration I tested (perl 5.10.1, 5.10.0, 5.8.9, 5.8.8).
>>
>> I am not sure what additional information to provide, but I can give you
>> ktrace traces, lookups into the process via gdb etc.
>>
>> Regards,
>> Slaven
>>
--
Slaven Rezic - slaven <at> rezic <dot> de
tktimex - time recording tool
http://sourceforge.net/projects/ptktools/