Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 30 Jan 2019 13:41:59 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 235320] usr.bin/units: What does this error message really mean: units: memory overflow in unit reduction
Message-ID:  <bug-235320-227@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D235320

            Bug ID: 235320
           Summary: usr.bin/units: What does this error message really
                    mean: units: memory overflow in unit reduction
           Product: Base System
           Version: 11.2-RELEASE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: bin
          Assignee: bugs@FreeBSD.org
          Reporter: 0mp@FreeBSD.org

I use the following one-liner to test:

> sh -c 'units "$(yes m | head -n "$1")" "$(yes cm | head -n "$1")"' sh $N

When N is at most 154 then units(1) handles the conversion as expected. For
example, for N=3D154:

>         * 1e+308
>         / 1e-308

For N from 155 to 333 the output is as follows:

>         * inf
>         / 0

While for N from 334 to 500 the output seems a little bit broken. Here is t=
he
output of N=3D500:

> units: memory overflow in unit reduction
> conformability error
>         1 m^334
>         0 centi m centi m centi m centi m centi m centi m centi m centi m=
 centi m centi m centi m centi m centi m centi m centi m centi m centi m ce=
nti m centi m centi m centi m centi m centi m centi m centi m centi m centi=
 m centi m centi m centi m centi m centi m centi m centi m centi m centi m =
centi m centi m centi m centi m centi m centi m centi m centi m centi m cen=
ti m centi m centi m centi m centi m centi m centi m centi m centi m centi =
m centi m centi m centi m centi m centi m centi m centi m centi m centi m c=
enti m centi m centi m centi m centi m centi m centi m centi m centi m cent=
i m centi m centi m centi m centi m centi m centi m centi m centi m centi m=
 centi m centi m centi m centi m centi m centi m centi m centi m centi m ce=
nti m centi m centi m centi m centi m centi m centi m centi m centi m centi=
 m centi m centi m centi m centi m centi m centi m centi m centi m centi m =
centi m centi m centi m centi m centi m centi m centi m centi m centi m cen=
ti m centi m centi m centi m centi m centi m centi m centi m centi m centi =
m centi m centi m centi m centi m centi m centi m centi m centi m centi m c=
enti m centi m centi m centi m centi m centi m centi m centi m centi m cent=
i m centi m centi m centi m centi m centi m centi m centi m centi m centi m=
 centi m centi m centi m centi m centi m centi m centi m centi m centi cm m=
^166

For N >=3D 501 the output is:

> units: memory overflow in unit reduction
> units: memory overflow in unit reduction
> units: memory overflow in unit reduction
> conformability error
>         1 m^500
>         1 centi cm^499

I'd like to document this behavior but I am not sure what really is expecte=
d to
happen in those edge cases.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



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