Thread: [HACKERS] Valgrind & tests for `numeric`

[HACKERS] Valgrind & tests for `numeric`

From
Dmitry Dolgov
Date:
Hi

Recently I noticed, that when I'm running the regression tests under Valgrind 3.9.0,
one test for `numeric` is constantly failing:

Here is what expected:
```
SELECT i as pow,
round((-2.5 * 10 ^ i)::numeric, -i),
round((-1.5 * 10 ^ i)::numeric, -i),
round((-0.5 * 10 ^ i)::numeric, -i),
round((0.5 * 10 ^ i)::numeric, -i),
round((1.5 * 10 ^ i)::numeric, -i),
round((2.5 * 10 ^ i)::numeric, -i)
FROM generate_series(-5,5) AS t(i);
 pow |  round   |  round   |  round   |  round  |  round  |  round  
-----+----------+----------+----------+---------+---------+---------
  -5 | -0.00003 | -0.00002 | -0.00001 | 0.00001 | 0.00002 | 0.00003
  -4 |  -0.0003 |  -0.0002 |  -0.0001 |  0.0001 |  0.0002 |  0.0003
  -3 |   -0.003 |   -0.002 |   -0.001 |   0.001 |   0.002 |   0.003
  -2 |    -0.03 |    -0.02 |    -0.01 |    0.01 |    0.02 |    0.03
  -1 |     -0.3 |     -0.2 |     -0.1 |     0.1 |     0.2 |     0.3
   0 |       -3 |       -2 |       -1 |       1 |       2 |       3
   1 |      -30 |      -20 |      -10 |      10 |      20 |      30
   2 |     -300 |     -200 |     -100 |     100 |     200 |     300
   3 |    -3000 |    -2000 |    -1000 |    1000 |    2000 |    3000
   4 |   -30000 |   -20000 |   -10000 |   10000 |   20000 |   30000
   5 |  -300000 |  -200000 |  -100000 |  100000 |  200000 |  300000
(11 rows)
```

and here is what I've got (see the last row):
```
SELECT i as pow,
round((-2.5 * 10 ^ i)::numeric, -i),
round((-1.5 * 10 ^ i)::numeric, -i),
round((-0.5 * 10 ^ i)::numeric, -i),
round((0.5 * 10 ^ i)::numeric, -i),
round((1.5 * 10 ^ i)::numeric, -i),
round((2.5 * 10 ^ i)::numeric, -i)
FROM generate_series(-5,5) AS t(i);
 pow |  round   |  round   |  round   |  round  |  round  |  round  
-----+----------+----------+----------+---------+---------+---------
  -5 | -0.00003 | -0.00002 | -0.00001 | 0.00001 | 0.00002 | 0.00003
  -4 |  -0.0003 |  -0.0002 |  -0.0001 |  0.0001 |  0.0002 |  0.0003
  -3 |   -0.003 |   -0.002 |   -0.001 |   0.001 |   0.002 |   0.003
  -2 |    -0.03 |    -0.02 |    -0.01 |    0.01 |    0.02 |    0.03
  -1 |     -0.3 |     -0.2 |     -0.1 |     0.1 |     0.2 |     0.3
   0 |       -3 |       -2 |       -1 |       1 |       2 |       3
   1 |      -30 |      -20 |      -10 |      10 |      20 |      30
   2 |     -300 |     -200 |     -100 |     100 |     200 |     300
   3 |    -3000 |    -2000 |    -1000 |    1000 |    2000 |    3000
   4 |   -30000 |   -20000 |   -10000 |   10000 |   20000 |   30000
   5 |  -300000 |  -200000 |        0 |       0 |  200000 |  300000
(11 rows)
```

I can see this behavior on the latest master with `USE_VALGRIND` enabled. Is
it something well known?

Re: [HACKERS] Valgrind & tests for `numeric`

From
Tom Lane
Date:
Dmitry Dolgov <9erthalion6@gmail.com> writes:
> Recently I noticed, that when I'm running the regression tests under
> Valgrind 3.9.0,
> one test for `numeric` is constantly failing:

That seems very strange, especially since many PG developers use
valgrind, and we even have one buildfarm animal testing with it,
and nobody has ever reported such a thing.  I'm inclined to suspect
a bug in that valgrind version.
        regards, tom lane