Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • BIND BIND
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 531
    • Issues 531
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 100
    • Merge requests 100
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • ISC Open Source Projects
  • BINDBIND
  • Issues
  • #289

Closed
Open
Created May 24, 2018 by Evan Hunt@eachOwner

random_test is very slow since isc_random change

Before change 4947:

$ kyua test random_test
random_test:isc_rng_binarymatrixrank_16  ->  passed  [1.503s]
random_test:isc_rng_binarymatrixrank_bytes  ->  passed  [0.918s]
random_test:isc_rng_blockfrequency_16  ->  passed  [0.718s]
random_test:isc_rng_blockfrequency_bytes  ->  passed  [0.134s]
random_test:isc_rng_monobit_16  ->  passed  [0.706s]
random_test:isc_rng_monobit_bytes  ->  passed  [0.130s]
random_test:isc_rng_runs_16  ->  passed  [1.151s]
random_test:isc_rng_runs_bytes  ->  passed  [0.580s]

After change 4947:

$ kyua test random_test
random_test:isc_random_binarymatrixrank_16  ->  passed  [57.969s]
random_test:isc_random_binarymatrixrank_bytes  ->  passed  [4.127s]
random_test:isc_random_blockfrequency_16  ->  passed  [58.222s]
random_test:isc_random_blockfrequency_bytes  ->  passed  [3.374s]
random_test:isc_random_monobit_16  ->  passed  [59.008s]
random_test:isc_random_monobit_bytes  ->  passed  [3.351s]
random_test:isc_random_runs_16  ->  passed  [59.605s]
random_test:isc_random_runs_bytes  ->  passed  [3.649s]

Even worse, when running a full "make unit" with other unit tests being run in parallel, these are the grepped-out lines for random_test:

random_test:isc_random_binarymatrixrank_bytes  ->  passed  [16.648s]
random_test:isc_random_monobit_bytes  ->  passed  [15.136s]
random_test:isc_random_blockfrequency_bytes  ->  passed  [25.718s]
random_test:isc_random_runs_bytes  ->  passed  [18.061s]
random_test:isc_random_monobit_16  ->  passed  [171.179s]
random_test:isc_random_binarymatrixrank_16  ->  passed  [177.380s]
random_test:isc_random_blockfrequency_16  ->  passed  [176.568s]
random_test:isc_random_runs_16  ->  passed  [166.775s]

Of greatest concern: the unit test doesn't appear to have been significantly changed, other than switching to the new isc_random API. It isn't running more iterations or anything. This suggests that isc_random performs less than a tenth as well as isc_rng did, which is alarming. If true, I'd expect it to impact on resolver performance.

Edited May 24, 2018 by Evan Hunt
Assignee
Assign to
Time tracking