Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 16 Jul 2016 01:10:30 +0200
From:      Baptiste Daroussin <bapt@FreeBSD.org>
To:        Jung-uk Kim <jkim@FreeBSD.org>
Cc:        Thomas Eberhardt <sneakywumpus@gmail.com>, freebsd-stable@FreeBSD.org
Subject:   Re: stable/11 Problems with Unicode character and ls(1) sorting
Message-ID:  <20160715231030.k6ywbzdgi43lom33@ivaldir.etoilebsd.net>
In-Reply-To: <dbe39521-43cc-f5bf-342b-aef8b8fc773d@FreeBSD.org>
References:  <A00985AB-C9B7-4D22-B5D1-DF485370D8BF@gmail.com> <dbe39521-43cc-f5bf-342b-aef8b8fc773d@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
On Fri, Jul 15, 2016 at 11:38:22AM -0400, Jung-uk Kim wrote:
> On 07/15/16 09:55 AM, Thomas Eberhardt wrote:
> > % uname -a
> > FreeBSD clarence.ocp.lan 11.0-BETA1 FreeBSD 11.0-BETA1 #0 r302457: Sat Jul  9 10:41:40 CEST 2016     thomas@clarence.ocp.lan:/usr/obj/usr/src/sys/GENERIC  amd64
> > 
> > % locale
> > LANG=en_US.UTF-8
> > LC_CTYPE="en_US.UTF-8"
> > LC_COLLATE="en_US.UTF-8"
> > LC_TIME="en_US.UTF-8"
> > LC_NUMERIC="en_US.UTF-8"
> > LC_MONETARY="en_US.UTF-8"
> > LC_MESSAGES="en_US.UTF-8"
> > LC_ALL=
> > 
> > % mkdir x
> > % touch x/Æon1
> > % ls x
> > Æon1
> > % touch x/Æon2
> > % ls -f x 
> > .     ..    Æon1  Æon2
> > % ls -f x | hd
> > 00000000  2e 0a 2e 2e 0a c3 86 6f  6e 31 0a c3 86 6f 6e 32  |.......on1...on2|
> > 00000010  0a                                                |.|
> > 00000011
> > % ls x
> > [hangs and consumes 100% CPU]
> > ^C
> > 
> > % gdb /bin/ls
> > […]
> > (gdb) run x
> > Starting program: /bin/ls x
> > [hangs]
> > ^C
> > Program received signal SIGINT, Interrupt.
> > 0x0000000800ffa9dd in _collate_lookup (table=<value optimized out>, t=<value optimized out>, 
> >     len=<value optimized out>, pri=<value optimized out>, which=<value optimized out>, state=<value optimized out>)
> >     at /usr/src/lib/libc/locale/collate.c:340
> > 340			*pri = table->char_pri_table[*t].pri[which];
> > Current language:  auto; currently minimal
> > (gdb) bt
> > #0  0x0000000800ffa9dd in _collate_lookup (table=<value optimized out>, t=<value optimized out>, 
> >     len=<value optimized out>, pri=<value optimized out>, which=<value optimized out>, state=<value optimized out>)
> >     at /usr/src/lib/libc/locale/collate.c:340
> > #1  0x0000000800fdc38a in wcscoll_l (ws1=<value optimized out>, ws2=<value optimized out>, 
> >     locale=<value optimized out>) at /usr/src/lib/libc/string/wcscoll.c:158
> > #2  0x0000000800fd9071 in strcoll_l (s=<value optimized out>, s2=<value optimized out>, locale=0x80124f338)
> >     at /usr/src/lib/libc/string/strcoll.c:101
> > #3  0x0000000800fee253 in qsort (a=<value optimized out>, n=<value optimized out>, es=<value optimized out>, 
> >     cmp=0x800f28530 <fts_compar>) at /usr/src/lib/libc/stdlib/qsort.c:130
> > #4  0x0000000800f27397 in fts_sort (sp=<value optimized out>, head=<value optimized out>, nitems=<value optimized out>)
> >     at /usr/src/lib/libc/gen/fts.c:995
> > #5  0x0000000800f2848e in fts_children (sp=<value optimized out>, instr=Error accessing memory address 0x2: Bad address.
> > ) at /usr/src/lib/libc/gen/fts.c:570
> > #6  0x00000000004030df in traverse (argc=<value optimized out>, argv=<value optimized out>, 
> >     options=<value optimized out>) at /usr/src/bin/ls/ls.c:576
> > #7  0x0000000000402eeb in main (argc=<value optimized out>, argv=<value optimized out>) at /usr/src/bin/ls/ls.c:498
> > #8  0x00000000004020cf in _start ()
> > #9  0x0000000800629000 in ?? ()
> > #10 0x0000000000000000 in ?? ()
> > (gdb) br strcoll.c:101
> > Breakpoint 1 at 0x800fd9063: file /usr/src/lib/libc/string/strcoll.c, line 101.
> > (gdb) run
> > The program being debugged has been started already.
> > Start it from the beginning? (y or n) y
> > Starting program: /bin/ls x
> > […]
> > 
> > Breakpoint 1, strcoll_l (s=<value optimized out>, s2=<value optimized out>, locale=0x80124f338)
> >     at /usr/src/lib/libc/string/strcoll.c:101
> > 101		ret = wcscoll_l(w1, w2, locale);
> > (gdb) n
> > [wcscoll_l never returns]
> > 
> > 
> > Does anybody know what’s going on? This is on a ZFS filesystem if that matters.
> 
> Yes, it is a known problem and bapt is working on it.  If you're in
> hurry, reverting r302324 will fix the regression for now.
> 
> https://svnweb.freebsd.org/changeset/base/302324
> 
> FYI, this problem is tracked as PR211135.
> 
> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=211135
> 
> Jung-uk Kim
> 


