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

--kdm5ptxooynwc6ol
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

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
> >=20
> > % locale
> > LANG=3Den_US.UTF-8
> > LC_CTYPE=3D"en_US.UTF-8"
> > LC_COLLATE=3D"en_US.UTF-8"
> > LC_TIME=3D"en_US.UTF-8"
> > LC_NUMERIC=3D"en_US.UTF-8"
> > LC_MONETARY=3D"en_US.UTF-8"
> > LC_MESSAGES=3D"en_US.UTF-8"
> > LC_ALL=3D
> >=20
> > % mkdir x
> > % touch x/=C3=86on1
> > % ls x
> > =C3=86on1
> > % touch x/=C3=86on2
> > % ls -f x=20
> > .     ..    =C3=86on1  =C3=86on2
> > % ls -f x | hd
> > 00000000  2e 0a 2e 2e 0a c3 86 6f  6e 31 0a c3 86 6f 6e 32  |.......on1=
=2E..on2|
> > 00000010  0a                                                |.|
> > 00000011
> > % ls x
> > [hangs and consumes 100% CPU]
> > ^C
> >=20
> > % gdb /bin/ls
> > [=E2=80=A6]
> > (gdb) run x
> > Starting program: /bin/ls x
> > [hangs]
> > ^C
> > Program received signal SIGINT, Interrupt.
> > 0x0000000800ffa9dd in _collate_lookup (table=3D<value optimized out>, t=
=3D<value optimized out>,=20
> >     len=3D<value optimized out>, pri=3D<value optimized out>, which=3D<=
value optimized out>, state=3D<value optimized out>)
> >     at /usr/src/lib/libc/locale/collate.c:340
> > 340			*pri =3D table->char_pri_table[*t].pri[which];
> > Current language:  auto; currently minimal
> > (gdb) bt
> > #0  0x0000000800ffa9dd in _collate_lookup (table=3D<value optimized out=
>, t=3D<value optimized out>,=20
> >     len=3D<value optimized out>, pri=3D<value optimized out>, which=3D<=
value optimized out>, state=3D<value optimized out>)
> >     at /usr/src/lib/libc/locale/collate.c:340
> > #1  0x0000000800fdc38a in wcscoll_l (ws1=3D<value optimized out>, ws2=
=3D<value optimized out>,=20
> >     locale=3D<value optimized out>) at /usr/src/lib/libc/string/wcscoll=
=2Ec:158
> > #2  0x0000000800fd9071 in strcoll_l (s=3D<value optimized out>, s2=3D<v=
alue optimized out>, locale=3D0x80124f338)
> >     at /usr/src/lib/libc/string/strcoll.c:101
> > #3  0x0000000800fee253 in qsort (a=3D<value optimized out>, n=3D<value =
optimized out>, es=3D<value optimized out>,=20
> >     cmp=3D0x800f28530 <fts_compar>) at /usr/src/lib/libc/stdlib/qsort.c=
:130
> > #4  0x0000000800f27397 in fts_sort (sp=3D<value optimized out>, head=3D=
<value optimized out>, nitems=3D<value optimized out>)
> >     at /usr/src/lib/libc/gen/fts.c:995
> > #5  0x0000000800f2848e in fts_children (sp=3D<value optimized out>, ins=
tr=3DError accessing memory address 0x2: Bad address.
> > ) at /usr/src/lib/libc/gen/fts.c:570
> > #6  0x00000000004030df in traverse (argc=3D<value optimized out>, argv=
=3D<value optimized out>,=20
> >     options=3D<value optimized out>) at /usr/src/bin/ls/ls.c:576
> > #7  0x0000000000402eeb in main (argc=3D<value optimized out>, argv=3D<v=
alue 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, l=
ine 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
> > [=E2=80=A6]
> >=20
> > Breakpoint 1, strcoll_l (s=3D<value optimized out>, s2=3D<value optimiz=
ed out>, locale=3D0x80124f338)
> >     at /usr/src/lib/libc/string/strcoll.c:101
> > 101		ret =3D wcscoll_l(w1, w2, locale);
> > (gdb) n
> > [wcscoll_l never returns]
> >=20
> >=20
> > Does anybody know what=E2=80=99s going on? This is on a ZFS filesystem =
if that matters.
>=20
> 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.
>=20
> https://svnweb.freebsd.org/changeset/base/302324
>=20
> FYI, this problem is tracked as PR211135.
>=20
> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D211135
>=20
> Jung-uk Kim
>=20


Fixed by: r302916.

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

Best regards,
Bapt

--kdm5ptxooynwc6ol
Content-Type: application/pgp-signature; name="signature.asc"

-----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-----

--kdm5ptxooynwc6ol--



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