Bug#1022703: dieharder: Broken output or infinite loop after sts_runs test

2022-12-13 Thread Milan Broz

On 12/13/22 14:30, Dirk Eddelbuettel wrote:


On 13 December 2022 at 14:23, Milan Broz wrote:
| We have the same issue with empty lines, temporarily workarounded by adding 
-fcommon to CFLAGS (on several places)
| (so yes, it was gcc-10 introduced problem).

:-/

| But that off_t fix works too, thanks!

But are you saying it is currently 'good' and fixed?  (There were two more
pending PR changes I belatedly merged yesterday.)


Yes, it is fixed in your "upstream" master branch.

For reference, my workaround was
https://github.com/crocs-muni/rtt-statistical-batteries/commit/80386d016073aca5d2e1570a9906f931b24b0589
(the patch is not needed anymore)

Milan



Bug#1022703: dieharder: Broken output or infinite loop after sts_runs test

2022-12-13 Thread Dirk Eddelbuettel


On 13 December 2022 at 14:23, Milan Broz wrote:
| We have the same issue with empty lines, temporarily workarounded by adding 
-fcommon to CFLAGS (on several places)
| (so yes, it was gcc-10 introduced problem).

:-/

| But that off_t fix works too, thanks!

But are you saying it is currently 'good' and fixed?  (There were two more
pending PR changes I belatedly merged yesterday.)

Dirk

-- 
dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org



Bug#1022703: dieharder: Broken output or infinite loop after sts_runs test

2022-12-13 Thread Milan Broz

We have the same issue with empty lines, temporarily workarounded by adding 
-fcommon to CFLAGS (on several places)
(so yes, it was gcc-10 introduced problem).

But that off_t fix works too, thanks!

Milan



Bug#1022703: dieharder: Broken output or infinite loop after sts_runs test

2022-12-12 Thread Bernhard Übelacker

Am 12.12.22 um 15:01 schrieb Dirk Eddelbuettel:

Ok, so including sys/types and not defining off_t locally looks very
promising -- this is likely something I bungled in that change to accomodate
gcc 10.  It possibly was present before already, maybe 'team dieharder' never
knew about off_t being in types.h.

Now committed. I will likely roll that into a nother micro release 3.31.1.4
and release it.

Nice work. Thanks so much for digging in here.

Best, Dirk


Nice to hear that it is useful.
Thanks for your work at Debian.

Kind regards,
Bernhard



Bug#1022703: dieharder: Broken output or infinite loop after sts_runs test

2022-12-12 Thread Dirk Eddelbuettel


