stable/11 Problems with Unicode character and ls(1) sorting
Baptiste Daroussin
bapt at FreeBSD.org
Fri Jul 15 23:10:34 UTC 2016
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 at 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20160716/05542fa3/attachment.sig>
More information about the freebsd-stable
mailing list