Fixed by: r302916.

I'll merge it in 2 days in stable/11 if re@ agrees

Best regards,
Bapt

[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJXiW1jAAoJEGOJi9zxtz5apRQQAJAhIf4pBa2IRoHkm6o/rjPI
ZlsLUyolmloeCXrp8RnWcCKONku0kPpu+Ew1q3qCAc0sT8usL56Hcg05Vk0Igj0k
tZ55pWRrIPhPhOdzZY06K8crKRJBKERCe4K/hCWsUq5iHBBLMzwDPtO4FfBB+mF/
Vrg8232FgqcNKwV2hSjkLjRT3ymYbl4Uqm/GlQlOmi9hQBXN2SdbswOexG4rSvZR
ofgVXjles+D3Z+3kg5hyONsZbvjeKJ+i5TdEoQYEb7dy1G1+/tl3Ww9/fCzqRTeU
+q4zQUfTkp4PQshqdxMZ5UtIufRXSzfLrv8FqMqga1F0c+qPCwi9JyOQP39aVMHr
XwgcrWoXim4Z1QOKgjcnyP7ZAxbZXIL9OxrL1r2up0aGDzRCAhpjsoLx0sbVUANS
zeDnTD9vSfguM6pfF0mQDhrB9n4hJt3yoADhoLPoAYqWpnoSCTY8EeIbzSdnk4P1
bbAEpDlo0Upj0lua2zfrwqL+mc38Uq793NtJgQgMseR3kTC60ffS5m/efEBCFgdZ
pkox4e8iQb0Z3ZxYDwPpo+YlylK1FrUlv/gwg094JoAGm9BoCqa8fM18djYp+mbg
1zzZMnuUIuKL6I8EIVUIe3oPi4jaZhx0//mHu2Xjo98yl6iJGY15Dixd9SMHQDvc
o8SUzDXNssLUEpf3H1wI
=iwYb
-----END PGP SIGNATURE-----

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20160715231030.k6ywbzdgi43lom33>