On 12 December 2022 at 00:51, Bernhard Übelacker wrote:
| Am 12.12.22 um 00:39 schrieb Dirk Eddelbuettel:
| > 
| > On 11 December 2022 at 17:05, Bernhard Übelacker wrote:
| > | On Mon, 24 Oct 2022 12:22:13 -0500 Dirk Eddelbuettel  
wrote:
| > | > |diehard_birthdays|   0|   100| 100|0.99449351|  PASSED
| > | > | ###CUT OUT BY ME###
| > | > | sts_runs|   2|10| 100|0.93620636|  PASSED
| > | > | ###AND THEN MANY EMPTY LINES APPEARING EVERY ~30 SEC###
| > | >
| > | > Darn. Would you have a moment to maybe jump into the code for sts_runs 
and
| > | > see what may be wrong now with its convergence criterion or count or 
... ?
| > | >
| > | > The upstream code is pretty 'dead' and I am being forced to update the 
code
| > | > every now and then for better compliance with update compilers so it 
could be
| > | > that I swapped in a size_t for another loop variable type and maybe 
created a
| > | > signed / unsigned bug?
| > | >
| > | > Otherwise the only fix may be to take sts_run out of the set for 'all' 
tests.
| > | >
| > | > Dirk
| > |
| > |
| > |
| > | Hello Dirk,
| > | but is the problem not the test following the passed sts_run, the test 
sts_serial?
| > |
| > | I could reproduce it inside a VM with a current bookworm/testing 
installation.
| > |
| > | The blank lines look like produced by output_table_line, output.c:527,
| > | unfortunately with variable tflag=0, therefore no actual test information 
is printed.
| > |
| > | As far as I see the tflag gets overwritten because the neighbour variable 
tsamples
| > | got 4 bytes of memory reserved in global.c, but unfortunately in
| > | sts_serial it gets written with a size of 8 bytes, therefore tflag gets a 
value of 0.
| > | And therefore the following tests do execute but just output the "new 
line".
| > |
| > | In the build log there are a few "warning: useless type name in empty 
declaration".
| > | This I guess is the result of the semicolon, which makes the compiler see
| > | the "unsigned int;" and the "tsamples;" separately
| > | and, I guess, makes tsamples default to integer, therefore just the 4 
bytes.
| > |
| > | globals.c:22  #define off_t unsigned int;
| > |
| > | Because this define seems kind of dangerous and "unsigned int" would
| > | still not be right I think it should get removed
| > | and maybe sys/types.h get included. (See at the bottom)
| > | A package with this change prints also the tests below sts_run.
| > 
| > Do you have a suggested patch, and with it a 'before' and 'after' run that
| > fail and pass, respectively?  It's been a while since I looked at this (you
| > replied to an email from two months ago ...) so I am a little out of context
| > now.
| > 
| > Best, Dirk
| >   
| > | Kind regards,
| > | Bernhard
| > |
| > |
| > |
| > |
| > | $ dieharder -a -g 13
| > |
| > |
| > | $ gdb -q --pid $(pidof dieharder)
| > | ...
| > | (gdb) set width 0
| > | (gdb) set pagination off
| > | (gdb) directory /home/benutzer/source/dieharder/orig/dieharder-3.31.1.3
| > | Source directories searched: 
/home/benutzer/source/dieharder/orig/dieharder-3.31.1.3:$cdir:$cwd
| > | (gdb) b output_table_line
| > | Breakpoint 1 at 0x561a373b5050: file ./dieharder/output.c, line 350.
| > | (gdb) cont
| > | Continuing.
| > |
| > | Breakpoint 1, output_table_line (dtest=0x7f886dee6aa0 
, test=0x561a38b2e830) at ./dieharder/output.c:350
| > | 350 350  if(tflag & TDESCRIPTION){
| > | (gdb) cont
| > | Continuing.
| > |
| > | Breakpoint 1, output_table_line (dtest=0x7f886dee6a60 
, test=0x561a38b2e830) at ./dieharder/output.c:350
| > | 350  if(tflag & TDESCRIPTION){
| > | (gdb) print tflag
| > | $1 = 12799
| > | (gdb) print 
| > | $2 = (unsigned int *) 0x561a373e5d64 
| > | (gdb) watch *(unsigned int *) 0x561a373e5d64
| > | Hardware watchpoint 2: *(unsigned int *) 0x561a373e5d64
| > | (gdb) dele 1
| > | (gdb) cont
| > | Continuing.
| > |
| > | Hardware watchpoint 2: *(unsigned int *) 0x561a373e5d64
| > |
| > | Old value = 12799
| > | New value = 0
| > | sts_serial (test=0x561a38b2fe30, irun=0) at 
./libdieharder/sts_serial.c:117
| > | 117  MYDEBUG(D_STS_SERIAL){
| > | (gdb) bt
| > | #0  sts_serial (test=0x561a38b2fe30, irun=0) at 
./libdieharder/sts_serial.c:117
| > | #1  0x7f886de97437 in add_2_test (dtest=0x7f886dee65e0 
, test=0x561a38b2fe30, count=100) at 
./libdieharder/std_test.c:230
| > | #2  0x561a373b69fc in execute_test (dtest_num=102) at 
./dieharder/run_test.c:92
| > | #3  0x561a373b65ef in run_all_tests () at 
./dieharder/run_all_tests.c:47
| > | #4  0x561a373b3332 in main (argc=4, argv=0x7fffcca27f88) at 
./dieharder/dieharder.c:88
| > | (gdb) list
| > | 112   * decently if we could farm out the blocks of bits to be run 
efficiently
| > | 113   * over a network relative to the time required to generate them.
| > | 114   */
| > | 115  nb = 16;/* Just ignore sts_serial_ntuple for now */
| > | 116  tsamples = test[0]->tsamples;  /* ditto */
| > | 117  

Bug#1022703: dieharder: Broken output or infinite loop after sts_runs test

2022-12-11 Thread Bernhard Übelacker

Am 12.12.22 um 00:39 schrieb Dirk Eddelbuettel:


On 11 December 2022 at 17:05, Bernhard Übelacker wrote:
| On Mon, 24 Oct 2022 12:22:13 -0500 Dirk Eddelbuettel  wrote:
| > |diehard_birthdays|   0|   100| 100|0.99449351|  PASSED
| > | ###CUT OUT BY ME###
| > | sts_runs|   2|10| 100|0.93620636|  PASSED
| > | ###AND THEN MANY EMPTY LINES APPEARING EVERY ~30 SEC###
| >
| > Darn. Would you have a moment to maybe jump into the code for sts_runs and
| > see what may be wrong now with its convergence criterion or count or ... ?
| >
| > The upstream code is pretty 'dead' and I am being forced to update the code
| > every now and then for better compliance with update compilers so it could 
be
| > that I swapped in a size_t for another loop variable type and maybe created 
a
| > signed / unsigned bug?
| >
| > Otherwise the only fix may be to take sts_run out of the set for 'all' 
tests.
| >
| > Dirk
|
|
|
| Hello Dirk,
| but is the problem not the test following the passed sts_run, the test 
sts_serial?
|
| I could reproduce it inside a VM with a current bookworm/testing installation.
|
| The blank lines look like produced by output_table_line, output.c:527,
| unfortunately with variable tflag=0, therefore no actual test information is 
printed.
|
| As far as I see the tflag gets overwritten because the neighbour variable 
tsamples
| got 4 bytes of memory reserved in global.c, but unfortunately in
| sts_serial it gets written with a size of 8 bytes, therefore tflag gets a 
value of 0.
| And therefore the following tests do execute but just output the "new line".
|
| In the build log there are a few "warning: useless type name in empty 
declaration".
| This I guess is the result of the semicolon, which makes the compiler see
| the "unsigned int;" and the "tsamples;" separately
| and, I guess, makes tsamples default to integer, therefore just the 4 bytes.
|
| globals.c:22  #define off_t unsigned int;
|
| Because this define seems kind of dangerous and "unsigned int" would
| still not be right I think it should get removed
| and maybe sys/types.h get included. (See at the bottom)
| A package with this change prints also the tests below sts_run.

Do you have a suggested patch, and with it a 'before' and 'after' run that
fail and pass, respectively?  It's been a while since I looked at this (you
replied to an email from two months ago ...) so I am a little out of context
now.

Best, Dirk
  
| Kind regards,

| Bernhard
|
|
|
|
| $ dieharder -a -g 13
|
|
| $ gdb -q --pid $(pidof dieharder)
| ...
| (gdb) set width 0
| (gdb) set pagination off
| (gdb) directory /home/benutzer/source/dieharder/orig/dieharder-3.31.1.3
| Source directories searched: 
/home/benutzer/source/dieharder/orig/dieharder-3.31.1.3:$cdir:$cwd
| (gdb) b output_table_line
| Breakpoint 1 at 0x561a373b5050: file ./dieharder/output.c, line 350.
| (gdb) cont
| Continuing.
|
| Breakpoint 1, output_table_line (dtest=0x7f886dee6aa0 , 
test=0x561a38b2e830) at ./dieharder/output.c:350
| 350 350  if(tflag & TDESCRIPTION){
| (gdb) cont
| Continuing.
|
| Breakpoint 1, output_table_line (dtest=0x7f886dee6a60 
, test=0x561a38b2e830) at ./dieharder/output.c:350
| 350  if(tflag & TDESCRIPTION){
| (gdb) print tflag
| $1 = 12799
| (gdb) print 
| $2 = (unsigned int *) 0x561a373e5d64 
| (gdb) watch *(unsigned int *) 0x561a373e5d64
| Hardware watchpoint 2: *(unsigned int *) 0x561a373e5d64
| (gdb) dele 1
| (gdb) cont
| Continuing.
|
| Hardware watchpoint 2: *(unsigned int *) 0x561a373e5d64
|
| Old value = 12799
| New value = 0
| sts_serial (test=0x561a38b2fe30, irun=0) at ./libdieharder/sts_serial.c:117
| 117  MYDEBUG(D_STS_SERIAL){
| (gdb) bt
| #0  sts_serial (test=0x561a38b2fe30, irun=0) at 
./libdieharder/sts_serial.c:117
| #1  0x7f886de97437 in add_2_test (dtest=0x7f886dee65e0 
, test=0x561a38b2fe30, count=100) at 
./libdieharder/std_test.c:230
| #2  0x561a373b69fc in execute_test (dtest_num=102) at 
./dieharder/run_test.c:92
| #3  0x561a373b65ef in run_all_tests () at ./dieharder/run_all_tests.c:47
| #4  0x561a373b3332 in main (argc=4, argv=0x7fffcca27f88) at 
./dieharder/dieharder.c:88
| (gdb) list
| 112   * decently if we could farm out the blocks of bits to be run 
efficiently
| 113   * over a network relative to the time required to generate them.
| 114   */
| 115  nb = 16;/* Just ignore sts_serial_ntuple for now */
| 116  tsamples = test[0]->tsamples;  /* ditto */
| 117  MYDEBUG(D_STS_SERIAL){
| 118
printf("#==\n");
| 119printf("# Starting sts_serial.\n");
| 120printf("# sts_serial: Testing ntuple = %u\n",nb);
| 121  }
| (gdb) display/i $pc
| 1: x/i $pc
| => 0x7f886de97c42 :  mov(%r15),%eax
| (gdb) print 
| $3 = (off_t *) 0x561a373e5d60 
| (gdb) print sizeof(tsamples)
| $4 = 8
| (gdb) frame 4
| #4  0x561a373b3332 in main (argc=4, argv=0x7fffcca27f88) at 

Bug#1022703: dieharder: Broken output or infinite loop after sts_runs test

2022-12-11 Thread Dirk Eddelbuettel


On 11 December 2022 at 17:05, Bernhard Übelacker wrote:
| On Mon, 24 Oct 2022 12:22:13 -0500 Dirk Eddelbuettel  wrote:
| > |diehard_birthdays|   0|   100| 100|0.99449351|  PASSED
| > | ###CUT OUT BY ME###
| > | sts_runs|   2|10| 100|0.93620636|  PASSED
| > | ###AND THEN MANY EMPTY LINES APPEARING EVERY ~30 SEC###
| > 
| > Darn. Would you have a moment to maybe jump into the code for sts_runs and
| > see what may be wrong now with its convergence criterion or count or ... ?
| > 
| > The upstream code is pretty 'dead' and I am being forced to update the code
| > every now and then for better compliance with update compilers so it could 
be
| > that I swapped in a size_t for another loop variable type and maybe created 
a
| > signed / unsigned bug?
| > 
| > Otherwise the only fix may be to take sts_run out of the set for 'all' 
tests.
| > 
| > Dirk
| 
| 
| 
| Hello Dirk,
| but is the problem not the test following the passed sts_run, the test 
sts_serial?
| 
| I could reproduce it inside a VM with a current bookworm/testing installation.
| 
| The blank lines look like produced by output_table_line, output.c:527,
| unfortunately with variable tflag=0, therefore no actual test information is 
printed.
| 
| As far as I see the tflag gets overwritten because the neighbour variable 
tsamples
| got 4 bytes of memory reserved in global.c, but unfortunately in
| sts_serial it gets written with a size of 8 bytes, therefore tflag gets a 
value of 0.
| And therefore the following tests do execute but just output the "new line".
| 
| In the build log there are a few "warning: useless type name in empty 
declaration".
| This I guess is the result of the semicolon, which makes the compiler see
| the "unsigned int;" and the "tsamples;" separately
| and, I guess, makes tsamples default to integer, therefore just the 4 bytes.
| 
| globals.c:22  #define off_t unsigned int;
| 
| Because this define seems kind of dangerous and "unsigned int" would
| still not be right I think it should get removed
| and maybe sys/types.h get included. (See at the bottom)
| A package with this change prints also the tests below sts_run.

Do you have a suggested patch, and with it a 'before' and 'after' run that
fail and pass, respectively?  It's been a while since I looked at this (you
replied to an email from two months ago ...) so I am a little out of context
now.

Best, Dirk
 
| Kind regards,
| Bernhard
| 
| 
| 
| 
| $ dieharder -a -g 13
| 
| 
| $ gdb -q --pid $(pidof dieharder)
| ...
| (gdb) set width 0
| (gdb) set pagination off
| (gdb) directory /home/benutzer/source/dieharder/orig/dieharder-3.31.1.3
| Source directories searched: 
/home/benutzer/source/dieharder/orig/dieharder-3.31.1.3:$cdir:$cwd
| (gdb) b output_table_line
| Breakpoint 1 at 0x561a373b5050: file ./dieharder/output.c, line 350.
| (gdb) cont
| Continuing.
| 
| Breakpoint 1, output_table_line (dtest=0x7f886dee6aa0 , 
test=0x561a38b2e830) at ./dieharder/output.c:350
| 350 350  if(tflag & TDESCRIPTION){
| (gdb) cont
| Continuing.
| 
| Breakpoint 1, output_table_line (dtest=0x7f886dee6a60 
, test=0x561a38b2e830) at ./dieharder/output.c:350
| 350  if(tflag & TDESCRIPTION){
| (gdb) print tflag
| $1 = 12799
| (gdb) print 
| $2 = (unsigned int *) 0x561a373e5d64 
| (gdb) watch *(unsigned int *) 0x561a373e5d64
| Hardware watchpoint 2: *(unsigned int *) 0x561a373e5d64
| (gdb) dele 1
| (gdb) cont
| Continuing.
| 
| Hardware watchpoint 2: *(unsigned int *) 0x561a373e5d64
| 
| Old value = 12799
| New value = 0
| sts_serial (test=0x561a38b2fe30, irun=0) at ./libdieharder/sts_serial.c:117
| 117  MYDEBUG(D_STS_SERIAL){
| (gdb) bt
| #0  sts_serial (test=0x561a38b2fe30, irun=0) at 
./libdieharder/sts_serial.c:117
| #1  0x7f886de97437 in add_2_test (dtest=0x7f886dee65e0 
, test=0x561a38b2fe30, count=100) at 
./libdieharder/std_test.c:230
| #2  0x561a373b69fc in execute_test (dtest_num=102) at 
./dieharder/run_test.c:92
| #3  0x561a373b65ef in run_all_tests () at ./dieharder/run_all_tests.c:47
| #4  0x561a373b3332 in main (argc=4, argv=0x7fffcca27f88) at 
./dieharder/dieharder.c:88
| (gdb) list
| 112   * decently if we could farm out the blocks of bits to be run 
efficiently
| 113   * over a network relative to the time required to generate them.
| 114   */
| 115  nb = 16;/* Just ignore sts_serial_ntuple for now */
| 116  tsamples = test[0]->tsamples;  /* ditto */
| 117  MYDEBUG(D_STS_SERIAL){
| 118
printf("#==\n");
| 119printf("# Starting sts_serial.\n");
| 120printf("# sts_serial: Testing ntuple = %u\n",nb);
| 121  }
| (gdb) display/i $pc
| 1: x/i $pc
| => 0x7f886de97c42 :  mov(%r15),%eax
| (gdb) print 
| $3 = (off_t *) 0x561a373e5d60 
| (gdb) print sizeof(tsamples)
| $4 = 8
| (gdb) frame 4
| #4  0x561a373b3332 in main (argc=4, argv=0x7fffcca27f88) at 
./dieharder/dieharder.c:88
| 88

Bug#1022703: dieharder: Broken output or infinite loop after sts_runs test

2022-12-11 Thread Bernhard Übelacker

On Mon, 24 Oct 2022 12:22:13 -0500 Dirk Eddelbuettel  wrote:

|diehard_birthdays|   0|   100| 100|0.99449351|  PASSED
| ###CUT OUT BY ME###
| sts_runs|   2|10| 100|0.93620636|  PASSED
| ###AND THEN MANY EMPTY LINES APPEARING EVERY ~30 SEC###

Darn. Would you have a moment to maybe jump into the code for sts_runs and
see what may be wrong now with its convergence criterion or count or ... ?

The upstream code is pretty 'dead' and I am being forced to update the code
every now and then for better compliance with update compilers so it could be
that I swapped in a size_t for another loop variable type and maybe created a
signed / unsigned bug?

Otherwise the only fix may be to take sts_run out of the set for 'all' tests.

Dirk




Hello Dirk,
but is the problem not the test following the passed sts_run, the test 
sts_serial?

I could reproduce it inside a VM with a current bookworm/testing installation.

The blank lines look like produced by output_table_line, output.c:527,
unfortunately with variable tflag=0, therefore no actual test information is 
printed.

As far as I see the tflag gets overwritten because the neighbour variable 
tsamples
got 4 bytes of memory reserved in global.c, but unfortunately in
sts_serial it gets written with a size of 8 bytes, therefore tflag gets a value 
of 0.
And therefore the following tests do execute but just output the "new line".

In the build log there are a few "warning: useless type name in empty 
declaration".
This I guess is the result of the semicolon, which makes the compiler see
the "unsigned int;" and the "tsamples;" separately
and, I guess, makes tsamples default to integer, therefore just the 4 bytes.

   globals.c:22  #define off_t unsigned int;

Because this define seems kind of dangerous and "unsigned int" would
still not be right I think it should get removed
and maybe sys/types.h get included. (See at the bottom)
A package with this change prints also the tests below sts_run.

Kind regards,
Bernhard




$ dieharder -a -g 13


$ gdb -q --pid $(pidof dieharder)
...
(gdb) set width 0
(gdb) set pagination off
(gdb) directory /home/benutzer/source/dieharder/orig/dieharder-3.31.1.3
Source directories searched: 
/home/benutzer/source/dieharder/orig/dieharder-3.31.1.3:$cdir:$cwd
(gdb) b output_table_line
Breakpoint 1 at 0x561a373b5050: file ./dieharder/output.c, line 350.
(gdb) cont
Continuing.

Breakpoint 1, output_table_line (dtest=0x7f886dee6aa0 , 
test=0x561a38b2e830) at ./dieharder/output.c:350
350 350  if(tflag & TDESCRIPTION){
(gdb) cont
Continuing.

Breakpoint 1, output_table_line (dtest=0x7f886dee6a60 
, test=0x561a38b2e830) at ./dieharder/output.c:350
350  if(tflag & TDESCRIPTION){
(gdb) print tflag
$1 = 12799
(gdb) print 
$2 = (unsigned int *) 0x561a373e5d64 
(gdb) watch *(unsigned int *) 0x561a373e5d64
Hardware watchpoint 2: *(unsigned int *) 0x561a373e5d64
(gdb) dele 1
(gdb) cont
Continuing.

Hardware watchpoint 2: *(unsigned int *) 0x561a373e5d64

Old value = 12799
New value = 0
sts_serial (test=0x561a38b2fe30, irun=0) at ./libdieharder/sts_serial.c:117
117  MYDEBUG(D_STS_SERIAL){
(gdb) bt
#0  sts_serial (test=0x561a38b2fe30, irun=0) at ./libdieharder/sts_serial.c:117
#1  0x7f886de97437 in add_2_test (dtest=0x7f886dee65e0 , 
test=0x561a38b2fe30, count=100) at ./libdieharder/std_test.c:230
#2  0x561a373b69fc in execute_test (dtest_num=102) at 
./dieharder/run_test.c:92
#3  0x561a373b65ef in run_all_tests () at ./dieharder/run_all_tests.c:47
#4  0x561a373b3332 in main (argc=4, argv=0x7fffcca27f88) at 
./dieharder/dieharder.c:88
(gdb) list
112   * decently if we could farm out the blocks of bits to be run 
efficiently
113   * over a network relative to the time required to generate them.
114   */
115  nb = 16;/* Just ignore sts_serial_ntuple for now */
116  tsamples = test[0]->tsamples;  /* ditto */
117  MYDEBUG(D_STS_SERIAL){
118
printf("#==\n");
119printf("# Starting sts_serial.\n");
120printf("# sts_serial: Testing ntuple = %u\n",nb);
121  }
(gdb) display/i $pc
1: x/i $pc
=> 0x7f886de97c42 :  mov(%r15),%eax
(gdb) print 
$3 = (off_t *) 0x561a373e5d60 
(gdb) print sizeof(tsamples)
$4 = 8
(gdb) frame 4
#4  0x561a373b3332 in main (argc=4, argv=0x7fffcca27f88) at 
./dieharder/dieharder.c:88
88   run_all_tests();
(gdb) print sizeof(tsamples)
$6 = 4




$ grep -E "off_t.*tsamples" . -Rn
./dieharder/globals.c:29:off_t tsamples;/* Generally should be "a lot". 
 off_t is u_int64_t. */
./dieharder/globals.c:74:off_t tsamples;/* Generally should be "a lot". 
 off_t is u_int64_t. */
./include/dieharder/libdieharder.h:194: extern off_t tsamples;/* Generally should 
be "a lot".  off_t is u_int64_t. */




https://buildd.debian.org/status/fetch.php?pkg=dieharder=amd64=3.31.1.3-1=1659884648=0

gcc -DHAVE_CONFIG_H -I. -I..  -I 

Bug#1022703: dieharder: Broken output or infinite loop after sts_runs test

2022-10-24 Thread Dirk Eddelbuettel


Hi Jakub,

Thanks for taking the time to write a bug report!

On 24 October 2022 at 13:10, Jakub Niemczuk wrote:
| Package: dieharder
| Version: 3.31.1.2-1
| Severity: important
| X-Debbugs-Cc: jakubniemc...@gmail.com
| 
| Dear Maintainer,
| 
| Every time I try to use this package on my debian machine all tests run until
| sts_runs test. After that the program prints out only blank lines. I tried to
| redirect the output to a file but that still didn't solve the problem.
| I compiled the newest version from git but the bug is still there.
| The package works fine on my other machine runing Ubuntu 20.04.
| 
| So after running for example: dieharder -a -g 13

:-/

| I get:
| 
| 
#=#
| #dieharder version 3.31.1 Copyright 2003 Robert G. Brown  
#
| 
#=#
|rng_name|rands/second|   Seed   |
| mt19937|  1.32e+08  |2023811135|
| 
#=#
| test_name   |ntup| tsamples |psamples|  p-value |Assessment
| 
#=#
|diehard_birthdays|   0|   100| 100|0.99449351|  PASSED
| ###CUT OUT BY ME###
| sts_runs|   2|10| 100|0.93620636|  PASSED
| ###AND THEN MANY EMPTY LINES APPEARING EVERY ~30 SEC###

Darn. Would you have a moment to maybe jump into the code for sts_runs and
see what may be wrong now with its convergence criterion or count or ... ?

The upstream code is pretty 'dead' and I am being forced to update the code
every now and then for better compliance with update compilers so it could be
that I swapped in a size_t for another loop variable type and maybe created a
signed / unsigned bug?

Otherwise the only fix may be to take sts_run out of the set for 'all' tests.

Dirk

 
| -- System Information:
| Debian Release: 11.5
|   APT prefers stable-updates
|   APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500,
| 'stable')
| Architecture: amd64 (x86_64)
| Foreign Architectures: i386
| 
| Kernel: Linux 5.18.0-0.deb11.4-amd64 (SMP w/32 CPU threads; PREEMPT)
| Locale: LANG=pl_PL.UTF-8, LC_CTYPE=pl_PL.UTF-8 (charmap=UTF-8), LANGUAGE not
| set
| Shell: /bin/sh linked to /usr/bin/dash
| Init: systemd (via /run/systemd/system)
| LSM: AppArmor: enabled
| 
| Versions of packages dieharder depends on:
| ii  libc6  2.31-13+deb11u5
| ii  libdieharder3  3.31.1.2-1
| ii  libgsl25   2.6+dfsg-2
| 
| dieharder recommends no packages.
| 
| dieharder suggests no packages.

-- 
dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org



Bug#1022703: dieharder: Broken output or infinite loop after sts_runs test

2022-10-24 Thread Jakub Niemczuk
Package: dieharder
Version: 3.31.1.2-1
Severity: important
X-Debbugs-Cc: jakubniemc...@gmail.com

Dear Maintainer,

Every time I try to use this package on my debian machine all tests run until
sts_runs test. After that the program prints out only blank lines. I tried to
redirect the output to a file but that still didn't solve the problem.
I compiled the newest version from git but the bug is still there.
The package works fine on my other machine runing Ubuntu 20.04.

So after running for example: dieharder -a -g 13
I get:

#=#
#dieharder version 3.31.1 Copyright 2003 Robert G. Brown  #
#=#
   rng_name|rands/second|   Seed   |
mt19937|  1.32e+08  |2023811135|
#=#
test_name   |ntup| tsamples |psamples|  p-value |Assessment
#=#
   diehard_birthdays|   0|   100| 100|0.99449351|  PASSED
###CUT OUT BY ME###
sts_runs|   2|10| 100|0.93620636|  PASSED
###AND THEN MANY EMPTY LINES APPEARING EVERY ~30 SEC###


-- System Information:
Debian Release: 11.5
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500,
'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.18.0-0.deb11.4-amd64 (SMP w/32 CPU threads; PREEMPT)
Locale: LANG=pl_PL.UTF-8, LC_CTYPE=pl_PL.UTF-8 (charmap=UTF-8), LANGUAGE not
set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages dieharder depends on:
ii  libc6  2.31-13+deb11u5
ii  libdieharder3  3.31.1.2-1
ii  libgsl25   2.6+dfsg-2

dieharder recommends no packages.

dieharder suggests no packages.